iptables 输出 DNAT 不起作用

iptables 输出 DNAT 不起作用

我尝试做类似这个问题的事情

https://unix.stackexchange.com/a/85933/20426

所以我想让所有到端口 44444 的传出流量重定向到 1.1.1.1:80

iptables -t nat -A OUTPUT -p tcp --dport 44444 -j DNAT --to-destination 1.1.1.1:80
iptables -t nat -A OUTPUT -p tcp --dport 44444 -j LOG --log-prefix

然而流量仍然流向原始IP,而不是1.1.1.1:80

我正在尝试在我的 OpenWRT 路由器上设置它,版本是:

MTK OpenWrt SDK V3.4
revision : e7847192
benchmark : APSoC SDK 5.0.1.0
Linux 3.10.14
iptables v1.4.21

我是不是做错了什么?

答案1

似乎对我有用:

# iptables -tnat -A 输出 -p tcp --dport 44444 -j DNAT --to-destination $someip:8888
$ nc $someotherip 44444
# tcpdump -n ...
18:23:54.699942 IP[我的IP地址].55212 >[一些IP].8888:标志 [S],seq 1138760196,...

如果我理解这部分iptables 手册页正确,OUTPUT仅适用于源自主机本身的连接,不是路由连接。您确定不想添加该规则吗PREROUTING

nat
当遇到创建新连接的数据包时,将查阅此表。它由四个内置函数组成:... OUTPUT(用于在路由之前更改本地生成的数据包)和 POSTROUTING(用于在数据包即将发出时更改数据包)。

相关内容