iptables DNAT 到外部 IP 而不伪装不起作用

iptables DNAT 到外部 IP 而不伪装不起作用

在服务器 1.1.1.1 上:

iptables -t nat -A PREROUTING -p tcp --dport 20000 -j DNAT --to-destination: 2.2.2.2:20000

iptables -t nat -A PREROUTING -p tcp --dport 20000 -j LOG --log-prefix pre20k

iptables -t nat -A POSTROUTING -p tcp --dport 20000 -j LOG --log-prefix post20k

在服务器 2.2.2.2 上:

iptables -t nat -A PREROUTING -p tcp --dport 20000 -j LOG --log-prefix pre20k

在客户端 3.3.3.3 上:

nc 1.1.1.1 20000

我可以在 1.1.1.1 的日志中看到,后路由包确实有 SIP=3.3.3.3 和 DIP=2.2.2.2(而不是原始预路由包中的 1.1.1.1)。

但是从 1.1.1.1 发出的包都没有到达 2.2.2.2。我在 iptables 日志和 tcpdump 中都看不到它们。

为什么?

答案1

我测试规则的机器位于 digitalocean 云上。我在谷歌上搜索后发现

“由于网关盒试图发送与其自身源地址不同的数据包,因此将不允许该数据包通过。”

相关内容