虚拟机内部无法使用 iptables 进行 NAT

虚拟机内部无法使用 iptables 进行 NAT

我在具有两个公共 IP 地址的 Debian 11 主机上使用 Proxmox。

一个 IP 通过 vmbr0 桥接至虚拟机 (VM1)。

对于另一台机器(VM2,IP 192.168.10.2),我想使用 NAT 来访问互联网并将一些端口公开到互联网。

我使用以下网络配置。我将我的公共 IP 混淆为 1.1.1.1。

#/etc/network/interfaces

auto lo
iface lo inet loopback

iface lo inet6 loopback

iface enp41s0 inet manual

auto vmbr0
iface vmbr0 inet static
        address 1.1.1.1/32
        gateway 1.1.1.255
        bridge-ports enp41s0
        bridge-stp off
        bridge-fd 1
        pointopoint 1.1.1.255
#Bridge mode

auto vmbr1
iface vmbr1 inet static
    address 192.168.10.1
    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.10.0/24' -o vmbr0 -j MASQUERADE
    post-down iptables -t nat -F
    post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 2023 -j DNAT --to 192.168.10.2:2022
    post-up iptables -t nat -A PREROUTING -m multiport -i vmbr0 -p tcp --dport 80,443,5050 -j DNAT --to 192.168.10.2
#NAT mode

从互联网连接时设置工作正常,但由于端口未正确重定向,我无法从 VM2 访问主 IP(1.1.1.1)。

我已经尝试添加post-up iptables -t nat -A PREROUTING -m multiport -i vmbr1 -p tcp --dport 80,443,5050 -j DNAT --to 192.168.10.2但之后连接根本不起作用。

相关内容