我需要一些帮助,因为我真的陷入困境,而且我不知道为什么。
我正在使用 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 厘米,但是我哪里错得这么离谱了?
提前问候并致谢
丹妮丝