Skip to content

网络排查与工具

ping/traceroute/curl/netstat 等工具、排查方法论。

Updated View as Markdown
For humans

网络排查与工具

面试实战题:线上接口超时、连不上、慢,怎么查。主线:工具各看什么、分层排查思路。

工具清单

工具 看什么 典型命令
ping 连通性、RTT、丢包 ping example.com
traceroute 路径、哪一跳慢/丢 traceroute example.com
dig / nslookup DNS 解析 dig example.com
curl HTTP 全链路 curl -v -w "%{time_total}"
netstat / ss 连接状态、端口 ss -tnpnetstat -ant
tcpdump 抓包看细节 tcpdump -i eth0 port 443
telnet / nc 端口连通性 nc -vz host 443

分层排查思路

排查顺序: 连通 → 路径 → 端口 → HTTP → 应用

从底层往上:物理连通(ping)→ 路由(traceroute)→ 端口(nc)→ 协议(curl)→ 应用(日志)。每层排除一个可能。

常见场景

现象 方向
ping 通但 curl 超时 端口被防火墙挡 / 服务没监听(nc 验证)
偶发超时 丢包(traceroute 看哪跳)、LB 健康检查、连接池满
首包慢后续快 DNS 慢 / 新连接握手开销(keep-alive 优化)
跨机房慢 RTT 物理限制(看延迟是否符合距离)
curl 卡在 TLS 证书链、TLS 握手协商(-k 跳过验证测试)
大量 TIME_WAIT/CLOSE_WAIT 连接管理问题(见 TCP 篇)

curl 高级用法

curl -v https://api.example.com          # 详细:DNS/TCP/TLS/请求响应全流程
curl -w "dns:%{time_namelookup} tcp:%{time_connect} tls:%{time_appconnect} total:%{time_total}\n" URL
curl -o /dev/null -s -w "%{http_code} %{size_download}\n" URL   # 状态码+大小

-w 分段时间是性能定位利器:DNS 慢还是 TCP 慢还是 TLS 慢还是等待响应慢,一目了然。

面试追问

  1. 排查思路? 从底层往上分层排除:连通 → 路径 → 端口 → HTTP → 应用。每层一个工具
  2. ping 通但连不上? 端口层问题:服务没监听或防火墙挡。nc/telnet 验证端口
  3. curl -w 看什么? 分段时间:DNS/TCP 连接/TLS/总耗时。定位慢在哪一段
  4. 偶发超时怎么查? traceroute 看丢包、抓包看重传、看连接池和超时配置
  5. traceroute 的作用? 看路径和每一跳的延迟:定位哪一跳慢或断
Navigation

Type to search…

↑↓ navigate↵ selectEsc close