news 2026/4/24 15:07:26

网络排障实战:当网页打不开时,如何用Wireshark抓包分析DNS、DHCP和HTTP问题?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
网络排障实战:当网页打不开时,如何用Wireshark抓包分析DNS、DHCP和HTTP问题?

网络排障实战:当网页打不开时如何用Wireshark进行全链路诊断

当办公室突然有人喊"网站打不开了",作为技术人员的你会怎么做?直接重启电脑?刷新页面?还是打开命令行ping一下?这些常规操作往往治标不治本。本文将带你用Wireshark这把"网络手术刀",从底层协议开始逐层解剖,找到真正的病灶所在。

1. 排查准备:构建科学诊断环境

在开始抓包前,需要做好三项基础工作:

  1. Wireshark基础配置

    • 最新版安装(推荐3.6+)
    • 启用Capture packets in promiscuous mode
    • 设置Auto-scroll in live capture
  2. 网络环境准备

    # 清除可能干扰的旧缓存 ipconfig /flushdns # Windows sudo dscacheutil -flushcache # macOS
  3. 关键过滤命令备忘

    dhcp || dns || http || tcp.port == 80 || udp.port == 53

提示:建议准备两台设备,一台制造故障现象,另一台专门抓包,避免本地流量干扰。

2. 第一公里问题:DHCP是否正常分配IP

当电脑连不上网络时,首先应该检查是否获得了合法IP地址。打开CMD执行ipconfig,如果看到169.254.x.x这类APIPA地址,说明DHCP环节已经出问题。

典型故障现象抓包分析:

阶段正常流程异常表现解决方案
Discover广播源IP 0.0.0.0无任何Discover包检查网卡驱动/物理连接
Offer服务器回复可用IP收到多个冲突Offer检查DHCP服务器配置
Request客户端确认IP持续循环Discover网络中存在DHCP干扰源
ACK最终确认分配未收到ACK防火墙拦截UDP 67/68

关键过滤技巧:

bootp.option.type == 53 # 专查DHCP消息类型

3. 域名解析环节:DNS问题深度定位

获得IP后仍无法访问网站,第二步要验证DNS解析。这里有个常见误区:能ping通域名不代表HTTP能访问,因为ping使用ICMP协议而非DNS。

DNS排障四步法:

  1. 检查本地hosts文件是否有强制绑定
  2. 观察DNS查询是否使用预期服务器
    dns && ip.dst == <你的DNS服务器IP>
  3. 分析响应时间:
    dns.time > 1 # 筛选响应慢的查询
  4. 验证结果正确性:
    dns.flags.response == 1 && dns.flags.rcode != 0 # 非零表示错误

高级技巧:当发现DNS响应慢时,可以添加时间列显示:

右键列标题 -> Column Preferences -> Add -> 类型选择"Delta time"

4. 传输层诊断:TCP连接建立过程

DNS解析正确但网页仍打不开,问题可能出在TCP层。通过三次握手分析可以定位约60%的传输层故障。

三次握手异常大全:

  • SYN无响应

    tcp.flags.syn == 1 && tcp.flags.ack == 0 && !tcp.analysis.retransmission

    可能原因:目标端口未开放、中间防火墙拦截

  • SYN+ACK后无ACK

    tcp.flags.syn == 1 && tcp.flags.ack == 1 && frame.time_delta > 3s

    可能原因:客户端防火墙阻止出站

  • 频繁重传

    tcp.analysis.retransmission || tcp.analysis.fast_retransmission

    可能原因:网络拥塞、MTU不匹配

连接跟踪技巧:右键任意握手包 -> Follow -> TCP Stream,可完整查看整个TCP会话。

5. 应用层透视:HTTP协议异常排查

前几步都正常但网页仍异常,就需要深入HTTP协议分析。现代网站普遍使用HTTPS,但通过以下方法仍可获取关键信息:

HTTP/1.1关键过滤:

http.request.method == "GET" || http.response.code > 400

常见问题定位表:

现象过滤条件典型原因
无限重定向http.location contains "https"HSTS策略强制跳转
403禁止访问http.response.code == 403权限/Referer校验失败
502网关错误http.response.code == 502后端服务崩溃
内容加载失败http.content_type != "text/html"CDN节点异常

对于HTTPS网站,可以启用Wireshark的SSL密钥日志功能:

  1. 设置环境变量SSLKEYLOGFILE
  2. Wireshark配置:Edit -> Preferences -> Protocols -> TLS

6. 实战案例:电商网站加载失败全分析

某日早晨市场部报告主站商品页无法打开,控制台显示"ERR_CONNECTION_TIMED_OUT"。以下是完整排查过程:

  1. 确认DHCP正常

    bootp.option.type == 53 && bootp.option.value == 5

    确认收到DHCP ACK,IP为10.2.33.105

  2. DNS解析检查

    dns.qry.name contains "examplemall"

    发现解析到错误的旧IP 203.0.113.45(应为198.51.100.67)

  3. TCP连接测试

    tcp.port == 80 && ip.addr == 203.0.113.45

    显示SYN包被目标主机拒绝

  4. 最终解决方案

    • 清除本地DNS缓存
    • 更换备用DNS服务器
    • 验证新IP可连通

整个排查过程耗时8分钟,其中3分钟浪费在旧DNS缓存上。这个案例告诉我们:网络问题往往不是发生在你认为的那个环节

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 15:05:26

机器学习模型性能评估:从理论到实践

1. 如何判断你的机器学习模型性能是否优秀当你完成一个机器学习模型的开发后&#xff0c;最迫切的问题往往是&#xff1a;这个模型的性能到底算不算好&#xff1f;作为从业十余年的数据科学家&#xff0c;我见过太多初学者纠结于"准确率xx%算高吗"、"误差值xx算…

作者头像 李华
网站建设 2026/4/24 15:04:19

ACE-Guard限制器终极指南:如何彻底解决腾讯游戏卡顿问题

ACE-Guard限制器终极指南&#xff1a;如何彻底解决腾讯游戏卡顿问题 【免费下载链接】sguard_limit 限制ACE-Guard Client EXE占用系统资源&#xff0c;支持各种腾讯游戏 项目地址: https://gitcode.com/gh_mirrors/sg/sguard_limit 你是否在玩《英雄联盟》、《穿越火线…

作者头像 李华
网站建设 2026/4/24 15:03:19

5个高效方案:解决抖音内容批量下载与管理的完整指南

5个高效方案&#xff1a;解决抖音内容批量下载与管理的完整指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…

作者头像 李华