Skip to content
VDS · 监控与性能

网络负载:iftop、nload、ss

如何查看机器上有多少流量、具体流向哪里,以及当通道饱和时哪些进程占用了连接。

更新于 2026年8月23日

每台机器的带宽最高可达 500 Mbps。这几乎总是够用的,但通道有时会被不该占用的东西占满:别人的下载机器人、被遗忘的文件共享、受感染进程产生的流量。下面介绍三个工具,分别回答“用了多少”“流向哪里”和“谁在用”。

nload:当前用了多少

apt install -y nload && nload
dnf install -y nload && nload

它按网卡显示入站和出站流量,并带有图表和本次会话的计数器。用方向键切换网卡,按 q 退出。这是判断通道是否被占满的最快方法。

一次性使用,无需安装:

cat /proc/net/dev
vnstat -l           # if vnstat is installed, shows a live counter

iftop:流量流向哪里

apt install -y iftop && iftop -nNP -i eth0

参数:-n 不解析地址,-N 不解析端口,-P 显示端口。您会看到一列“您的地址 — 远端地址”的配对,并带有 2 秒、10 秒和 40 秒的条形图。如果某一行占满了全部流量,您就得到了源地址或目标地址——接下来由您决定是封禁它,还是深入排查对应的应用程序。

用 ip -br a 查看网卡名称——通常是 eth0 或 ens18。

ss:谁占着连接

ss 随系统自带,无需安装。

ss -tulpn                     # which ports are listening and which processes
ss -tn state established      # active connections
ss -tn state established | awk '{print $4}' | cut -d: -f1 | sort | uniq -c | sort -rn | head

最后一条命令按地址统计连接数——这样就能发现某个客户端打开了数百个连接。这是 SSH 密码暴力破解或对网站进行简单攻击时的典型情况。

ss -tulpn 还能帮您检查某个端口是否真的在对外监听,而不只是监听 localhost:地址 127.0.0.1:5432 只能从本机访问,0.0.0.0:5432 则对整个互联网开放。

过去时段的图表

实时工具无法回答“夜里发生了什么”这个问题。为此可以使用:

  • 面板中“概览”标签页的流量图表 /hosting/vds/m/<id>——支持一小时、一天、一周和一个月,参见面板中的图表;
  • 机器内部的 vnstat——按日和按月统计:apt install -y vnstat,然后执行 vnstat -d 和 vnstat -m;
  • Netdata,如果您需要带历史记录的每秒指标。

常见错误

  • 在错误的网卡上查看 iftop。 在 lo 上您只能看到本地交互,真实流量会从您眼前溜走。
  • 仅因为入站流量增长就把它当成攻击。 先看看来源是谁、命中哪个端口:往往是索引机器人或您自己的备份。
  • 在应用层面关闭端口。 如果某个服务监听 0.0.0.0,唯一可靠的防护是过滤器。请参照防火墙相关文章进行设置,只暴露您需要的部分。
  • 忽视出站流量。 被感染的机器通常不接收数据,而是对外提供:网站平静时出站流量突然飙升,就值得用 ss -tnp 检查进程。

500 Mbps 的带宽由机器上您的所有服务共享。单个进程全速下载会拖慢网站和 SSH——请限制后台下载,例如使用 rsync --bwlimit 或 wget --limit-rate。