常见网络工具箱:speedtest、iperf、mtr、besttrace 速查
一份面向服务器运维的网络排障速查:测带宽、看丢包、查路由、诊断 DNS 与连接,各带一句话示例。
服务器网络出问题时,"慢"往往只是表象——到底是带宽不够、链路丢包、路由绕远,还是 DNS 解析卡住?下面这套命令行工具各管一段,组合起来就能快速定位。除特别说明外,示例均以 Ubuntu/Debian 为准。
先装好工具
多数工具在官方仓库里,一条命令搞定:
sudo apt update
sudo apt install -y speedtest-cli iperf3 mtr-tiny traceroute dnsutils curl iproute2
nexttrace 与 besttrace 不在 apt 里,需从各自项目页下载二进制;ss 属于 iproute2,系统一般自带。
速查表
| 工具 | 用途 | 一句话示例 | |---|---|---| | speedtest-cli | 测到公网测速点的上下行带宽 | speedtest-cli --simple | | iperf3 | 测两台自有主机间的点对点吞吐 | iperf3 -c 服务器IP | | mtr | 持续采样、逐跳看延迟与丢包 | mtr -rwzbc 100 1.1.1.1 | | nexttrace / besttrace | 逐跳路由 + IP 地理归属 | nexttrace 1.1.1.1 | | ping | 测通断与往返延迟 | ping -c 4 1.1.1.1 | | traceroute | 看数据包走了哪几跳 | traceroute 1.1.1.1 | | curl | 测 HTTP 可达性与分段耗时 | 见下 | | dig / nslookup | 查 DNS 解析结果 | dig example.com +short | | ss | 看本机监听端口与连接 | ss -tulnp |
分场景说明
带宽:speedtest 与 iperf3
speedtest-cli 测的是你的服务器到互联网某个公共测速节点的带宽,反映"公网出口"体感。想测两台自己主机之间的真实吞吐(比如内网、跨机房),就用 iperf3:一端 iperf3 -s 当服务端,另一端 iperf3 -c 服务端IP,加 -R 可反向测下行。
丢包与逐跳:mtr、ping、traceroute
ping 判断通不通、延迟多少;traceroute 展开中间每一跳。而 mtr 把两者合一并持续采样,是抓间歇性丢包的利器——-r 报告模式、-c 100 采 100 次、-w 宽格式、-z 显示 ASN。
路由与地理:nexttrace / besttrace
想知道流量"绕到哪个国家、经过哪家运营商",用 nexttrace 1.1.1.1 或 besttrace 1.1.1.1,它们在逐跳基础上标注 IP 归属地与 AS,排查跨境绕路特别直观。
HTTP 与 DNS:curl、dig
排查网站慢时,curl 能拆出各阶段耗时:
curl -o /dev/null -s -w 'DNS:%{time_namelookup} 连接:%{time_connect} 首字节:%{time_starttransfer} 总计:%{time_total}\n' https://example.com
若"域名打不开",先用 dig example.com A +short 确认解析是否正常;nslookup 是更传统的等价工具。
本机连接:ss
ss -tulnp 一眼看清哪些端口在监听、由哪个进程占用;ss -tn state established 则列出当前活跃连接。
小结
记住这条主线:speedtest/iperf3 看带宽,ping/mtr 看丢包,traceroute/nexttrace 看路由,dig 查 DNS,curl 测 HTTP,ss 看本机端口。遇到"网络慢",从上到下逐层排查,基本都能把问题锁定到某一段链路。