追光笔记

常用的网络诊断命令整理

2026-10-11

按“从哪一层开始怀疑”来排,比背命令有用。

链路通不通

ping -c 4 host
mtr -n -r -c 20 host

mtr 比 traceroute 好用,能看出丢包发生在哪一跳。ICMP 被墙的情况下 ping 不通不代表 TCP 不通,别急着下结论。

端口开不开

nc -vz host 443
timeout 5 bash -c 'echo > /dev/tcp/host/443'

没有 nc 的机器上用后者,纯 bash 就能测。云服务器还要记得查安全组,本地能通、外网不通,九成是安全组或防火墙。

DNS 对不对

dig +short A example.com @1.1.1.1
dig +trace example.com

换不同的递归服务器对比结果,能快速判断是缓存没刷还是记录本身错。+trace 从根一路问下来,适合确认权威记录到底是什么。

TLS 正不正常

openssl s_client -connect host:443 -servername example.com </dev/null

看返回的证书链、有效期和 ALPN。忘了带 -servername 会拿到默认站点的证书,经常误判成证书不匹配。

抓包

tcpdump -i any -nn 'tcp port 443' -c 50

前面几步都正常还找不到原因,就直接抓包。看有没有 SYN 没回、有没有 RST,比猜快得多。