如何按 src/dst(以及 UDP 和 TCP 端口)记录 IP 流量?

如何按 src/dst(以及 UDP 和 TCP 端口)记录 IP 流量?

如何按 src/dst(以及 UDP 和 TCP 端口)记录 IP 流量?

对于每个间隔(可能是每小时)我希望看到类似的内容:

proto, src, dst, packets, octets
ICMP, 192.168.1.3, 2.3.4.5, 34, 483
TCP, 192.168.1.3:34821, 2.3.4.5:80, 123, 23408
TCP, 192.168.1.3:33812, 5.6.7.8:22, 201, 2039
TCP, 192.168.1.3:53, 1.1.1.1:53, 23, 3400
UDP, 192.168.1.3:53, 1.1.1.1:53, 323, 23403

对于网关/路由器盒,我预计每小时有数千条线路。

我知道 iptables 可以计算流量,但据我了解,在开始计算之前,您需要知道地址和端口。

有没有常用的计数解决方案全部IP流量?

(我正在寻找一种低级工具/技术,而不是网络管理套件的功能。)

答案1

您可以从 conntrack 获取字节和数据包计数。

要启用计数器,请设置计费

#sysctl net.netfilter.nf_conntrack_acct=1

然后你会看到这样的 conntrack 输出

#conntrack -L
tcp      6 431971 ESTABLISHED src=192.168.0.156 dst=192.168.0.1 sport=53474 dport=443 packets=11 bytes=1945 src=192.168.0.1 dst=192.168.0.156 sport=443 dport=53474 packets=12 bytes=5238 [ASSURED] mark=0 use=1

您可以使用此命令将计数器清零

#conntrack -L -z

请注意,这些计数器是基于连接的。连接关闭后,Conntrack 条目将被删除。

查看手册页以获取更多信息

#man conntrack

相关内容