应精准放行ICMPv6 Type 133–137报文(RS、RA、NS、NA、Redirect),可通过启用系统预置“核心网络诊断”相关ICMPv6-In规则,或使用netsh命令添加五条专用入站规则实现,确保NDP地址解析、路由器发现与自动配置等功能正常运行。
要让 windows 防火墙允许 icmpv6 报文通过,从而保障邻居发现协议(ndp)正常工作,关键不是开放全部 icmpv6 类型,而是精准放行 ndp 所依赖的几类核心报文:路由器请求(rs)、路由器通告(ra)、邻居请求(ns)、邻居通告(na)和重定向(redirect)。这些报文对应特定的 icmpv6 type/code,windows 防火墙支持按类型精细控制。
以下方法均需以管理员身份执行:
启用系统预置的 ICMPv6 入站规则
Windows 自带的“核心网络诊断”和“虚拟机监控”规则已涵盖 NDP 常用类型:
- 打开“高级安全 Windows Defender 防火墙”(快捷方式:
wf.msc) - 左侧点击“入站规则”
- 在右侧列表中查找并启用以下规则(右键 → 启用规则):
-
核心网络诊断 (路由器请求 - ICMPv6-In) -
核心网络诊断 (路由器通告 - ICMPv6-In) -
核心网络诊断 (邻居请求 - ICMPv6-In) -
核心网络诊断 (邻居通告 - ICMPv6-In) -
虚拟机监控 (回显请求 - ICMPv6-In)(虽非 NDP 必需,但常用于连通性验证)
-
⚠️ 注意:不同 Windows 版本中规则名称略有差异,如含“ICMPv6-In”且描述含“路由器”或“邻居”字样的,基本就是目标规则。
windows-shell-syntax下载在 Windows 上执行终端命令,或对比 Windows 与 Linux 的 Shell 语法时使用。建议先检测当前 Shell 是 PowerShell 还是 cmd.exe,再给出相应命令……
使用命令行添加专用 NDP 规则(推荐用于脚本或定制环境)
若预置规则不可用或需更明确控制,可用 netsh 添加精确规则:
netsh advfirewall firewall add rule name="Allow NDP Router Solicitation" protocol=icmpv6:133,any dir=in action=allow netsh advfirewall firewall add rule name="Allow NDP Router Advertisement" protocol=icmpv6:134,any dir=in action=allow netsh advfirewall firewall add rule name="Allow NDP Neighbor Solicitation" protocol=icmpv6:135,any dir=in action=allow netsh advfirewall firewall add rule name="Allow NDP Neighbor Advertisement" protocol=icmpv6:136,any dir=in action=allow netsh advfirewall firewall add rule name="Allow NDP Redirect" protocol=icmpv6:137,any dir=in action=allow
验证与补充说明
- 执行后无需重启,规则立即生效
- 可用
ping -6 fe80::1%接口索引或ipconfig /all查看是否收到 RA 报文(确认 IPv6 地址自动配置是否触发) - 若使用域环境或组策略管理,需确保本地防火墙策略未被域策略覆盖(检查
gpresult /h report.html) - 不建议关闭整个防火墙或启用“允许所有 ICMPv6”,这会削弱安全性且违反最小权限原则
邻居发现协议高度依赖这些底层 ICMPv6 报文。只要上述关键 Type(133–137)入站被允许,IPv6 地址自动配置、默认网关学习、地址重复检测(DAD)等功能就能稳定运行。


















