tcpdump 排查系统服务启动时的网络通信错误

轻敏同学_1931

轻敏同学_1931

2026-08-20

270人浏览

原创

tcpdump可精准定位服务启动连接失败根源:先验证是否发出syn包,再检查三次握手是否完成(syn→syn+ack→ack),最后分析tls/http等应用层协议交互,结合-c、-a、过滤表达式实现快速聚焦与干扰排除。

tcpdump 排查系统服务启动时的网络通信错误

服务启动失败,日志只显示“连接超时”或“无法连接到上游”,但 ping 和 telnet 看似正常——这类问题往往藏在 TCP 握手或应用层协议交互里。tcpdump 能直接看到服务进程发起的第一包,比日志更早、更真实。

确认服务实际发起的连接行为

很多服务(如 Nginx 上游、Java 应用连接 Redis、systemd 依赖的 socket 激活服务)会在启动瞬间尝试建连。此时用 tcpdump 抓取对应端口,能验证它是否真发出了 SYN 包:

  • 先查服务监听/连接配置,明确目标 IP 和端口(例如 10.0.2.5:6379)
  • 在服务所在机器上执行:
    sudo tcpdump -i any -nn -c 20 'host 10.0.2.5 and port 6379'
  • 然后立即重启服务(systemctl restart myapp 或手动启动)
  • 若完全没抓到任何包,说明服务根本没尝试连接——问题在配置加载、条件判断或代码逻辑层,不是网络问题

检查三次握手是否完成

抓到 SYN 却没看到 SYN-ACK,基本可锁定为网络路径阻断:

  • 典型输出中只有 Flags [S](客户端发),没有对应的 Flags [S.](服务端回),说明请求未抵达目标或被丢弃
  • 常见原因:防火墙 DROP 规则、安全组未放行、目标服务未监听、路由不可达、NAT 配置错误
  • 注意区分“无响应”和“RST 响应”:如果看到 Flags [R.],说明目标主机收到 SYN 但拒绝连接(端口未开或服务崩溃)

观察应用层协议是否协商成功

TCP 连通 ≠ 服务可用。比如 TLS 握手失败、HTTP 401、Redis AUTH 错误等,都会导致服务启动卡住:

  • 加 -A 参数查看 ASCII 内容:
    sudo tcpdump -i eth0 -nn -A 'host 10.0.2.5 and port 6379' | grep -i -E '(auth|error|fail|hello)'
  • 对 HTTPS 服务,可过滤 TLS ClientHello:
    sudo tcpdump -i any -nn -A 'port 443 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x16030100'
  • 若看到 ClientHello 但无 ServerHello 回复,说明 TLS 层已中断,需检查证书、协议版本或中间设备(如 LB)拦截

避免干扰与精准定位

服务启动过程短暂,抓包窗口小,需减少噪音、快速聚焦:

  • 用 -c N 限制包数(如 -c 50),防止缓冲区溢出或漏掉关键帧
  • 避免用 -s 0 在高流量环境——默认截断已够分析握手和协议头,完整包反而拖慢解析
  • 若服务由 systemd 启动,可在 ExecStartPre 中加一行:
    /usr/bin/sudo /usr/sbin/tcpdump -i lo -nn -w /tmp/startup.pcap 'port XXX' -c 30 &,确保抓包与启动同步
  • 抓完立刻用 tcpdump -r /tmp/startup.pcap -nn -A | head -20 快速浏览前几行,确认关键交互是否存在
PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2772

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

936

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

829

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2496

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4632

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

747

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习