信息发布→ 登录 注册 退出

Linux抓包如何分析_tcpdump常见场景解析【指导】

发布时间:2025-12-24

点击量:
tcpdump核心在于抓得准、看得懂、判得清,需结合场景选参数、用过滤器、理解输出;先查网卡与流量,再精准定位IP/端口/协议,支持保存pcap供Wireshark分析或远程实时解析。

Linux 下用 tcpdump 抓包,核心不是“抓得到”,而是“抓得准、看得懂、判得清”。它不提供图形界面,但胜在轻量、可靠、可脚本化,是服务器端网络排障的第一把刀。关键在于结合场景选对参数、用好过滤器、理解输出含义。

快速确认网卡与基础流量

刚登录一台陌生服务器,先搞清有哪些网卡、当前有没有活跃流量:

  • 运行 tcpdump -D 查看所有可用接口(如 eth0、ens33、lo)
  • sudo tcpdump -i eth0 -c 5 抓 5 个包,确认网卡能收发(避免误选 down 状态或 loopback 接口)
  • -nn 防止 DNS/端口反解拖慢输出:sudo tcpdump -i eth0 -nn -c 10
  • 若需长期观察,加 -t 去掉时间戳前缀,让日志更紧凑

精准定位问题主机或服务

不是所有流量都要看,缩小范围才能高效分析:

  • 只看某 IP 的进出流量:sudo tcpdump -i eth0 host 10.20.30.40
  • 只看发给它的(响应方向):sudo tcpdump -i eth0 dst 10.20.30.40
  • 只看它发出的(请求方向):sudo tcpdump -i eth0 src 10.20.30.40
  • 组合条件更实用:比如查某 IP 访问 Web 服务:sudo tcpdump -i eth0 -nn "host 10.20.30.40 and port 80"

聚焦协议与端口行为

Web 响应慢、SSH 登录卡顿、DNS 解析超时——这类问题基本靠端口+协议过滤定位:

  • HTTP 请求(目标端口 80):sudo tcpdump -i eth0 -nn dst port 80
  • HTTPS 响应(源端口 443):sudo tcpdump -i eth0 -nn src port 443
  • DNS 查询(UDP 53):sudo tcpdump -i eth0 -nn udp port 53
  • 排除干扰流量(如跳过 SSH):sudo tcpdump -i eth0 -nn "not port 22"
  • 想看完整 TCP 握手过程?加 -v 显示标志位:sudo tcpdump -i eth0 -nn -v "tcp[tcpflags] & (tcp-syn|tcp-ack) != 0"

保存与后续深度分析

终端滚动太快记不住细节,或需多人协作/复现问题,务必保存为标准 pcap 文件:

  • 抓包存盘:sudo tcpdump -i eth0 -s 0 -w debug.pcap port 80-s 0 表示捕获完整包,不截断)
  • 本地用 Wireshark 打开:wireshark debug.pcap
  • 远程抓包+本地分析(免传文件):ssh user@server 'sudo tcpdump -s 0 -c 1000 -nn -w - not port 22' | wireshark -k -i -
  • 快速提取 HTTP 头信息:sudo tcpdump -i eth0 -nn -A -s 1500 port 80 | grep -i "GET\|POST\|Host:"

tcpdump 不需要学完所有参数才上手。从 -i-nnhostport 这几个关键词开始,配合 -c-w 控制数量与落盘,就能覆盖 90% 的线上排查场景。真正难的不是命令,是读懂包里的时间差、重传、RST、窗口变化这些信号——那需要你多看几次三次握手和 HTTP 交互的实际输出。

标签:# 关键词  # 线上  # 要看  # 这类  # 一台  # 几次  # 就能  # 看得懂  # 抓得  # 只看  # linux  # ssh  # tcpdump  # wireshark  # udp  # http  # 接口  # dns  # 端口  
在线客服
服务热线

服务热线

4008888355

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

截屏,微信识别二维码

打开微信

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