我想转发在端口162上接收的udp数据包到另一个port.ex:8981
我已经执行了以下cmd
iptables -A PREROUTING -t nat -p tcp --dport 162 -j REDIRECT --to-port 8981
我看到我正在接收8981上的重复数据包
有人能指导我做正确的做法吗?
另外如何删除上面的规则?
TIA,/ d
我们将留下“重复数据包”的问题,直到有更多的诊断数据可用,但删除规则很简单。
要删除iptables规则,只需将-Areplace为-D :
iptables -D PREROUTING -t nat -p tcp --dport 162 -j REDIRECT --to-port 8981
如果您使用-IN ,则可以使用iptables -DN ,但是如果随后插入了任何规则,那么这是有风险的。
如果你真的搞砸了,甚至不知道你运行了什么iptables命令( bash有命令历史logging是有原因的…),那么你可以列出链条中的所有规则:
iptables -t nat -L PREROUTING --line-numbers
这会得到你这样的输出:
Chain int2ext (1 references) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 2 ACCEPT all -- 192.0.2.0/24 0.0.0.0/0 3 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 4 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
然后,find您要删除的规则对应的num列条目,然后运行
iptables -t nat -D PREROUTING <num>