首页/系统/Linux 运维命令速查/场景:抓包定位请求是否到达
本包目录(613 条)
文件与目录76 条文本处理77 条
网络命令82 条
进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

场景:抓包定位请求是否到达

「客户端说发了、服务端说没收到」的终极裁判:在客户端出口与服务端入口分别抓包,对比 SYN 与响应即可定责。

Linux 运维命令速查系统更新于 2026-10-12
场景请求丢失/连接超时定责
组合tcpdump 双向抓包 + 过滤表达式

服务端(先起)

服务端(先起)
tcpdump -i any -nn -c 50 'tcp port 8080 and host 10.0.0.5'

客户端(后发请求)

客户端(后发请求)
curl -sS --max-time 5 http://10.0.0.9:8080/health
tcpdump -i any -nn -c 50 'tcp port 8080 and host 10.0.0.9'

判读

判读
# SYN 到达 + SYN-ACK 返回 = 网络通,问题在应用层
# 客户端只看到 SYN 重传、服务端没抓到 = 中间被拦(防火墙/安全组/NAT)
# 服务端抓到 SYN 但无响应 = 本机防火墙或监听队列问题
ss -lnt | grep :8080   # 对照:listen 队列积压吗
两端一起抓、按时间戳对齐,三层(客户端→服务端)证据链完整,找网络/云厂商升级工单也有据可依。

易错点

  • 抓包点选错:容器/NAT 环境在宿主机抓可能看不到容器内流量,优先在容器 netns 或节点出口抓
  • 生产抓包加 -c 与过滤,避免长时间高 PPS 抓包拖慢机器

数据来源与参考

  • man 8 tcpdump(tcpdump 官方手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌