发现大部分人都误解了, Windows 上的 ipv6 受到抨击的问题,还是把临时的 ipv6 地址关掉吧。

336 天前
 yyysuo
关闭命令:
netsh interface ipv6 set privacy state=disable

其实关于 Windows 上 ipv6 失效,有 2 种情况
1:主路由重启或者重拨号,会导致 Windows 获取到多个 ipv6 地址,都是首选,其中包括失效的 ipv6 地址,导致 ipv6 不可用,这种在 v2 上搜索受到抨击,不同的路由系统有不同的修改方式,是需要修改路由器上的设置来解决。
2:Windows 本来 ipv6 好好的,开机 1 天以上出现 ipv6 不可用的情况,这时候用 ipconfig /all 去看,会发现有 2 个临时 ipv6 地址,其中一个受到抨击,这纯粹是 Windows 的问题,跟路由上的设置没什么关系。

我用 openwrt 系统,网络设置如下:
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option force '1'
option ra 'server'
option ra_dns '0'
option ra_lifetime '1200'
list dhcp_option '6,10.10.10.1'
option ra_default '1'
option ra_useleasetime '1'
option leasetime '20m'
option ra_flags 'other-config'
option dhcpv6_na '0'
option preferred_lifetime '20m'

经过观察发现如下情况
使用 netsh interface ipv6 show addresses 命令查看所有 ipv6 地址的 Preferred Lifetime 和 Valid Lifetime ,这 2 个时间跟 ra 广播的时间一致,都是 20 分钟,其中 Preferred Lifetime 时间耗尽后,不会再被更新,只有 Valid Lifetime 每 6 分钟被刷新一次,也就是说,所有 ipv6 地址的 Valid Lifetime 在消耗到剩余 14 分钟时,就会再次被更新为 20 分钟,包括受到抨击的临时 ipv6 地址,因为这时候不管是公用的 ipv6 地址和临时的 ipv6 地址,前缀并没有变化,还是有效的,所以都会被更新。

但是 Windows 默认不会更换临时 ipv6 地址,因为前缀没变,即使这个临时的 ipv6 地址的 Preferred Lifetime 已经是 0 ,但是它还是有效的,并且有效的时间会一直被刷新。

这时候有 2 个办法可以切换临时 ipv6 地址,第 1 个是 ping 一下主路由 lan 口的公网 ipv6 地址,另外一个是断开 wifi 重连,Windows 就会释放 Preferred Lifetime 为 0 的受到抨击的临时 ipv6 地址。

目前找不到解决问题的办法,干脆关闭临时 ipv6 地址了事,命令在最开始。
3083 次点击
所在节点    宽带症候群
22 条回复
lslqtz
269 天前
这个相比 /renew6 可能有副作用: 也许网卡会瞬间断网.
Material3600
269 天前
@lslqtz

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1014173

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX