如何在忽略本地流量的情况下跟踪 Linux 上的互联网上传/下载?

如何在忽略本地流量的情况下跟踪 Linux 上的互联网上传/下载?

我有两个 Linux 计算机连接到路由器,路由器连接到调制解调器。Linux 计算机通过 NFS 共享文件系统。我想跟踪互联网使用上传和下载值,忽略本地 (nfs/ssh) 流量。我更愿意从中提取这些值/proc。正在寻找最小处理能力解决方案。有什么建议吗?

答案1

如果您想跟踪整个互联网流量,唯一的方法是从路由器而不是单个机器。

检查您的路由器是否支持 SNMP。如果支持,您可以在其中一台 PC 上安装 Linux 的 snmp 客户端,以监控路由器上 WAN 接口(即外部接口)的网络使用情况,这将显示 Internet 上的总流量。

其他任何事情都会很复杂,因为您需要过滤掉来自机器和路由器的任何本地流量。

答案2

您可以向 iptables 添加两条规则,以区分往返互联网的数据包。请注意,您必须根据系统和网络设置调整它们。我假设网络接口名称eth1192.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

相关内容