Linux 下的网络诊断工具集锦:从 ping 到 traceroute 再到 ss
引言
网络诊断是运维的必备技能。本文将详解 ping
、traceroute
、ss
等工具的使用与进阶技巧。
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 故障场景:网站无法访问
- 检查本地网络 :
ping 192.168.1.1
(网关) - 域名解析 :
dig example.com
- 端口连通性 :
nc -zv example.com 443
- 路径追踪 :
traceroute example.com
3.2 案例分析
# 发现目标端口 80 拒绝连接
telnet example.com 80
# 通过 ss 查看本地监听端口
ss -tulnp | grep ':80'
4. 工具对比与选择
ping | 连通性检测 | 简单快速 |
---|---|---|
traceroute | 路径分析 | 识别中间节点延迟 |
ss | 连接状态 | 替代 netstat,支持过滤 |
tcpdump | 数据包级分析 | 精确抓包 |
总结
掌握这些工具能快速定位网络问题。从基础连通性到深度数据包分析,合理组合工具可显著提升诊断效率。