Networking
VM 主機和髮夾 NAT 上的橋接網路
我有一台執行 Proxmox VE 的主機。
我設置了 3 個虛擬網橋
vmbr[0-2]
來處理我的網路需求:vmbr0
直接在具有公共 IP 的 VM 的主界面上執行,vmbr1
允許經過 NAT 的 VM,並且vmbr2
是僅主機網路。假設我的主要公共 IP 是 12.34.56.78。為了讓 NAT 正常工作,我設置了以下
iptables
規則集:-A PREROUTING -d 12.34.56.78 -i vmbr0 -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 192.168.1.101 # and other rules like this one for different ports to different local IPs -A POSTROUTING -s 192.168.10.0/24 -o vmbr0 -j SNAT --to-source 12.34.56.78
現在假設我有一個
vmbr1
IP 為 192.168.1.102 的虛擬機。這台機器無法使用公共 IP 12.34.56.78 訪問位於 192.168.1.101 的網路伺服器。
我最初認為
POSTROUTING
上面的指令足以讓髮夾式 NAT 工作。在閱讀了從本地網路轉發公共 IP 地址的規範環回 - 髮夾 NAT和同一變體上的多個其他答案後,我嘗試了:
- 在主機上臨時設置
-P [INPUT|FORWARD|OUTPUT] ACCEPT
以檢查是否可能由某些過濾規則引起- 添加到規則集,在目前規則
-A POSTROUTING -d 192.168.1.101 -p tcp --dport 80 -j MASQUERADE
之前和之後嘗試POSTROUTING
但是,它仍然不起作用。
想法?
謝謝。
要執行髮夾式 NAT 方法,您需要輸入以下命令。
iptables -t nat -A PREROUTING -d 12.34.56.78 -i vmbr1 -p tcp -m multiport --dports 80,443 -j DNAT \ --to-destination 192.168.1.101 iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o vmbr1 -d 192.168.1.254 -p tcp \ --dport 80 -j SNAT --to-source 192.168.1.101