我有一台配置为路由器的计算机,有两个网卡,一个连接到互联网,另一个连接到本地网络交换机。
我知道我可以通过创建一个读取以下文件的脚本来获取 NIC 的当前吞吐量:/sys/class/net/[dev]/statistics
目录。
但是是否有可能获得网络上每个客户端的吞吐量,以便我可以看到每个客户端使用了多少互联网带宽?
答案1
要了解每个 IP 地址的使用情况,您可以为 FORWARD 链中的每个 IP 地址创建 iptable 规则并跟踪 iptables 统计计数器。
取自使用 iptables 和 rrdtool 进行网络统计
iptables -N stats iptables -A stats -s 192.168.0.3 -o $WAN -j RETURN iptables -A stats -d 192.168.0.3 -i $WAN -j RETURN iptables -A stats-s 192.168.0.4 -o $WAN -j RETURN iptables -A stats -d 192.168.0.4 -i $WAN -j RETURN iptables -A stats -o $WAN -j RETURN iptables -A stats -i $WAN -j RETURN iptables -A FORWARD -j stats
事实上,我过去经营过一家 ISP,他们使用这种方法通过 iptables 跟踪了几千个客户的带宽使用情况,然后我实施了从 Cisco 路由器获取数据的 Netflow 会计。