我有一台 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并查看一下。
还有其他好方法或工具可以解决此类问题吗?真的想知道数据包流,谢谢!