一个 iptables PREROUTING 规则不起作用,而另一个起作用

一个 iptables PREROUTING 规则不起作用,而另一个起作用

我有一台 Linux 设备,其中有两个 iptables 规则。它们的行为很有趣。

root@xxx:~# iptables -t nat -nvL PREROUTING
Chain PREROUTING (policy ACCEPT 4 packets, 812 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REDIRECT   udp  --  *      *       10.20.40.10          0.0.0.0/0            udp dpt:514 redir ports 5633
    0     0 REDIRECT   udp  --  *      *       10.20.40.15          0.0.0.0/0            udp dpt:514 redir ports 5634

我们已经有一个在 514 上监听的 rsyslog 应用程序,我们认为 iptables 应该在 rsyslog 之前生效。但结果却出乎意料。对于规则 1(10.20.40.10),我们可以确认它正在执行将数据包从 514 重定向到 5633 的工作,因为我们在 5633 上的应用程序收到了它。但对于规则 2(10.20.40.10),它没有执行这项工作。数据包直接发送到位于 514 上的应用程序。

我们打算关闭rsyslog并查看一下。

还有其他好方法或工具可以解决此类问题吗?真的想知道数据包流,谢谢!

相关内容