Windows防火墙规则无法拦截非法DHCP服务器的OFFER报文,如何配置才能仅允许指定DHCP服务器提供服务?
Windows防火墙规则无法拦截非法DHCP服务器的OFFER报文,如何配置才能仅允许指定DHCP服务器提供服务?
我来帮你排查这个问题,你遇到的核心问题其实和DHCP报文的特性以及Windows防火墙规则的细节配置有关,咱们一步步拆解:
先说说你之前配置的问题
你之前的规则犯了一个关键的端口方向错误:DHCP客户端是通过UDP 68端口接收服务器的OFFER报文的,而非法服务器发送OFFER时的源端口是UDP 67。你之前设置拦截入站的UDP 67端口,相当于拦截的是别人试图连接你的67端口(也就是把你的机器当DHCP服务器),但完全没命中非法服务器发往你68端口的OFFER报文,这就是为什么规则不起作用。
另外,用IP范围排除的方式容易出现配置疏漏,不如用"允许合法IP + 阻止所有"的组合规则,逻辑更清晰,也更容易排查问题。
正确的配置步骤
我给你整理了一套可落地的配置流程,亲测有效:
删除旧规则:先把你之前创建的范围阻止规则删掉,避免干扰新规则的生效。
创建「允许合法DHCP服务器」入站规则:
- 打开Windows Defender防火墙 → 高级设置 → 入站规则 → 新建规则
- 规则类型选「端口」,点击下一步
- 协议选「UDP」,目标端口填
68,勾选「特定本地端口」,点击下一步 - 动作选「允许连接」,点击下一步
- 配置文件根据你的网络环境勾选(宿舍一般选「专用」即可),点击下一步
- 远程IP地址选「下列IP地址」,点击「添加」,输入合法DHCP服务器的IP
1.1.1.1,点击确定 - 给规则起个好记的名字,比如「允许合法DHCP服务器发送OFFER」,完成创建
创建「阻止非法DHCP服务器」入站规则:
- 同样在入站规则里新建规则,步骤和上面类似
- 规则类型选「端口」,UDP协议,目标端口填
68 - 动作选「阻止连接」,配置文件和上一条保持一致
- 远程IP地址选「任何IP地址」
- 命名为「阻止非法DHCP服务器发送OFFER」,完成创建
调整规则顺序:
- 在入站规则列表里,找到刚才创建的两条规则,把「允许合法DHCP服务器发送OFFER」拖到「阻止非法DHCP服务器发送OFFER」的上方。因为Windows防火墙是按规则顺序匹配的,先匹配到允许规则就会放行,后面的阻止规则就不会生效了。
额外验证小技巧
配置完成后,你可以用命令行验证规则是否正确:
netsh advfirewall firewall show rule name="允许合法DHCP服务器发送OFFER"
这条命令会输出规则的详细配置,确认远程IP、端口、动作都和你设置的一致。
另外,记得确保Windows防火墙处于开启状态,并且规则应用到了你当前使用的宿舍网络适配器上(可以在高级设置的「接口」选项里检查)。
备注:内容来源于stack exchange,提问作者OffByOne




