windows ipv6 被抨击该如何解决?

139 天前
 abcbuzhiming
家里的 pc ,过一段时间,就会出现一次 ipv6“丢失”现象,其表现是,本地查询 ipv6 地址是存在的,但是访问 ipv6 检测网站,提示你没有 ipv6 ,对外使用 ipv6 ping ,ping 不通,外部用 ipv6 ping 进来,也 ping 不通。但是此时 ipv4 的连接一切正常。

刚开始怀疑路由器或者猫的问题,但是后来把路由器改成了 AP 模式,还是存在。于是排除路由器查猫,未找到原因,后来注意到同样在网络中的手机,平板,没有这个现象。后来有一天,终于注意到,一旦在 ipconfig/all 命令下,出现某个临时 ipv6 地址后面有个括号:受到抨击。只要出现这个状态,ipv6 就失效了。

网上查了一下,发现这似乎是 windows 独有的问题,是 ipv6 临时地址租期快到但是验证还未完全失灵时出现的现象。但是似乎找不到解决办法,除了把网卡重启没有别的办法。这没办法解决吗?
3588 次点击
所在节点    宽带症候群
29 条回复
namaste
139 天前
感谢 op, 刚巧碰到相同的情况,原来是这个原因,蹲了解决办法
ahhui
139 天前
这个所谓“抨击”其实是微软的问题, “受到抨击”是“Deprecated” 的很蹩脚的中文翻译罢了。这个翻译真的很蹩脚,因为你完完全全无法从“受到抨击”联想到它的英文单词是“Deprecated”。 所以在计算机科学方面,英文的表达要比还是要比中文严谨一些。

按照 RFC 文档的规定 IPv6 地址有四种状态是分别是“Perferred”, "Valid","Deprecated", "Invalid". 当 IPv6 地址的在 Perferred Time 之内时 IPv6 地址状态是“Perferred”, 当 IPv6 地址的生命周期超过了 Preferred Time 但是没有超过 Valid Time 时 IPv6 地址的状态是“Deprecated”, 在 win7/win8 中这个英文单词被翻译成“受到抨击”。无论"Perferred"还是“Deprecated”, IPv6 地址都是“Valid”的, 当 IPv6 地址的生命周期超过 Valid Time 之后,IPv6 地址的状态是“Invalid”. 说以 Win7 出现某个 IPv6 地址显示“受到抨击”, 就是说这个 Ipv6 地址的 Lifetime 超过了 Preferred Time 却没有超过 Valid Lifetime 这种情形。

那么为什么会有 IPv6 临时地址呢?

临时地址的地址是随机生成的,主要作用是对外通讯使用,他最大的优点就是没有暴露本机 mac 地址。因为 linux 和 mac 系统在默认下是使用 EUI-64 来生成 IPv6 地址,而 windows 是默认随机生成(其实都可以改)

通俗易懂的说吧,临时地址是为了保证你安全而用到的,由于地址生成规则的统一性,也没有 NAT 规则来转换,本机 MAC 地址便赤裸裸的暴露在外面这样很不安全。

这里需要注意,如果两个 IPv6 地址(IPv6 和 IPv6 临时地址)都有时,对外通信时用的是临时的 IPv6 地址。

Windows XP 、Vista 、Windows 7 和 Windows 10 系统都会自动得到一个临时的 IPv6 地址。可通过以下命令禁止自动获取:netsh interface ipv6 setprivacy state=disable 重启网卡后再查看就没有那个临时的地址了,这时通信时用的是 IPv6 地址。

这个是 windows 由于 IPv6 地址不够匿名,而搞出来的地址随机化(后缀不同)……

windows 上两个临时 IPv6 地址会发生冲突,所以如上文所示,显示“受到抨击”,英文更准确是“ Deprecated ”,则会导致无法上网。

source: https://www.zhihu.com/question/316884179
ahhui
139 天前
补充一个,这里有个永久关闭这个临时地址的方法:
https://lonesysadmin.net/2018/01/23/disable-windows-ipv6-temporary-addresses/
billccn
139 天前
希望微软以后用 ChatGPT 搞本地化,之前 Windows XP 有直接机翻出来的中文(英文语法,把每个单词还原成英文才能理解),Vista 有个“体验索引”( Experience Index ),今天看到这个抨击真是笑掉大牙。下次和微软的朋友吃饭,问问他们多少代码收到抨击。
HomeZane
139 天前
家里的话,是不是可以在路由器把 ipv6 租期设置为永久呀
peasant
139 天前
因为要用台式机访问某个 IPv6 设备,需要添加白名单,用的固定后缀的匹配方式,就把 windows 的临时地址和随机地址给关了,用了很长时间了,一切都正常。

PowerShell

禁止临时地址
Set-NetIPv6Protocol -UseTemporaryAddresses Disabled
禁止随机地址
Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
fengyaochen
139 天前
只要路由器的 V6 稳定就行了,剩下就是用 socat 或者 lucky 进行 V6 转 V4 的端口转发,何必用 windows 的 IPV6 直连呢
abcbuzhiming
139 天前
@ahhui 不关闭临时地址的话,就没有办法了吗?这算不算 windows 的 bug ?
@fengyaochen 你说的应该是 openwrt 中的工具吧,很遗憾我的路由器没有刷 openwrt ,所以用不了这个
acbot
139 天前
根据我的观察,正常情况下系统在临时地址失效前就会新生成一个临时地址,所以你这个问题并不是临时地址机制造成的,而是应该检查路由器 DHCPv6 或 RA 通告,大概率是这里有问题! ICMPv6 对于 IPv6 地址生成和维护是非常重要的,没事别去动路由器和设备防火墙上相关设置。
beyondstars
139 天前
哈哈哈 「抨击」这个词确实有点好笑 我一看还以为数 windows 通过口诛笔伐的方式来表达对 ipv6 的抨击
jsq2627
139 天前
列两个可能原因:
1. 光猫或者路由器设置了定时重启。关闭定时重启即可。
2. 光猫或者路由器的 ICMPv6 RA 实现存在 bug 。可以尝试光猫桥接路由器拨号,或者反过来光猫拨号路由器桥接,看看哪种情况下会出问题。

不太像是临时地址造成的。
jsq2627
139 天前
@acbot 正解。路由器获取到新 ipv6 前缀后,未把旧前缀通告立即过期,就会在 Windows 出现这个问题。
为什么同局域网下其他系统、设备没问题,因为 macOS/iOS/linux 都能够在接收到新地址后,优先使用新地址,无论旧地址是否 deprecated 。而 Windows 则一直使用旧地址,直到地址过期。
pcslide
139 天前
路由或者猫的 ipv6 的 bug ,和 windows 没半毛线关系。一般原因都是猫或路由器在 pd 变动的时候没有自动添加或更新相对应的路由策略到路由表。至于为什么切换到 ap 模式能解决,因为 ap 模式相当于 ipv6 passthrough 。至于为什么大家都喜欢甩锅给 windows 的 ipv6 ,因为家用 ipv4 主要通过 NAT ,不需要额外路由策略,所以不会出现获得 ipv4 地址但连不通的。
raysonx
139 天前
2 楼的问答疑似复制 https://www.zhihu.com/question/316884179
aMR
139 天前
听起来像是路由的主动 RA 间隔太久了,最大间隔不要超过 Preferred ,可以抓个包看看 RA 包到底收到了没
nothingistrue
139 天前
@ahhui #2 查了谷歌翻译当中的词典,deprecate 的原义就是不赞成、藐视、抨击,并没有「已过期但还能用」的含义,这是计算机科学硬生生给 deprecated 加的含义。所以这不能怪翻译,英文原意就是错的。

不过另一方面,Java 的中文社区翻译,早几十年就把 deprecated 意译成已过时或者已弃用了,微软竟然不知道,也足以见以前的微软企业文化有多么自封。
ahhui
139 天前
@raysonx 不用疑似,最后一行引用了 source ,就是这个地址里的。
YaD2x
139 天前
这最多是翻译的问题 还扯到中文严谨性不如英文。。
abcbuzhiming
139 天前
@acbot 如何检查呢?我这边没有那么复杂的设备,就是路由和猫,路由已经改成 AP 了,问题仍然存在,猫的话我就是电信的家用光猫,我有不同地方的三个设备,都有类似现象,该如何排查?


@jsq2627 目前判定是猫有问题,因为我把路由器给桥接成 AP 了,还是出现。

我目前猫和路由器都没有设置过定时重启。

但是我疑惑的是,不是一台猫,因为我有不同位置的 3 个电信宽带,用的猫型号不同,但是都出现了类似问题,总不能说这些猫都 ICMPv6 RA 实现存在 bug 吧?是否可能是猫的设置有问题呢?

“Windows 则一直使用旧地址,直到地址过期”
Windows 的这个特性看来是没法改的,然后公告过期就是来自路由设置的 ICMPv6 RA 通告吗?
acbot
139 天前
@abcbuzhiming

1. 检查系统防火墙 icmpv6 是否 允许 (根据你的描述大概率这里没问题,不过也得查一下)
2. 检查光猫 IPv6 中 两个标志位 M ( Managed )和 O ( Other )是如何设置的,是否可以修改,最好都设置为零 既 slaac 模式
3. 抓 icmpv6 协议包,正常情况 可以看到不断循环 134 (RA) 135 (NS) 136 (NA) 三种类型消息,其中 RA 消息非常重要一般来说网关设备 10 分钟左右必定回有。RA 消息 中 router lifetime 与 valid lifetime 值是什么,否正常,然后用 netsh interface ipv6 show addresses 查看是否能对应

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

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

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

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

© 2021 V2EX