Iptables
無法讓 iptables 在 SuSE Linux 上正確轉發
我正在努力通過
iptables
. 我做了很多Google搜尋,但我嘗試過的所有解決方案都不起作用。非常簡單的設置,在同一個 LAN 上使用三台電腦
192.168.0.1 # destination 192.168.0.2 # redirector (only one interface) 192.168.0.3 # source
我的
iptables
配置也很簡單# iptables -L -n -t nat Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:192.168.0.1 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 to:192.168.0.1 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 -- 0.0.0.0/0 0.0.0.0/0 # iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination # iptables -S -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT
根據我閱讀的內容,這應該可以。但事實並非如此。我也玩過
iptables -t nat -I POSTROUTING 1 -p tcp -d 192.168.0.1 --dport 443 -j SNAT --to-source 192.168.0.1
但也不起作用。並且是ip_forward
啟用的。瀏覽到
192.168.0.2:80/443
應該從 中返回內容192.168.0.1
,不是嗎?有任何想法嗎?
我讓它工作了!正確的規則是
iptables -t nat -A PREROUTING -d 192.168.0.2 ! -s 192.168.0.1 -p tcp --dport 80 -j DNAT --to 192.168.0.1:80 iptables -t nat -A POSTROUTING -d 192.168.0.1 -p tcp --dport 80 -j SNAT --to 192.168.0.2.
添加 -d 就可以了。