如何监控每个iptables伪装设备的带宽

题:

我可以使用哪种工具实时监视和分解哪些带宽iptables传送到哪台计算机?

语境:

我有一个Linux的盒子,通过iptables和3个以太网(2个局域网,1个广域网)来伪装大约15台设备。

用户有时会消耗所有的ADSL带宽。

我使用bwm-ng监控stream量,并看到如下结果:

 $ bwm-ng bwm-ng v0.6 (probing every 0.500s), press 'h' for help input: /proc/net/dev type: rate / iface Rx Tx Total ============================================================================== tun0: 0.00 KB/s 0.00 KB/s 0.00 KB/s eth0: 31.35 KB/s 649.82 KB/s 681.18 KB/s eth1: 649.40 KB/s 33.84 KB/s 683.24 KB/s eth2: 0.00 KB/s 0.00 KB/s 0.00 KB/s lo: 0.00 KB/s 0.00 KB/s 0.00 KB/s ------------------------------------------------------------------------------ total: 680.75 KB/s 683.66 KB/s 1364.42 KB/s 

所以我看到在eth1(WAN)上收到的stream量被路由到一些IP到eth0(LAN),所以有人正在进行一个超级下载。

问题在于这个用户使用了几个小时来消耗所有带宽。

我可以通过执行以下操作来查明是谁:

  • 切断对某些IP的访问并观察bwm-ng,然后切断其他等等。 但是这很脏。 它会中断服务,我不想这样做。
  • 指示iptableslogging所有stream量并尝试读取日志,但是我认为这对于在ssh中显示这个已经以类似于bwm-ng的方式显示的工具更为痛苦。

不需要历史数据,也不需要花哨的graphics。 只是实时的信息和ssh文本(如bwm-ng)将是完美的。