ipv6.baidu.com 的检测机制不完善

2020-01-25 18:46:26 +08:00
 hzqim
不喜欢 Windows 10 默认优先使用 IPv6 的回落机制,遂按照微软的方法安装 “优先使用 IPv4 over IPv6” 补丁(其实就是修改注册表)(链接: https://support.microsoft.com/zh-cn/help/929852/guidance-for-configuring-ipv6-in-windows-for-advanced-users
重启系统后,打开 ipv6.baidu.com ,提示:无法访问 IPv6 域名,请直接访问 www.baidu.com /百度检测到您正在使用 IPv4 地址,无法直接使用 IPv6 域名。
但通过 https://test-ipv6.com/测试成绩为 10/10,也能访问 https://mirrors6.tuna.tsinghua.edu.cn
故得出标题中的结论。

不优先使用 IPv6,一来速度不如 IPv4 理想,二来某些站在 fallback 的过程中会不定时被 reset。
不禁止 IPv6,一来因为 PT 需要公网 IP,二来可以用 Potplayer 看 IPv6 的视频源。
5491 次点击
所在节点    分享发现
5 条回复
shansing
2020-01-25 19:18:12 +08:00
不是不完善,而是逻辑不一样。个人认为 ipv6.baidu.com 本来就不是一个专业检测工具,它的逻辑是如果检测不到 IPv6 就返回提示给用户,而不是像 ipv6.google.com 那样干脆无法访问。考虑到网民的素养,这可以理解。于是 ipv6.baidu.com 在 AAAA 记录之外也同时设置了 A 记录,然后就会造成你说的情况。但这没办法调和,去掉 A 记录就没办法在 IPv4 环境下给用户有效提示。只能认为你的专业度已经超过一般网民。
shansing
2020-01-25 19:21:50 +08:00
@shansing PS:当然也可以干脆只给 A 记录。然后在上面用脚本检测 IPv6 连通情况。但这偏离了 ipv6. 作为一个完整业务域名的初衷。它就不是一个专门检测工具——假设用户环境支持 IPv6,那么应该出现正常的百度搜索界面。
hzqim
2020-01-25 19:21:52 +08:00
@shansing #1 谢谢指教!
flyfishcn
2020-01-25 21:40:56 +08:00
其实只是百度用了一个非常投机取巧的方法部署这个 ipv6.baidu.com 而已。这其实并不是一个正确的双栈站点部署方法。
百度的这个 ipv6.baidu.com 的 v4 和 v6 其实是两组独立的站点,即 A 记录对应的服务器和 AAAA 记录对应的是两组独立的服务器,A 记录的服务器不管你有没有 v6 地址,永远会显示在那个你没有 v6 地址无法访问的页面。而 AAAA 记录对应的服务器,也不是真正采用原生 ipv6 方式部署的,而且通过反向代理,在反向代理服务器上增加 v6 地址,达到可以在 v6 环境下被访问的。
最简单的测试方法就是你禁用 ipv4 之后,以 ipv6-only 的方式访问,然后在搜索框输入“ip”,你会发现出来的是一个北京海淀区的百度 ip,就是那个反向代理的地址。
可见百度不是从程序角度上去实现检测访客是不是有 ipv6 地址的。所以如果你是双栈用户,即使你真的有一个路由可达的 ipv6 地址,但由于你的系统优先了 A 记录的解析,也会显示那个没有 v6 地址无法访问的页面。
meeken
2020-01-26 05:13:47 +08:00
@shansing 22dm 老友啊

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

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

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

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

© 2021 V2EX