proxmox虚拟机使用NAT网络
忆海心阶
2022年08月09日 01:16
收录于文集
共15篇

前言

默认情况下,PVE直接接入vmbr0时,会让真实网络中充斥着各种虚拟机分配的ip,会逼死强迫症。

给每一台非集群PVE分配一个网络,可以拯救强迫症。

当你希望优先使用无线网络的时候,或仅允许有一个IP时,NAT也是一个解决方案。

主要参考文档如下

https://pve.proxmox.com/wiki/Network_Configuration#_masquerading_nat_with_tt_span_class_monospaced_iptables_span_tt

新建并配置vmbr1

新建一个vmbr1给虚拟机分配网络

本次演示计划给接入vmbr1的虚拟机分配10.1.2.X 的网络,如图所示新建vmbr1。

编辑/etc/network/interfaces配置文件,加入以下文本。

代码块
Shell
自动换行
复制代码
post-up   echo 1 > /proc/sys/net/ipv4/ip_forward
post-up   iptables -t nat -A POSTROUTING -s '10.1.2.0/24' -o wlp1s0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.1.2.0/24' -o wlp1s0 -j MASQUERADE
复制成功

注意,这里填写的是无线网络的wlp1s0,如果你不打算使用无线,请修改为对应设备。

修改完成后如图所示。

此时可以使用reboot 命令,重启PVE,也可以选择仅重启网络。

注意,PVE的路由表应该是这样的。

安装软路由给虚拟机分配IP

建立并完成vmbr1的配置后,创建的虚拟机需要手动分配IP才能上网。

此时可以选择在PVE中安装dhcp服务,但使用软路由更符合一般地球人类管理习惯。

本次演示的软路由为ikuai,你也可以使用openwrt。

本部分默认用户掌握在PVE中安装windows的技能。

创建虚拟机需要注意,net0需要接入vmbr1中,显示要改为vmware兼容。

新建net1留作备用,不接入网络。

部分软路由系统在只有一个口的时候会抽风,两个口就工作正常。

如图所示则ikuai安装完毕,使用win10虚拟机接入vmbr1,手动分配ip。

点击确定,使用浏览器访问ikuai后台。

ikuai的默认用户名密码是admin/admin,进入打开dhcp功能。

确认配置无误后保存,为了方便管理ikuai,也修改lan口ip。

保存后,将虚拟机ip重新调整为自动获取ip,此时可以尝试上网。

如果需要静态分配ip,可以在ikuai中进行分配。

通过分配的IP从外部访问虚拟机

在进行上述配置后,虚拟机已经可以通过vmbr1走wlp1s0访问网络。

但如果需要从外部访问虚拟机,需要修改真实世界路由器的路由表。

由于各家路由器配置各不相同,此处仅以我使用的小米路由器为例。

即便是小米路由器,部分机型也需要关闭防火墙才能正常访问!

如图所示使用telnet访问路由器并添加路由表。

如图所示,新增一个条目。在PVE外机器tracert测试。

验证可达。