![使用iptables链监控流量](https://linux22.com/image/708340/%E4%BD%BF%E7%94%A8iptables%E9%93%BE%E7%9B%91%E6%8E%A7%E6%B5%81%E9%87%8F.png)
我们有一个用作路由器的 Linux 机器,其中 iptablesFORWARD
链中有各种规则(ip、tcp 端口、udp 端口等),这些规则可能会随时添加或删除。
我需要分别监控通过盒子的流量的不同方面,包括tcp段和udp数据报。
netstat -s
只输出来自或指向路由器的数据的统计信息,所以我认为 iptables 本身更有意义。我发现这个解释如何将流量从FORWARD
链发送到用户定义的链来监控统计数据,但是它掩盖了如果链中已经有规则会产生什么影响FORWARD
。
我的问题是:插入一条规则“重定向通过机器的所有流量以匹配 [用户定义] 链中的规则”是否会阻止流量被链的其余部分处理FORWARD
?换句话说,如果一个数据包击中FORWARD
链并立即被重定向到用户定义的链以监控流量,那么该数据包会发生什么?它会继续通过链中的规则,FORWARD
直到它击中接受/丢弃数据包的规则吗?
答案1
我最终在非生产环境中的系统上进行了一些测试。结果表明,您可以使用用户定义的流量监控链,并且它不会影响您当前的规则。
数据包将通过用户定义的链,在那里它可以被监控,并且它仍然会被链中的其他规则接受或阻止FORWARD
。