ip 表端口转发重复数据包

ip 表端口转发重复数据包

我想将端口 162 上接收到的 udp 数据包转发到另一个端口,例如:8981

我已经执行了以下命令

iptables -A PREROUTING -t nat  -p tcp --dport 162 -j REDIRECT --to-port 8981

我发现我现在在 8981 上接收到重复的数据包。

有人可以指导我正确的做法吗?

另外如何删除上述规则?

TIA,/天

答案1

我们将保留“重复数据包”问题,直到有更多可用的诊断数据,但规则删除很容易。

要删除 iptables 规则,只需将其替换-A-D

iptables -D PREROUTING -t nat  -p tcp --dport 162 -j REDIRECT --to-port 8981

如果您要使用-I N,则可以使用iptables -D N,但如果随后插入了任何规则,则这样做会有风险。

如果你真的搞砸了,甚至不知道iptables你运行了什么命令(bash由于原因而有命令历史记录......)那么你可以像这样列出链中的所有规则:

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

然后,找到num要删除的规则对应的列条目,并运行

iptables -t nat -D PREROUTING <num>

相关内容