网站打不开、延迟突然飙高、域名解析不对——排查网络问题,靠的是几个基础命令的组合:ping 测连通性、traceroute 看路由、dig/nslookup 查 DNS。这套组合拳是运维排障的起点,这篇文章把每个工具的用法和判断思路讲清楚。
一、ping:连通性与延迟
ping baidu.com # 持续 ping,Ctrl+C 停止
ping -c 4 8.8.8.8 # 只发 4 个包
ping -c 100 -i 0.5 baidu.com # 100 个包,每 0.5 秒一次
ping -s 1400 baidu.com # 大包测试(默认 56 字节)
看结果:
64 bytes from 39.156.66.10: icmp_seq=1 ttl=49 time=12.3 ms
time往返延迟,越小越好;国内访问香港/日本一般 30-80ms;ttl每次路由转发减 1,可粗略判断跳数;- 丢包判断:
packet loss超过 1% 就要注意,丢包说明线路不稳或服务器被限速; - 100% 丢包 ≠ 一定不通:部分服务器(如某些云主机、CDN)禁 ping,用
telnet IP 端口验证。
二、traceroute:看路由怎么走
延迟高、时快时慢,用 traceroute 看是卡在哪个节点:
traceroute baidu.com # 默认 UDP
traceroute -I baidu.com # 用 ICMP(更通用)
traceroute -T -p 443 www.google.com # 用 TCP 443(穿透防火墙)
mtr -n -c 20 baidu.com # mtr 是增强版,持续统计丢包
输出解读:每一行是一个跳点(路由器),时间 * * * 表示该节点不回包(正常,很多路由器不回 ICMP)。重点看最后几跳:如果延迟在你和骨干网之间暴涨,是本地线路问题;如果最后几跳才高,可能是机房或上游线路问题。
mtr 建议:排障优先用 mtr,它会持续采样并报告每一跳的丢包率,比单次 traceroute 靠谱。
三、dig:DNS 查询的瑞士军刀
dig baidu.com # 查询 A 记录
dig baidu.com A # 显式指定类型
dig www.baidu.com CNAME # 查 CNAME
dig baidu.com MX # 查邮件服务器
dig baidu.com NS # 查域名服务器
dig @8.8.8.8 baidu.com # 指定 DNS 服务器查询
dig +short baidu.com # 精简输出,只要结果
判断解析问题:新解析的域名不生效、换了服务器 IP 不更新,用 dig @你使用的DNS 域名 看返回的 IP 是不是最新。还不行就 dig @8.8.8.8 对比,确认是解析没生效还是本地缓存。
查看解析生效状态:
dig +short example.com # 当前 DNS 返回的 IP
dig example.com +noall +answer # 只看应答区
四、nslookup:更简单的 DNS 查询
nslookup baidu.com # 查询 A 记录
nslookup -type=mx baidu.com # 查 MX
nslookup baidu.com 8.8.8.8 # 指定 DNS 服务器
输出中的 Address 就是解析结果。nslookup 适合快速查询,dig 适合详细排查。
五、端口连通性:telnet / nc
ping 通了不代表网站能访问,还要测端口:
telnet 1.2.3.4 22 # 连得上显示 Connected
nc -zv 1.2.3.4 22 # -z 只测不连,-v 显示结果
nc -zv 1.2.3.4 22 80 443 # 一次测多个端口
用途:服务器 ping 通但网站打不开,多半是端口没放行(安全组/防火墙),nc -zv IP 端口 一测便知。
六、完整排障流程
场景:网站打不开
ping 服务器IP→ 不通先查本地网络/服务器是否宕机,通了继续;mtr 服务器IP→ 看哪一跳丢包高,定位是线路还是机房问题;dig 域名→ 确认域名解析到了正确 IP;nc -zv IP 80→ 端口通不通,不通查安全组/防火墙;curl -v http://域名→ 看 HTTP 层面报什么错。
场景:域名解析慢/不对
dig @8.8.8.8 域名→ 权威 DNS 返回对不对;dig +short 域名→ 本地 DNS 返回对不对;- 对比两者:不一致说明本地 DNS 缓存旧了,等 TTL 或换 DNS;
- 用
ping 域名看实际连的 IP。
七、常见坑
- ping 不通就慌:先确认对方禁不禁 ping(云厂商、CDN 普遍禁),换
nc -zv IP 端口验证; - traceroute 中间 * * *:很多路由器不回 ICMP 包,不代表断,重点看最后一跳和整体延迟;
- dig 结果和网站不一致:本地 DNS 缓存(
systemd-resolved或路由器),resolvectl flush-caches清一下; - 测速和 ping 不对应:ping 延迟低但下载慢,通常是带宽/线路拥塞,用 mtr 看丢包,用 iperf3 测真实带宽;
- IPv6 干扰:域名有 AAAA 记录但网络不支持,ping 超时,加
-4强制 IPv4。
总结:网络排障四板斧——ping 测通不通、mtr 看路由丢包、dig 查解析对不对、nc 测端口放没放行。记忆口诀:先 ping 后 mtr,dig 查解析,nc 测端口,curl 看应用。按这个顺序走,绝大多数网络问题都能定位到具体环节。




