如何处理故障
测试结果如果指向此页面,说明我们认定你的设备在世界 IPv6 日会出现问题。你将无法打开所有双栈(即 IPv4 和 IPv6 兼备)的网站。
为了解决问题,你需要知道你的 IPv6 地址和 IPv6 默认路由器(如果有这些的话),然后查看对应的章节。
如果本页没有涵盖你的具体问题,或者你有其他建议,请通过此表单反馈(或联系 jfesler@test-ipv6.com)。
-
务必与时俱进
查看你的 IP 地址
如果你使用了隧道代理
如果你使用了 6to4(IPv6 地址以 2002 开头)
如果你使用了 ULA(IPv6 地址以 FC 或 FD 开头)
如果你的 IPv6 地址不恰当(见表格)
如果你的 IPv6 地址很奇怪
如果实在无计可施了,禁用 IPv6 或降低其优先级
务必与时俱进
操作系统和硬件制造商通常都会发布更新来优化对 IPv6 的兼容性,一些常见问题已经解决了。
而你能做的就是确保你使用的是最新的:
- 操作系统。确保是最新版本。
- Mac 用户:推荐使用 Apple OS X 10.6.7,它对 IPv6 的支持较好。
- 如果其他排除故障的措施无效,Mac 10.4 和 10.5 的用户可能需要关闭 IPv6。
- Windows 用户:查看 http://update.microsoft.com.
- iPhone/iPad 用户:目前没有特定的版本可以推荐。
- 路由器。确保安装了最新版本的固件。一些厂商已经更新了默认配置,或者增添了启用 IPv6 前检查网络状况的功能。
- 如果你使用的是 Apple 路由器或 Time Capsule,打开 Airport 实用工具检查固件是否是最新版本。
- 浏览器。一些浏览器更新后可以检测出网络存在“故障”,并暂时停用 IPv6。
- Firefox 4.x 仅当有 IPv6 地址时才会尝试使用 IPv6。我们建议 Firefox 3 用户升级。
- Chrome:如果工具栏出现一个扳手图标,点击它,选择“更新 Google Chrome”,然后重新启动。
- Opera:确保使用 11.10 以上版本。
查看你的 IP 地址
找到你的 IPv6 地址和默认路由器(如果有)。
如果不熟悉操作系统的网络配置,寻找 IPv6 地址和默认路由器可能比较困难。以下是各类系统的操作步骤。
寻找 IPv6 地址时不用管任何以 fe80:
开头的地址,只要操作系统支持 IPv6 它们就会存在,无论运营商是否支持。它们是子网内部地址,只用于与同一个物理网络中的其他主机通信。
OS X 用户:通过图形界面查看 IP 地址:
- 点按左上角的苹果菜单
- 点按“系统偏好设置”
- 点按“网络”
- 如果有多个网络,选择你的主要网络(绿色图标)。
- 点按“高级”
- 在“TCP/IP”标签页中,查看“配置 IPv6”下方。
- 记下有没有路由器。
- 记下 IPv6 地址(如果有)。
OS X 用户:通过命令行查看 IP 地址:
- 打开终端:打开“应用程序”文件夹,在“实用工具”中打开“终端”。
- 查看你的 IP 地址:
ifconfig -a inet6
或ifconfig -f inet6
- 忽略以
fe80:
开头的地址,寻找en0
或en1
中的任何其他地址。 - 查看是否有默认路由器:
netstat -nr -f inet6
- 找到标有“默认”的那一行,其中可能有一个以
fe80:
开头的网关。
iPhone 和 iPad 用户:设置中没有显示相关信息。“IT Tools”和“ip6config”App 可以显示 IPv6 地址,但都是收费的。
Linux 用户:要查看 IPv6 地址,只需打开一个终端,然后执行
ip -6 address show
Linux 用户:要查看 IPv6 默认路由,执行
ip -6 route show default
Unix 中确定 IPv6 地址和默认路由的一般方法:
- 运行
ifconfig -a
并查找inet6
来查看你可能的 IPv6 地址。 - 运行
netstat -nr
并查找inet6
、Internet6
或者类似的名称以定位到 IPv6 部分,然后找到default
、::
或者::/0
。
Windows 用户:通过命令提示符查看 IP 地址:
- 打开“开始”菜单
- 如果有“运行”选项,点击它,否则点击“搜索程序和文件”文本框。
- 输入
cmd.exe
- 在打开的命令提示符窗口中,执行
ipconfig
。
Windows 7 用户:通过图形界面查看 IP 地址:
- 打开“开始”菜单
- 转至控制面板
- 转至“网络和 Internet”
- 转至“查看网络状态和任务”
- 转至“更改适配器设置”。
- 双击你主要的互联网连接
- 转至“详细信息”
- 找到“IPv6 地址”和“IPv6 默认网关”
其他 Windows 操作系统:将详细的操作步骤发送到 jfesler@test-ipv6.com,我会将其添加进来。
如果你使用了隧道代理
如果你使用了隧道代理,最常见的故障原因是:
- 你的 IPv4 地址可能已经发生变化,你需要告知隧道代理服务器。
- 如果你通过路由器来使用 6in4(有时也称作具有特定供应商的 6to4):
- 确保隧道代理服务器知道你当前的 IPv4 地址。本站能显示你的公网 IPv4 地址。
- 确保你的路由器能 ping 通隧道的另一端。在调试好路由器之前可别浪费时间折腾你的电脑。
- 如果你是在 Linux、BSD、Mac 或 Windows 设备上架设 6to4:
- 确保你的路由器允许转发“41 协议”数据。
- 确保所有正在运行的软件防火墙允许转发“41 协议”数据。
- 如果重启后故障才发生,检查你的防火墙设置。
- 在调试其他主机前,确保架设 6to4 的机器能 ping 通另一边的隧道代理网关。
如果你使用了 6to4
(IPv6 地址以 2002 开头)
如果你使用了 6to4(匿名的 6to4,而不是隧道代理):
不推荐使用“自动的”或没有配置特定网关的 6to4。详见 6to4 页面。
如果你还是想调试匿名的 6to4:
- 如果你是在路由器上架设 6to4:
- 确保你的路由器有公网 IPv4 地址,否则无法使用 6to4。
- 如果你能够登入路由器,执行“ping”或“ping6”看看能否 ping 通 ipv6.test-ipv6.com。在调试好路由器之前可别浪费时间折腾你的电脑。
- 如果你是在 Linux、BSD、Mac 或 Windows 设备上架设 6to4:
- 确保你的路由器允许转发“41 协议”数据。
- 大多数家用电脑用的是内网 IPv4 地址,所以不能使用 6to4(除非满足下面两条)。
- 确保你的 6to4 接口知道你的公网 IPv4 地址。
- 确保你的路由器接受来自任何 IP 地址的 41 协议数据,而不只是 192.88.99.1。这样网站即使没法伪装成 192.88.99.1 任播地址,也能顺利提供 6to4。
- 使用 iptables 跟踪网络连接的 Linux 用户也要注意上一条。
- 考虑换一种连接方式。
-
- 询问运营商能否提供任何形式的 IPv6 连接(包括 6in4 或者某种隧道代理)。
- 前往 6to4 页面进一步了解为何应当选择其他连接方式,以及一些可行的方案。
如果你使用了 ULA
(IPv6 地址以 FC 或 FD 开头)
ULA or Unique-Local-Unicast:
如果你的 IP 地址以 FC
或 FD
开头,那其实只是一个内网 IPv6 地址,可以连接你家里或单位的其他设备,并且即使你的公网 IPv6 地址经常变动,这个内部 IPv6 地址也可能保持不变。
ULA 的主要问题是,某些家用路由器在提供 ULA 的同时,还会盲目地提供一个默认路由,完全不管 IPv6 有没有连上。而你的浏览器也不知道这默认路由是条死胡同,因为没有什么反馈机制。由于 IPv6 比 IPv4(通俗地说)更受青睐,你的浏览器就会先试着走这条死胡同,可能过几分钟才会放弃。
我们的建议是,除非你的路由器拥有全天候的 IPv6 连接,不要开启 ULA。关闭该功能后,可能需要先重启路由器,再重启你的电脑,故障才会消失。
IPv6 地址不恰当
(IPv6 地址:见下表)
不恰当的 IPv6 地址(Bogon): 如果你的 IPv6 地址开头是这样的,那你需要升级路由器了。
fcxx: or fdxx: |
AVM FritzBox - 禁用 ULA。 其他路由器:尝试更新固件。如果无效,找到并禁用“ULA”或“Unique Local Addressing”。 如果还是不行,就在路由器上彻底禁用 IPv6。 |
2002:0Axx: 或 2002:Axx: |
这个路由器使用了 6to4,但它用的是私有 IPv4 地址,所以永远没戏。 Apple 路由器:更新到最新固件,该问题已被修复。 其他路由器:尝试更新固件。如果无效,找到并禁用“6to4”或任何形式的自动 IPv6 隧道。 如果还是不行,就在路由器上彻底禁用 IPv6。 |
2001:db8: |
这些地址是规定在文档中作示范用的,在实际的 IPv6 互联网上没法用。 Cisco E2000, E3000, E4200: 更新到最新固件。 其他路由器:尝试更新固件。 如果还是不行,就在路由器上彻底禁用 IPv6。 |
2005:123:456:789: |
WRVS4400N routers: 禁用 IPv6。 其他路由器:尝试更新固件。 如果还是不行,就在路由器上彻底禁用 IPv6。 |
如果你的 IPv6 地址很奇怪
(IPv6 地址没有以 FE80 开头)
IPv6 地址很奇怪?
现代操作系统都支持 IPv6,但一开始处于休眠状态,需要用户自行配置或者局域网内的某个设备先提供 IPv6。如果你的网络主动提供了 IPv6,你的电脑就可以从路由器通告(router announcement)中获得 IPv6 地址和网关,然后自动启用 IPv6。
哪里出了问题:有些人将他们的路由器插入(有线或无线)网络后,无意中就向所有人提供了 IPv6,早期的 Apple 路由器(自动启用 6to4)和 Windows 的网络连接共享就是典型的例子。它们可能会自动成为你的 IPv6 路由器,而你不会收到任何通知。
要是这些路由器并没有真正接入 IPv6,你就连兼备 IPv4 和 IPv6 的网站都连不上。就算它们确实接入了 IPv6,等它们被拔掉以后(比如被主人带离了酒店或会场),你的系统也浑然不知,可能再过上几个小时才舍得放弃 IPv6。
如果有人偶然(或故意)架设了一个有问题的 DHCP 服务器,情况也类似。
如果你不是该网络的管理员,也没有权限解决此问题,可以考虑禁用 IPv6,至少在当前网络内禁用。也可以尝试先关闭再开启你的网络接口(清除 IP 地址),说不定制造麻烦的设备已经离开网络了。
如果你是该网络的管理员:你可以使用默认路由信息来确定其以太网地址,然后搜索该地址的所有者。一些网络厂商提供了封锁未经许可的路由器通告(router announcement)的功能,可以考虑使用。除此以外还可以(通过以太网地址)找出该设备的所有者,乃至伪造其路由器通告称该设备即将下线。
如果实在无计可施了
(如何禁用 IPv6 或降低其优先级)
禁用 IPv6 地址或降低其优先级
在运营商提供 IPv6 前,要彻底禁用 IPv6:查看 Microsoft 的“Fixit”网站,那里提供了明确的步骤。我们推荐“在前缀策略中优先使用 IPv4 而非 IPv6”,而不是完全禁用 IPv6。某些 Windows 功能还是得依赖 IPv6。
完全禁用 IPv6(Windows 7、Vista,而 XP 应该是类似的):
- 打开“开始”菜单
- 转至控制面板
- 转至“网络和 Internet”
- 转至“查看网络状态和任务”
- 转至“更改适配器设置”。
- 双击你主要的互联网连接
- 转至“属性”
- 取消勾选“Internet 协议版本 6”
- 点击“确定”
- 关机或重新启动计算机。
在 Windows XP 中禁用 IPv6:
- 摘自: http://support.microsoft.com/kb/2478747
- 确认你已作为管理员登录。
- 依次单击“开始”按钮、“所有程序”、“附件”、“命令提示符”。
- 在命令提示符中,输入 netsh int ipv6 uninstall,然后按回车键。
- 关闭命令提示符窗口,然后重新启动计算机。
其他 Windows 操作系统:将详细的操作步骤发送到 jfesler@test-ipv6.com,我会将其添加进来。
OS X 用户
在禁用 IPv6 前,请确保你用的是最新版的操作系统。尤其是 OS X 10.6.7,它有一些特别的解决方案,也许无需完全禁用 IPv6 就能解决你的问题。
- 如何禁用 IPv6
-
- 点按左上角的苹果菜单
- 点按“系统偏好设置”
- 点按“网络”
- 如果有多个网络,选择你的主要网络(绿色图标)。
- 点按“高级”
- 禁用 IPv6
- 应用更改
iPhone 和 iPad 用户
iPhone 和 iPad 无法调整 IPv6 设定。你只能改用另一个网络。
Linux 用户
- 如何禁用 IPv6
-
- 这与发行版类型密切相关。用你喜欢的搜索引擎搜索一下。
- 例如搜索:
在 CentOS 中禁用 IPv6
暂时禁用 IPv6 地址的通用 Unix 命令
ifconfig eth0 inet6 IP地址 remove
- 注意,如果路由器再次进行自我广播,你的主机将重新学习默认路由。
- 你可以在网上针对你的操作系统发行版进行搜索,例如搜索“
在 FreeBSD 中禁用 IPv6
”。