
我運行的是 Ubuntu 20.04。它透過將指向本機電腦的連接埠8080 的http 請求轉送到另一台電腦的連接埠80 來正常運作。它失敗了。在 PREROUTING 中只有命中,但在 POSTROUTING 中沒有命中。 iptables 指令如下:
sudo iptables -t nat -A PREROUTING -p tcp --match multiport --dports 445,137,138,139 -j DNAT --to-destination 192.168.10.162
sudo iptables -t nat -A POSTROUTING -d 192.168.10.162 -j MASQUERADE
執行 $sudo iptables -t nat -L -v 後,顯示以下內容:
Chain PREROUTING (policy ACCEPT 3981 packets, 847K bytes)
pkts bytes target prot opt in out source destination
60 3156 DNAT tcp -- any any anywhere anywhere multiport dports netbios-ns,netbios-dgm,netbios-ssn,microsoft-ds to:192.168.10.162
Chain INPUT (policy ACCEPT 604 packets, 86773 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 57 packets, 4781 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 57 packets, 4781 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- any any anywhere 192.168.10.162
Ubuntu 20.04 連接到一個交換機,該交換機連接到另一台 Linux 電腦所連接的另一個交換器。我使用與Ubuntu 20.04連接到同一交換器的Win10 PC來存取Ubuntu 20.04。
答案1
我很遺憾地告訴大家,我犯了一個低級錯誤。我忘記在 Linux 機器上啟用 IPFORWARD。我跑完之後
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
有用。