如何让浏览器更喜欢IPv6而不是IPv4?


16

我安装了miredo,并启动并运行了IPv6。当我指定IPv6地址时,我可以ping6主机并使用wget或我的Web浏览器下载网页,但是,每当我指定同时在IPv4和IPv6上提供的主机名时,浏览器就会选择用于连接的IPv4地址。

如何进行更改,并让浏览器使用IPv6代替IPv4(如果可用)?

在谷歌搜索中发现了一个暗示,即对于6to4 / teredo隧道,浏览器将更喜欢IPv4,而不是IPv6,但是到目前为止,我还没有找到解释为什么或如何更改它的解释。

Answers:


10

不是浏览器更喜欢任何选项,而是操作系统。该标准大致定义了优先级,如下所示:

  1. ipv6
  2. ipv4
  3. 6to4交通

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

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

顺便说一下,这也解释了Jonathon的经验,即SiXXS隧道优于6to4。


7

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


我认为这是针对Firefox的吗?

是的,抱歉,将更新我的答案。
2010年1

2
刚刚检查。无需触摸偏好。如今,它默认true在Firefox中使用-也适用于Ubuntu的Firefox。
freddyb 2013年

6

就像freddyb指出的那样,这取决于解析主机名getaddrinfo的标准系统调用的配置。

要解决您的问题,请/etc/gai.conf用以下几行替换您的内容:

label ::1/128       0
label ::/0          1
label 2002::/16    2
label ::/96         3
label ::ffff:0:0/96 4
label fec0::/10     5
label fc00::/7      6
#label 2001:0::/32   7

更新:thx到freddyb指出我之前的回答是错误的:我们需要在最后一行而不是第三行添加注释。现在对我有用!


6

最近,如果站点通过IPv4响应速度更快,Chrome,Firefox和派生的浏览器实际上会避免使用IPv6。无法通过配置设置更改此行为。

该功能本身对于普通用户而言可能是合理的,但令您发狂的是您无法禁用它。如今,IPv6连接非常好,即使通过隧道传输的延迟更高,有时IPv6也比通过IPv4连接具有多个优势。我已经浏览IPv6多年了,尽管IPv6路由和性能已经变得越来越好,但是该死的浏览器“ hack”功能使我倒退了十年。


2
在RFC 6555中建议采用这种行为。自2010年左右以来,这已成为一种普遍做法。为了提供体面的用户体验,默认情况下使用绝对正确的行为。如果浏览器没有这样做,那么大多数网站将根本拒绝发布AAAA记录。话虽这么说,但要设置一个调整时间以让IPv6领先很多毫秒才是一个好主意。能够选择每个站点的开端更好。每个站点设置可以作为代理脚本的可能返回值添加到浏览器中。
卡巴斯德(Kasperd),2015年

2

好吧,我一直在研究这个,这很奇怪。

  1. 使用本地代理
    如果将Firefox设置为通过计算机上运行的Squid代理,则Firefox(或更准确地说,Squid)将通过miredo隧道进行连接。如果我安装了miredo,但Firefox设置为“ no proxy”,则Firefox首先使用IPV4。

  2. 安装aiccu
    如果我安装aiccu并使用隧道(例如SiXXS)对其进行设置,那么无论我的代理设置IPV6是由Firefox首先使用的。

可能是因为miredo可以连接到IPV6站点,所以仅在IPV4不可用时才使用它,在这种情况下,请尝试aiccu。


1

答案很简单:更改标签。

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

这使它们等效于“香草” ipv6。

如果您将其保留为注释状态,它们将选择默认值。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.