网络诊断的重要性
网络问题是后端开发和运维中最常见也最难排查的问题之一。掌握网络诊断工具是每个技术人员的必备技能。
Wireshark:图形化协议分析
Wireshark是最强大的网络协议分析工具,支持数百种协议的深度解析。
核心功能
- 实时抓包和离线分析
- 强大的显示过滤器
- 协议深度解析
- 流量统计和IO图
- 跟踪TCP流
常用过滤器
# 只显示特定IP的流量
ip.addr == 192.168.1.100
# 只显示HTTP流量
http
# 显示特定端口的TCP流量
tcp.port == 443
# 显示DNS查询
dns
# 组合过滤
http and ip.src == 192.168.1.1
实战场景
分析API调用延迟: 1. 抓取调用API期间的网络包 2. 使用HTTP过滤器定位相关请求 3. 查看TCP握手时间和请求响应间隔 4. 分析是否存在DNS解析慢、连接复用等问题
定位连接重置:
显示过滤器输入tcp.flags.reset == 1,快速定位RST包,分析连接被重置的原因。
tcpdump:命令行抓包利器
tcpdump是服务器环境中最常用的命令行抓包工具。
基本用法
# 抓取eth0接口上的所有流量
tcpdump -i eth0
# 抓取特定端口的流量,保存到文件
tcpdump -i eth0 port 80 -w capture.pcap
# 抓取并显示包内容(ASCII)
tcpdump -i eth0 -A port 443
# 限制抓取数量
tcpdump -i eth0 -c 100
实战技巧
抓取HTTP请求和响应:
tcpdump -i eth0 -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
监控特定IP的流量:
tcpdump host 10.0.0.1 and not port 22
后台持续抓取:
nohup tcpdump -i eth0 -w /tmp/capture.pcap -G 3600 -W 24 &
nmap:网络扫描工具
nmap用于主机发现、端口扫描和服务探测。
常用扫描类型
# 快速扫描常见端口
nmap -F target.com
# 全面扫描(操作系统+服务版本)
nmap -A target.com
# 扫描特定端口范围
nmap -p 1-1000 192.168.1.1
# 子网扫描
nmap -sP 192.168.1.0/24
实战场景
排查端口不可达问题:
# 检查目标服务器端口是否开放
nmap -p 8080 target-server.com
发现网络中的设备:
# 发现局域网中的活跃设备
nmap -sn 192.168.1.0/24
工具组合使用
在实际排查中,三种工具通常组合使用:
- nmap发现目标开放的端口和服务
- tcpdump抓取特定流量的原始包
- Wireshark分析抓取到的pcap文件
掌握这些网络诊断工具,可以高效定位从TCP连接问题到应用层协议的各类网络故障。
