我们有Proxmox虚拟环境巫婆夫妇的虚拟机。主机服务器有多个外部IP地址。我们使用iptables将连接转发到特定的外部IP +端口到选定的虚拟机。我们使用NAT来从VM发出连接。无法从iptables后面的本地网络连接到外部IP NAT
到目前为止一切正常。当虚拟机尝试连接到主机外部IP时,会出现问题,它不起作用。
据我了解我们需要的是发夹NAT(NAT反射)。但是我们无法通过我们发现的指示来运作。
我们的iptables规则:
# === FIREWALL ===
*filter
:INPUT ACCEPT [3174:1555907]
:FORWARD ACCEPT [2521:547542]
:OUTPUT ACCEPT [2753:2039466]
:fail2ban-ssh - [0:0]
# allow returnig packets
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# drop all other
-A INPUT -p tcp -d 1.2.3.4/32 -j DROP
COMMIT
# === NAT ===
*nat
:PREROUTING ACCEPT [140854:7345476]
:POSTROUTING ACCEPT [2635:170444]
:OUTPUT ACCEPT [25596:1617170]
# INCOMING
-A PREROUTING -d 1.2.3.4/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.60.10:80
-A PREROUTING -d 1.2.3.4/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.0.60.10:443
-A PREROUTING -d 1.2.3.4/32 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 10.0.60.20:80
# OUTGOING
-A POSTROUTING -d 10.0.60.10 -s 10.0.0.0/16 -p tcp --dport 80 -j SNAT --to 10.0.0.1
-A POSTROUTING -o vmbr0 -j SNAT --to-source 1.2.3.4
COMMIT
1.2.3.4 - 主机
10.0.60.10,10.0.60.20的外部IP - 虚拟机
的内部IP10.0.0.1 - 内部的IP主机
隐而不宣的工作无论是。我已经尝试过类似的规则(只适用于所有虚拟机的-s 10.0.0.0/16) –
然后使用iptables -A PREROUTING -t nat -s 10.0.0.0/16 -d 1.2.3.4 -j DNAT - 到10.0 .60.10'(错误) –
这应该取代? -A PREROUTING -d 1.2.3.4/32 -p tcp -m tcp --dport 80 -j DNAT - 到目的地10.0.60.10:80 –