我有两个 Linux 计算机连接到路由器,路由器连接到调制解调器。Linux 计算机通过 NFS 共享文件系统。我想跟踪互联网使用上传和下载值,忽略本地 (nfs/ssh) 流量。我更愿意从中提取这些值/proc
。正在寻找最小处理能力解决方案。有什么建议吗?
答案1
如果您想跟踪整个互联网流量,唯一的方法是从路由器而不是单个机器。
检查您的路由器是否支持 SNMP。如果支持,您可以在其中一台 PC 上安装 Linux 的 snmp 客户端,以监控路由器上 WAN 接口(即外部接口)的网络使用情况,这将显示 Internet 上的总流量。
其他任何事情都会很复杂,因为您需要过滤掉来自机器和路由器的任何本地流量。
答案2
您可以向 iptables 添加两条规则,以区分往返互联网的数据包。请注意,您必须根据系统和网络设置调整它们。我假设网络接口名称eth1和192.168.0.0/24。
iptables -I INPUT 1 -i eth0 ! -s 192.168.0.0/24
iptables -I OUTPUT 1 -o eth0 ! -d 192.168.0.0/24
然后你就可以看到这样的带宽使用情况:
# iptables -nvx -L INPUT
Chain INPUT (policy ACCEPT 542 packets, 63745 bytes)
pkts bytes target prot opt in out source destination
35 4533 all -- eth0 * ! 192.169.0.0/24 0.0.0.0/0
# iptables -nvx -L OUTPUT
Chain OUTPUT (policy ACCEPT 247 packets, 27847 bytes)
pkts bytes target prot opt in out source destination
48 4724 all -- * eth0 0.0.0.0/0 ! 192.168.0.0/24