从单个公共 IP 为 VM Client 进行端口转发(debian 下的 proxmox)

从单个公共 IP 为 VM Client 进行端口转发(debian 下的 proxmox)

我在 Debian 下使用 Proxmox 时遇到了端口转发问题。

我有两个接口(eth0 和 vmbr2),如何通过从单个公共 IP 转发从外部网络访问我的客户端虚拟机(Web 服务器)?

我认为我做了一些错误的配置/etc/network/interfaces

这是我的界面:

auto eth0
iface eth0 inet static
        address  xxx.xxx.xxx.xxx
        netmask  255.255.255.224
        gateway  xxx.xxx.xxx.xxx
        up route add -net xxx.xxx.xxx.xxx netmask 255.255.255.224 gw xxx.xxx.xxx.xxx eth0

vmbr2 接口结束:

auto vmbr2
#private sub network
iface vmbr2 inet static
        address  192.168.100.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 '192.168.100.0/24' -o eth0 -j ACCEPT
        post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o eth0 -j ACCEPT

        post-up iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to 192.168.100.6:22
        post-down iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to 192.168.100.6:22

非常感谢您的帮助

答案1

只需在 POSTROUTING 规则中将“ACCEPT”替换为“MASQUERADE”即可。

相关内容