最近在一次 Windows 11 更新后,我的 IPv6 网络莫名其妙地失效。开机一段时间后,IPv6 连接就会断开。ipconfig 显示地址正常、路由也在,但外部 IPv6 无法访问。抓包后发现——问题出在 系统不再回应 Neighbor Solicitation (NS)


一、问题现象

开机后直接打开 Wireshark,不做任何操作。大约 15 分钟后,使用

ping -6 taobao.com

检查 IPv6 连接,发现无法 Ping 通。但使用 ipconfig, route 等命令查看地址和路由状态完全正常。

此时停止抓包,在 Wireshark 中过滤 icmpv6.type == 135 or icmpv6.type == 136,可以看到主机收到来自网关的 NS 请求,但没有回应 NA:

36347 803.911077 fe80::2e33:11ff:fe97:ff40 → 2001:da8:201:2561:3023:948a:5462:a47e ICMPv6 Neighbor Solicitation
36349 804.394370 2001:da8:201:2561:3023:948a:5462:a47e → 2606:4700:4700::1111 ICMPv6 Echo Request
36350 804.429834 2606:4700:4700::1111 → 2001:da8:201:2561:3023:948a:5462:a47e ICMPv6 Echo Reply
...
36445 813.995187 fe80::2e33:11ff:fe97:ff40 → 2001:da8:201:2561:3023:948a:5462:a47e ICMPv6 Neighbor Solicitation

二、排查过程

  1. IPv6 地址与路由检查
    所有前缀、默认路由均存在。

    Get-NetIPConfiguration -Detailed
    route print -6

    没发现异常。

  2. 关闭 Offload / 重装驱动
    检查并禁用所有 IPv6 Offload 功能,无效。
  3. 检查防火墙状态

    netsh advfirewall show privateprofile

    显示:

    LocalFirewallRules N/A (仅 GPO 存储)

    以为是 GPO 问题,但另一台正常的 PC 也是如此,因此排除。

  4. 怀疑 Core Networking 规则缺失
    使用:

    netsh advfirewall firewall show rule name=all | findstr /i icmpv6

    结果几乎为空。

    这说明系统内置的 Core Networking(核心网络)规则 被删或损坏了,其中就包括处理 ICMPv6 邻居发现 (NS/NA) 的那几条规则。


三、解决办法

最终的修复步骤如下:

# 1. 重置防火墙
netsh advfirewall reset

# 2. 修复系统镜像
DISM /Online /Cleanup-Image /RestoreHealth

然后重启系统。IPv6 网络立即恢复正常。


四、结论

  • IPv6 栈、驱动、防火墙策略都不是根因。
  • 核心网络 (Core Networking) 防火墙规则丢失才是关键问题。
  • 原因不明,推测与 Windows Update 的策略或防火墙配置更新有关。

如果你遇到 IPv6 在 Windows 11 更新后“过一段时间就失效”,且抓包看到系统收 NS 不回 NA,那么大概率就是这个问题:

重置防火墙 + DISM 修复 + 重启。

附注
可以先导出并比对两台电脑的防火墙规则:

netsh advfirewall export C:\fw.rules.wfw

若 Core Networking 组缺失,重置是最简单直接的修复办法。