如何让浏览器优先使用 IPv6 而不是 IPv4?

如何让浏览器优先使用 IPv6 而不是 IPv4?

我安装了 miredo,并且似乎已启动并运行 IPv6。当我指定 IPv6 地址时,我可以使用 wget 或我的网络浏览器 ping 6 个主机并下载网页,但是每当我指定通过 IPv4 和 IPv6 提供的主机名时,浏览器都会选择 IPv4 地址进行连接。

我该如何改变这种情况并让浏览器使用 IPv6 而不是 IPv4(如果可用)?

通过 Google 搜索,我发现一个提示,即对于 6to4/teredo 隧道,浏览器将优先使用 IPv4 而不是 IPv6,但到目前为止,我还没有找到为什么或如何改变这种情况的解释。

答案1

浏览器并不偏爱这些选项,而是操作系统。标准大致如下定义优先级:

  1. IPv6 协议
  2. IPv4
  3. 6to4-流量

您可以通过编辑标签/优先级块来更改此设置/etc/gai.conf(gai 代表getaddrinfo,用于解析主机名的标准系统调用)。

详细说明gai.conf请参见手册页

顺便说一句,这也解释了乔纳森 (Jonathon) 的经历,即 SiXXS 隧道比 6to4 更受欢迎。

答案2

对于 Firefox 和其他基于 Mozilla/Gecko 的浏览器,network.dns.disableIPv6设置about:config应该是false如果您有 IPv6(在 Ubuntu 中默认设置为 true,否则很多人会遇到家用路由器中 DNS 代理有缺陷的问题)。

答案3

截至目前,如果某个站点通过 IPv4 响应速度更快,Chrome、Firefox 及其衍生浏览器实际上会避免使用 IPv6。无法通过配置设置更改此行为。

对于普通用户来说,该功能本身可能还算合理,但无法禁用它却让我抓狂。如今 IPv6 连接性非常好,有时 IPv6 比通过 IPv4 连接具有一些优势,即使由于隧道而导致的延迟更高。多年来,我一直使用 IPv6 浏览网页,尽管 IPv6 路由和性能已经大大改善,但这个该死的浏览器“黑客”功能却让我倒退了十年。

答案4

答案很简单:改变标签。

label 2002::/16    1
label 2001:0::/32   1

这使得它们相当于“原始” IPv6。

如果您将它们注释掉,它们将采用默认值。

相关内容