我正在努力通过iptables
. 我做了很多谷歌搜索,但我尝试过的所有解决方案都不起作用。
非常简单的设置,在同一个 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
,不是吗?有任何想法吗?
我让它工作了!正确的规则是
添加 -d 就可以了。