Linux 下的网络诊断工具集锦:从 ping 到 traceroute 再到 ss

引言

网络诊断是运维的必备技能。本文将详解 pingtraceroutess 等工具的使用与进阶技巧。


1. 基础工具:ping 与 traceroute

1.1 ping:网络连通性检测

# 发送 10 次 ICMP 请求
ping -c 10 example.com
# 显示统计信息
ping -q -c 10 example.com | grep -E 'transmitted|loss'

1.2 traceroute:路径追踪

# 使用 UDP 协议追踪路径
traceroute example.com
# 显示延迟分布
traceroute -q 3 example.com

2. 进阶工具:ss 与 tcpdump

2.1 ss:socket 统计

# 查看所有 TCP 连接
ss -tuln
# 过滤特定端口
ss -ltp | grep ':80'

2.2 tcpdump:数据包捕获

# 捕获 HTTP 流量
tcpdump -i eth0 port 80 -w http.pcap
# 解析 pcap 文件
tcpdump -r http.pcap

3. 综合诊断流程

3.1 故障场景:网站无法访问

  1. 检查本地网络ping 192.168.1.1(网关)
  2. 域名解析dig example.com
  3. 端口连通性nc -zv example.com 443
  4. 路径追踪traceroute example.com

3.2 案例分析

# 发现目标端口 80 拒绝连接
telnet example.com 80
# 通过 ss 查看本地监听端口
ss -tulnp | grep ':80'

4. 工具对比与选择

ping连通性检测简单快速
traceroute路径分析识别中间节点延迟
ss连接状态替代 netstat,支持过滤
tcpdump数据包级分析精确抓包

总结

掌握这些工具能快速定位网络问题。从基础连通性到深度数据包分析,合理组合工具可显著提升诊断效率。