我一直在使用启用了默认 Teredo IPv6 隧道的 Windows7 客户端试验 IPv6。
我可以使用 PING -6 成功访问 IPv6 主机 (ipv6.google.com 和 www.v6.facebook.com)。我还可以使用 Python 脚本 (使用基于 IPv6 的套接字) 成功向这些主机发出 HTTP 请求。
使用 Firefox/Chrome/IE 不起作用。数据包捕获显示这些浏览器正在进行 DNS A 查询,而我的 Python 脚本导致 AAAA 查询成功解析 Ipv6 查询。
更新 1: 我测试过(非常有用)Matt 建议的链接并得到以下信息:
您似乎还启用了 Teredo。您在此测试中成功连接到 IPv6 站点 - 但只有在通过连接到 IPv6 数字地址而不是网站名称来强制连接时才有效。此设置不会帮助您或阻碍您继续访问 IPv6 网站。希望很快发布 Teredo(Windows 计算机的隧道协议)建议
更新 2 我得出的结论是,我的问题的答案是“不使用 teredo 来实现 IPv6”。这一页底部包含以下声明:
由于目前 Internet 上没有 Teredo 中继,通过 Teredo 接口连接到本地 IPv6 地址不太可能成功。如果调用 WSAConnectByName,当 Teredo 是唯一可用的支持 IPv6 的接口时,Windows Vista 将不会发出 AAAA 查询。这确保不会将本地 IPv6 地址作为目标,而是尝试通过 IPv4 进行连接,这最有可能成功。为了在 Teredo 是唯一支持 IPv6 的接口时获取 IPv6 地址,应用程序必须明确使用 DnsQuery API 获取 AAAA 记录。
这意味着当应用程序将主机名解析为 IP 地址时,如果 teredo 是唯一可用的 IPv6 访问,Windows 将不会发出 IPv6 记录 (AAAA) 请求除非应用程序特别请求 IPv6 地址。大多数应用程序不会这样做,因为最佳做法是查询所有类型的地址(例如通过将 AF_UNSPEC 传递给 getaddrinfo)
我已使用以下免费服务设置了备用 IPv6 隧道访问:飓风电气现在可以通过 IPv6 随心所欲地浏览 :-)
答案1
转到以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dnscache\Parameters
添加 DWORD 值:
AddrConfigControl = 0
您将通过 Teredo 隧道进行 DNS 解析。
答案2
在 Firefox 中,转到about:config
并查找
network.dns.disableIPv6
确保将其设置为false
默认设置。
然后通过以下方式进行测试http://test-ipv6.com/
答案3
如果 test-ipv6.com 上的测试通过,但你仍然没有看到跳舞的龟龟,也可以禁用network.http.fast-fallback-to-IPv4
。我这样做之后,龟龟出现了龟山网