Skip to content

网络排查与工具

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

Updated View as Markdown
For humans

网络排查与工具

校招考察频度:☆ 中频(原理扩展·工程加分项)

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

工具清单

工具看什么典型命令
ping连通性、RTT、丢包ping example.com
traceroute路径、哪一跳慢/丢traceroute example.com
dig / nslookupDNS 解析dig example.com
curlHTTP 全链路curl -v -w "%{time_total}"
netstat / ss连接状态、端口ss -tnp、netstat -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