我注意到 Firefox 上的某个页面加载时间很长(5 到 10 秒)。我跟踪了延迟情况,发现这种情况发生在尝试连接到某个主机时bn.uol.com.br
。
奇怪的是,这种延迟只发生在 Firefox 上,而不会发生在 Chrome / Chromium 上。它发生在 Ubuntu 14.04 上的 Firefox 31.0 上,发生在 Windows 10 上的 Firefox 42.0 上,发生在 Android 4.4.4 上的 Firefox 42.0.1 上;但它不会发生在 Ubuntu 14.04 的 Chromium 45.0.2454.101 上,或 Windows 10 的 Chrome 46.0.2490.86m 上,或 Android 4.4.4 的 Chrome 34.0.1847.114 上。
我想通过正确启用 IPv6 或完全禁用它来结束所有操作系统和所有设备上的这种延迟。
我之前曾注意到apt-get
随机 IPv6 地址出现间歇性停顿。我怀疑(但我不确定)我的 ISP 没有启用 IPv6,我也怀疑(但也不确定)我的无线 AP/路由器上禁用了 IPv6。我起了疑心,并执行了http://test-ipv6.com/在所有操作系统(相同的无线网络、相同的路由器/ AP)上的两个浏览器上进行测试。
结果如下:
Ubuntu 上的 Firefox
Ubuntu 上的 Chromium
Android 上的 Firefox
Android 上的 Chrome
Win10 上的 Firefox
Win10 上的 Chrome
附加检查
wget(Windows 10)
IPv6 超时之前会有长时间的停顿。
更多有关原生 USB Ubuntu 的测试
$ wget bn.uol.com.br
--2015-11-30 22:11:29-- http://bn.uol.com.br/
Resolving bn.uol.com.br (bn.uol.com.br)... 200.147.35.201, 2804:49c:319:430::126
Connecting to bn.uol.com.br (bn.uol.com.br)|200.147.35.201|:80... failed: Connection refused.
Connecting to bn.uol.com.br (bn.uol.com.br)|2804:49c:319:430::126|:80... [5s PAUSE HERE] failed: No route to host.
上述 IPv6 超时之前会有长时间的停顿。
$ ping6 bn.uol.com.br
PING bn.uol.com.br(2804:49c:319:430::126) 56 data bytes
From fe80::3e77:e6ff:XXXX:XXXX icmp_seq=1 Destination unreachable: Address unreachable
From fe80::3e77:e6ff:XXXX:XXXX icmp_seq=2 Destination unreachable: Address unreachable
From fe80::3e77:e6ff:XXXX:XXXX icmp_seq=3 Destination unreachable: Address unreachable
^C
--- bn.uol.com.br ping statistics ---
6 packets transmitted, 0 received, +3 errors, 100% packet loss, time 5009ms
$ ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::3e77:e6ff:XXXX:XXXX/64 scope link
valid_lft forever preferred_lft forever
$ ip -6 route
fe80::/64 dev wlan0 proto kernel metric 256
default dev wlan0 proto kernel metric 256 expires 86397sec
default via fe80::9e97:26ff:XXXX:XXXX dev wlan0 proto ra metric 1024 expires 297sec
第三行似乎指向我的 wifi ap/路由器,尽管我猜测 IPv6 已被禁用(它是 Technicolor TD5130v2,用户界面相当混乱)
答案1
您没有 IPv6 地址,很可能是因为您的 ISP 尚未像世界上大多数 ISP 一样过渡到 IPv6。
您的地址fe80::3e77:e6ff:feb4:41a1
是链接本地地址,请参阅这里例如:
链路本地地址是一个 IPv6 单播地址,可以在任何使用链路本地前缀 FE80::/10 (1111 1110 10) 的接口上自动配置
此外,http://test-ipv6.com/和我在家里的一模一样,一定没有 IPv6 连接。
编辑
为了回复 grawity 的评论,我尝试从我的一台 vps 执行 ping6 操作:
root@vps:~# ping6 -c3 bn.uol.com.br
PING bn.uol.com.br(2804:49c:319:FEED::FEEB) 56 data bytes
--- bn.uol.com.br ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2001ms
它尝试连接,它有一个支持 IPv6 的 DNS,没有回复,因为我在这个 vps 上没有 IPv6 连接。Ubuntu,在 OP 中使用,当然像所有 Debian 一样,但目前我怀疑所有 Linux,如果发现非链接本地地址,完全能够自行配置 IPv6。