我们有一台中央服务器,充当互联网网关。该服务器连接到互联网,并使用 iptables 转发流量并共享互联网连接在网络中的所有计算机之间。这很好用。
然而,有时互联网变得非常慢。其中一位用户很可能正在下载视频或其他大文件。我想找出罪魁祸首。我正在考虑安装一个工具,可以通过 IP 监控通过服务器的网络流量。最好是实时的以及累计的总数(同样通过 IP)。有什么推荐的工具吗?最好是 Ubuntu 存储库中的东西。
答案1
恩托普可能是执行此操作的最佳解决方案。它旨在长期运行并准确捕获您正在寻找的内容。
它可以向您显示哪些客户端正在接收/发送最多的流量、它们在哪里接收/发送、正在使用什么协议和端口等。
然后它使用 Web GUI 来导航和显示此信息。
ntop 是一个相当知名的工具,所以如果它不在 Ubuntu 的软件包存储库中我会感到非常惊讶。
答案2
要按 IP(而不是按 IP 和端口)查看实时使用情况:
sudo apt install tcptrack
sudo tcptrack -i eth0
要查看 MAC 地址的实时使用情况,一个不错的基于 ncurses 的工具是iptraf-ng
:
sudo apt install iptraf-ng
sudo iptraf-ng
(然后,选择“局域网站监视器 → eth0”。)
要按 IP 查看每日聚合数据量,我最喜欢的是ipfm
.安装:
sudo apt install ipfm
/etc/ipfm.conf
然后根据配置man ipfm.conf
并启动sudo ipfm
。
答案3
恩托普可以准确地满足您的要求。它收集有关流经您的网络的所有流量的数据(如果其他网络具有配置为向您的系统发送网络流量数据的设备,则可以从其他网络收集数据)。
它将向您显示网络上的每台主机以及它们使用了多少带宽。它可以让您深入了解每个主机并查看它们正在生成什么类型的流量以及来自/来自谁的流量。它会让您看到当前建立的 TCP 连接。您可能会花几天时间浏览它提供的数据。
不过,该程序可能会占用大量内存,具体取决于您如何设置选项。
答案4
您可以从 iptables 检查现有计数器,看看是否有任何异常,
还可以向 iptables 添加仅用于生成流量计数的会计规则。Shorewall 等工具可以轻松实现此目的,并且有关于会计规则
研究表明,路由器中的大缓冲区可能会导致性能问题。您可能需要尝试将流量调整为略小于网络容量。 Shorewall 提供了几种流量整形方法。这也可用于对某些类型的流量进行优先级排序。
如果您确实发现某个用户的带宽使用率过高,您有以下几种选择:
- 与他们讨论问题并提醒他们您的使用政策;
- 阻止访问正在使用带宽的服务和/或站点;
- 限制使用带宽的服务和/或站点的流量;和/或
- 限制相关用户的流量。