使用iptables更改目标端口

Kri*_*ost 19 linux iptables

是否可以使用iptables更改UDP数据包的目标端口?

我试图让一个SNMP代理在1620而不是162发送陷阱.不幸的是到目前为止我只是设法改变了源端口:

iptables -t nat -A POSTROUTING -p udp --dport 162 -j SNAT --to:1620

Pie*_*per 6

假设您知道要发送到哪台计算机:

iptables -t nat -A OUTPUT -p udp --dport 162 -j DNAT --to-destination <dest-ip>:1620
Run Code Online (Sandbox Code Playgroud)


小智 6

你可以重定向162到1620

iptables -t nat -A PREROUTING -p UDP --dport 162 -j REDIRECT --to-port 1620
Run Code Online (Sandbox Code Playgroud)


Ada*_*iss 5

显然不支持此用法.摘自http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO.txt:

6.3.7.更改本地生成的连接的目标

NAT代码允许您在OUTPUT链中插入DNAT规则,但这
在2.4中并不完全支持(可能是,但它需要新的
配置选项,一些测试和一些编码,所以除非有人签订Rusty合同写它,我不会想到它很快).

当前的限制是您只能将目标更改为
本地计算机(例如`j DNAT - 至127.0.0.1'),而不能更改为任何其他计算机,否则将无法正确转换回复.