信息发布→ 登录 注册 退出

Linux网络监控教程_tcpdumpwireshark抓包分析实战

发布时间:2025-12-31

点击量:
Linux网络抓包分析核心是tcpdump捕获+Wireshark解析:tcpdump在无图形界面服务器上过滤保存pcap(如port 80、-w -C -W),scp传输后Wireshark图形化分析(显示过滤、Follow TCP Stream),用于定位连接超时、响应慢、HTTPS证书等问题,需注意性能与安全风险。

Linux下用tcpdump和Wireshark做网络抓包分析,核心就两点:先用tcpdump在服务器上高效捕获数据,再导出到本地用Wireshark图形化深度解析。不装图形界面的生产服务器没法直接跑Wireshark,所以分工明确——tcpdump负责“录”,Wireshark负责“看”。

tcpdump基础抓包:过滤准、保存稳

抓包不是全量收,得靠表达式过滤出真正关心的流量。常用组合有:

  • 按端口tcpdump -i eth0 port 80(抓HTTP)或 port 22(SSH)
  • 按协议+方向tcpdump -i eth0 tcp and src host 192.168.1.100(只抓来自某IP的TCP包)
  • 保存为pcap文件tcpdump -i eth0 -w /tmp/nginx_access.pcap port 80 -C 100 -W 5(单文件100MB,轮转5个,防磁盘打满)

注意加-n跳过DNS解析提速,加-q减少输出冗余;生产环境慎用-s 0(全包长),默认截断可能漏关键载荷,但全抓会显著增加I/O和存储压力。

tcpdump与Wireshark协同:从命令行到图形界面

tcpdump生成的.pcap文件可直接用Wireshark打开。常见操作链路:

  • 服务器上运行:tcpdump -i any -w /tmp/app_debug.pcap host 10.0.3.5 and port 3306
  • scp把文件拉到本地:scp user@server:/tmp/app_debug.pcap ./
  • Wireshark中打开 → 用显示过滤器进一步缩小范围,比如mysql.query contains "SELECT"http.request.method == "POST"

Wireshark里右键数据包选“Follow → TCP Stream”,能直接看到完整会话内容(如HTTP请求/响应体、Redis命令),比翻原始十六进制直观得多。

定位典型问题的抓包思路

不同故障对应不同抓包侧重点:

  • 连接超时/拒绝:抓三次握手,看SYN发出去有没有SYN-ACK回来。Wireshark里过滤tcp.flags.syn == 1,结合时间列判断丢包或防火墙拦截
  • 接口返回慢:抓应用端口(如8080)+后端服务端口(如5432),对比请求发出到响应返回的时间差,再看后端响应是否也慢,快速区分是网络延迟还是服务瓶颈
  • HTTPS证书报错:抓443端口,过滤tls.handshake.type == 1(Client Hello),检查SNI域名是否正确,再看Server Hello里返回的证书是否匹配

安全与性能提醒

抓包本身有风险,需提前评估:

  • 避免在高流量网卡(如万兆)上无过滤全抓,可能瞬间打满磁盘或拖慢系统
  • 敏感业务(如支付回调)抓包前确认合规性,pcap文件含明文字段(URL、Header、Cookie),传输和存储需加密
  • 容器环境抓宿主机网卡可能看不到内部veth流量,应进入容器用nsenter或在dockerd启用host.docker.internal桥接后抓

不复杂但容易忽略。

标签:# mysql  # linux  # redis  # docker  # nginx  # cookie  # 防火墙  # app  # access  # 端口  # 后端  # select  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!