proxmox:NAT 2 个公网 IP 中的 1 个公网 IP

proxmox:NAT 2 个公网 IP 中的 1 个公网 IP

我需要一些帮助,因为我真的陷入困境,而且我不知道为什么。

我正在使用 proxmox,我有 4 台虚拟机。其中三台使用自己的公共 IP 运行良好,但我还想安装 mailcleaner。Mailcleaner 本身似乎只使用 C 类 IP(192.168.1.2)运行。所以我必须对一个 IP 进行 NAT。

目前,我可以从 Proxmox-Server ping 和 SSH 虚拟机(Mailcleaner),也可以从虚拟机到 Proxmox。但它似乎不能正确进行 NAT。我无法 ping Google,也无法从我的家用电脑 SSH 虚拟机(Mailcleaner)。

配置:

proxmox 服务器 /etc/network/interfaces:

auto lo
iface lo inet loopback

allow-hotplug enp2s0

auto enp2s0
iface enp2s0 inet manual
        address  85.114.141.175
        netmask  255.255.255.255
        dns-nameservers 62.141.32.5 62.141.32.4 62.141.32.3
        dns-search dus2.servdiscount-customer.com
        up ip route add 89.163.247.209/32 dev enp2s0

auto vmbr0
iface vmbr0 inet static
        address  85.114.141.175
        netmask  32
        gateway  85.114.141.1
        bridge-ports enp2s0
        bridge-stp off
        bridge-fd 0


iface vmbr0 inet6 static
        address  2001:4ba0:fff6:00a3::0
        netmask  64
        gateway  2001:4ba0:fff6:1:beef::1

auto vmbr1
iface vmbr1 inet static
        address  89.163.247.209
        netmask  32
        gateway  85.114.141.1
        bridge-ports enp2s0
        bridge-stp off
        bridge-fd 0


auto vmbr2
iface vmbr2 inet static
        address  192.168.1.1
        netmask  24
        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.1.0/24' -o vmbr1 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '192.168.1.0/24' -o vmbr1 -j MASQUERADE
        post-up iptables -t nat -A PREROUTING -i vmbr1 -p tcp --dport 1022 -j DNAT --to 192.168.1.2:22
        post-down iptables -t nat -D PREROUTING -i vmbr1 -p tcp --dport 1022 -j DNAT --to 192.168.1.2:22
        post-up iptables -t nat -A PREROUTING -i vmbr1 -p tcp --dport 1443 -j DNAT --to 192.168.1.2:443
        post-down iptables -t nat -D PREROUTING -i vmbr1 -p tcp --dport 1443 -j DNAT --to 192.168.1.2:443

我对此配置的决定是:- vmbr1 的 IP 必须可从 INet 访问。因此,它也被添加到 enp2s0 (~eth0)。来自互联网的数据包到达 IP 89.163.247.209 的服务器。Proxmox-Server 接收数据包,而 vmbr1 接收数据包,因为它负责此 IP。然后它应该被 NAT。

Proxmox 上的路由表如下所示:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         ve26-s1-h3ec6.i 0.0.0.0         UG    0      0        0 vmbr0
mailcleaner.dus 0.0.0.0         255.255.255.255 UH    0      0        0 enp2s0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 vmbr2

并且 iptables -L -t nat 显示

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  anywhere             anywhere             tcp dpt:1022 to:192.168.1.2:22
DNAT       tcp  --  anywhere             anywhere             tcp dpt:1443 to:192.168.1.2:443

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  --  192.168.1.0/24       anywhere

在虚拟机(MailClient)上,网络配置如下所示:

auto lo
iface lo inet loopback
pre-up modprobe ipv6
pre-up echo 0 > /proc/sys/net/ipv6/conf/lo/disable_ipv6

allow-hotplug eth0
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
pre-up echo 0 > /proc/sys/net/ipv6/conf/lo/disable_ipv6

我知道:问题在于距离 PC 40 厘米,但是我哪里错得这么离谱了?

提前问候并致谢

丹妮丝

相关内容