首先说明,这种创建 NAT 虚拟机的方式管理起端口转发的时候并不方便,但适合所有网络环境下的服务器,尤其是指只有一个外网 IP 的。
如果有另一个 IP 的话一般是推荐使用 pfSense 等进行管理,更方便全面,如果没有的话请继续看下去。
Proxmox VE 安装完后会默认设置一个名为 vmbr0
的 Linux Bridge,它桥接了物理网卡连接外网。
接着我们设置网卡转发规则,vi /etc/network/interfaces
在最下方加入:
auto vmbr2
iface vmbr2 inet static
address 10.0.0.254
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 10022 -j DNAT --to 10.0.0.101:22
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 10022 -j DNAT --to 10.0.0.101:22
post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 13389 -j DNAT --to 10.0.0.102:3389
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 13389 -j DNAT --to 10.0.0.102:3389
这里解释一下,可以设置任意不冲突的内网 IP 段,比如我这里的 10.0.0.0/24
,那么它的网关是 10.0.0.254
,子网掩码 255.255.255.0
。
下面的 10.0.0.101
是我其中一台 NAT 虚拟机,将其 22
端口转发到公网 IP 的 10022
端口上,协议为 TCP
,以此类推将所需转发的端口添加到配置文件中。
编辑完成之后可以使用 systemctl restart networking
重启网络,不过需要注意的是每次修改了 Proxmox VE 的网络配置都需要重启虚拟机才会有网络,这也是不方便的一点,因此如果有条件的话也更推荐使用软路由系统进行 NAT 映射。
另外由于没有 DHCP,所以所有虚拟机都要手动配置网络。
本文由 imbytecat 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Dec 15, 2020 at 06:35 pm