抓包检测Openwr DHCP服务器是否开启

准备好 Wireshark,抓包能直接告诉到底是谁在撒谎(是 OpenWrt 没发包,还是发了包被电脑拒收了)。

准备

笔记本电脑----有线----PVE的LAN口;

笔记本电脑的以太网有线网卡设置为自动获取IP; 打开网络设置,把 IPv4 改回 “自动获得 IP 地址”“自动获得 DNS 服务器地址”

  • 静态 IP 模式下:电脑觉得自己已经有身份证(IP)了,所以它根本不会向 OpenWrt 发出“我要 IP”的请求(DHCP Discover)。这时候抓包只能抓个寂寞,什么都看不到。

  • 自动获取模式下:电脑发现自己没 IP,才会拼命向网络里喊:“谁是老大?给我发个 IP 吧!”(这时候 Wireshark 才能抓到包)。

启动Wireshark

第一步:设置过滤规则

在 Wireshark 顶部的过滤器输入框中,输入以下内容并回车(输入后背景变绿说明语法正确):

bootp # 或dhcp

(备注:DHCP 是 BOOTP 协议的扩展,所以在 Wireshark 里通常用 bootp 来过滤,或者直接输 dhcp 也可以)

第二步:开始“钓鱼”

  1. 点击左上角的“鲨鱼鳍”图标(或者蓝色开始按钮),开始抓包。

  2. 此时屏幕应该是空的,或者偶尔跳几行。

第三步:触发 DHCP 流程 (关键动作)

需要强制电脑去向路由器“喊话”要 IP。

  1. 打开 Windows 的 CMD (命令提示符)。

  2. 输入以下命令并回车(释放旧 IP):

    ipconfig /release
    
  3. 重点来了,输入以下命令并回车(请求新 IP),同时盯着 Wireshark 看:

    ipconfig /renew
    
  4. 等待几十秒,或者直到 CMD 提示无法连接。

  5. 停止 Wireshark 抓包(点击左上角的红色方块)。

第四步:分析

现在看 Wireshark 的列表,应该会看到几种颜色的包。DHCP 的标准握手流程是 4 步(DORA):

  1. Discover (电脑喊:谁是老大?)

  2. Offer (OpenWrt 说:我是,给这个 IP 要不要?)

  3. Request (电脑说:好的,我要了。)

  4. Ack (OpenWrt 说:批准了。)

image
因此可见, 电脑所在网络里根本没有dhcp服务器, 因此可以知道DHCP服务器未工作.

请根据看到的情况对号入座:

情况 A:只看到 Discover,没有 Offer

  • 现象:全是 DHCP Discover - Transaction ID ...,但是没有任何回复。

  • 结论

    1. 物理不通:链路中间断了。

    2. 被拦截:AP 或者 PVE 的网桥把广播包丢了(之前说的 STP 或 防火墙)。

    3. 服务端挂了:OpenWrt 的 DHCP 服务压根没运行。

情况 B:看到 Discover 和 Offer,但电脑依然没 IP (最可能的真相!)

  • 现象:看到了 OpenWrt 回复了 DHCP Offer,甚至电脑还回了 Request,OpenWrt 也回了 Ack。或者看到了 Offer,但电脑无动于衷,继续发 Discover。

  • 如何实锤校验和错误 (Checksum Error)

    1. 点击那个 Offer 包。

    2. 在下方的详情窗格中,展开 User Datagram Protocol (UDP)

    3. Checksum 这一行。

    4. 关键判断

      • 如果 Wireshark 显示 [Checksum Status: Bad] 或者 [Validation Disabled] 且后面显示 0x0000 或者错误的数值,并且背景是红色黑色高亮。

      • 这就证实了! 是 OpenWrt 发出来的包校验和是坏的,电脑网卡虽然收到了,但在驱动层面把它当垃圾扔了,所以上层系统认为“没收到”。


posted @ 2025-11-19 15:29  舟清颺  阅读(3)  评论(0)    收藏  举报