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

95 天前
 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 地址了事,命令在最开始。
2177 次点击
所在节点    宽带症候群
22 条回复
morytyann
95 天前
受到抨击这个翻译真抽象啊……
littlewing
95 天前
谁要 抨击 windows 上的 ipv6 ?
lslqtz
95 天前
我用 DHCPv6, Windows Server 2022 下 IPv6 不会自动续期, 手动 /renew6 有效. 网内的 Apple Device 均正常.
是需要抨击一下.
lslqtz
95 天前
附 DHCPv6 问题解决方式, 任务间隔比内网生命周期稍低一些即可.
https://imgur.com/OzasIrM
lslqtz
95 天前
yyysuo
95 天前
@morytyann 用 netsh interface ipv6 show addresses 命令查出来的状态,就变成了反对
morytyann
94 天前
@yyysuo 嗯嗯,总比受到抨击好,我的建议是不翻译 /狗头
yyysuo
94 天前
@lslqtz #3 为什么要用 DHCPv6 ?安卓不支持呀。
likeflower
94 天前
windows server 默认就是 state=disable
yyysuo
94 天前
@likeflower 微软也知道自己搞的这玩意不稳定么。
LisaSue
94 天前
为了伺候家里的 windows 设备 dhcpv6 的有效期已经被我设置成 3 分钟了
yyysuo
94 天前
@LisaSue dhcpv6 一般在 Windows 上没啥问题吧。
lslqtz
94 天前
@yyysuo
1. DHCPv6 可以与 SLAAC 共存;
2. DHCPv6 可以在服务器上固定后缀;
3. 我没有 Android 设备, 若有少部分设备我愿意放弃支持;
username1919810
94 天前
我这里运营商的 DHCPv6 在 OpenWrt 上也有问题,隔一段时间就掉线 只能手动 renew
https://github.com/openwrt/openwrt/issues/13454
aMR
94 天前
Preferred 要设成小于 Valid
yyysuo
93 天前
@aMR 原来是小于的,也是有同样的问题,应该就是 Windows 自身的问题。
L0lita
90 天前
苹果的 wifi 里也有好几个 ipv6 地址 是不是也有这个问题 在重连 pppoe 不重连 wifi 的情况下 ipv6 会不通
aMR
89 天前
@yyysuo 我以前研究过类似的问题,抓包分析后猜测 windows 是按照路由的 ra 广播被动去刷新 preferred 的,最后用了这么一组参数,单位都是秒,max-interval<=preferred-lifetime<valid-lifetime ,保证 ra 广播在 preferred 归 0 之前到达
preferred-lifetime 600
valid-lifetime 1800
max-interval 600
Material3600
28 天前
@lslqtz bat 文件计划任务也太粗暴了(
话说 ipconfig 命令无效该怎么办?我这边只能在网络-属性-取消勾选 IPV6 后点击确定,再次勾选 IPV6 后点击确定,才能重新获得 IPV6 地址
lslqtz
28 天前
@Material3600 可以试试 netsh int ipv6 set disabled 或 Powershell Get-NetAdapterBinding -ComponentID ms_tcpip6 等等.

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

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

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

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

© 2021 V2EX