Linux 网络排障利器:从 iftop 到 tcpdump 的实战指南
服务器网络出问题时,最怕的就是“盲人摸象”。
网页打不开,或者 SSH 连接一卡一卡的,很多人的第一反应是重启服务器或者找机房。但这只能暂时掩盖问题。真正的高手,会打开终端,敲下几个命令,让数据说话。
今天整理了一份 Linux 环境下最常用的网络排障工具清单,从实时流量监控、连接状态分析到底层抓包,帮你快速定位网络瓶颈。
一、看带宽被谁吃了:iftop
如果服务器突然变卡,第一步永远是看带宽是不是被跑满了。虽然 `top` 命令能看到 CPU 和内存,但它看不了网络。
iftop 是最好的实时带宽监控工具。它像是一个专门针对网卡的 `top` 命令。
# 安装(以 Ubuntu/Debian 为例)
apt install iftop
# 监控指定网卡(如 eth0)
iftop -i eth0 -P怎么看:
- 界面分为三列,分别显示:过去 2 秒、10 秒、40 秒的平均流量。
=>代表发送(上传),<=代表接收(下载)。- 加上
-P参数可以显示具体的端口号,这样你就知道是哪个服务(比如 80 端口还是 3306 端口)在疯狂占用带宽了。
如果发现某个未知的 IP 在疯狂往外发数据,那大概率是服务器被入侵,成了肉鸡。
二、看连接状态:ss 替代 netstat
带宽没问题,但网站就是连不上?这时候需要看服务器的连接状态。
以前大家都用 netstat,但它已经过时了,在连接数上万的时候会卡死。现在请全部换用 ss(Socket Statistics)。
# 查看所有 TCP 连接的状态统计
ss -s
# 查看所有处于 ESTABLISHED(已建立)状态的连接
ss -tun state established
# 找出连接数最多的前 10 个 IP
ss -tn | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -10实战场景:
如果 ss -s 显示大量的 TIME-WAIT 或者 CLOSE-WAIT,说明短连接太多,或者后端应用没有正确释放连接。如果发现某个 IP 对服务器的某个端口建立了成百上千个连接,那可能是遭遇了 CC 攻击或恶意爬虫。
三、看系统全局统计:netstat -s
如果你想知道服务器整体网络健康度,比如有没有发生丢包、重传、或者 TCP 连接重置,netstat -s 是最直接的。
netstat -s | grep -i -E "retrans|drop|error"- segments retransmitted:重传的报文数。如果这个数字一直疯狂上涨,说明网络线路质量极差,或者带宽严重拥堵。
- packets dropped:被系统丢弃的包。如果数字很大,说明服务器的 CPU 处理不过来,或者内核缓冲区不够了。
四、终极武器:tcpdump 抓包
如果带宽正常、连接正常,但请求就是慢,或者报错了。这就属于“应用层”或者“协议层”的疑难杂症,需要祭出抓包工具:tcpdump。
tcpdump 能把你网卡上流过的每一个数据包都扒下来。它是排障的最后一道防线,因为任何网络通信在它面前都无处遁形。
# 抓取指定网卡、指定端口(如 80)的包,并保存到文件
tcpdump -i eth0 port 80 -w web_traffic.pcap
# 实时抓包,只显示指定 IP 的交互
tcpdump -i any host 192.168.1.100实战场景:
用 -w 参数把抓到的包保存成 .pcap 文件后,下载到本地,用 Wireshark 打开。你可以清晰地看到 TCP 的“三次握手”是否完成,HTTP 请求头对不对,以及服务器到底是卡在了哪一步没有返回数据。这对于排查跨运营商网络问题、或者第三方 API 对接问题简直是神器。
五、实战案例:一次典型的“服务器卡顿”排查
上周,我的一台服务器突然 SSH 连接变得极慢。我是这么排查的:
- 第一步:敲 iftop。 发现上传带宽被跑满了,全是发往未知公网 IP 的流量。
- 第二步:敲 ss -tnp。 找到发包的源端口(比如是某个 python 进程),但也可能被黑客替换了名字。
- 第三步:敲 lsof -i。 查看占用该端口的进程 PID。果然,是一个不知名的恶意挖矿程序在疯狂往外发包。
- 第四步:kill -9。 杀掉进程,删掉残留文件,清理 cron 定时任务。
整个过程不到五分钟。如果不懂这些工具,可能就会稀里糊涂地重装系统了。
六、写在最后
网络排障,最忌讳的就是“瞎猜”。
很多人一遇到网络问题,就习惯性地重启网卡、重启路由器,这就像医生看病不问症状直接开止痛药。
熟练掌握 iftop 看流量,ss 看连接,tcpdump 抓细节,你就能像医生看 CT 片一样,清楚地看到数据在服务器里是怎么流动的。
下次遇到网络卡顿,先别急着敲 reboot,打开终端,让这几个工具告诉你真相。
2026年10月19日