我安装了 miredo 并启动并运行了 IPv6。当我指定 IPv6 地址时,我可以使用 wget 或我的 webbrowser ping6 主机和下载网页,但是每当我指定通过 IPv4 和 IPv6 提供的主机名时,浏览器都会选择 IPv4 地址进行连接。
如果可用,我该如何更改它并让浏览器使用 IPv6 而不是 IPv4?
谷歌搜索我发现一个提示,对于 6to4/teredo 隧道,浏览器会更喜欢 IPv4 而不是 IPv6,但到目前为止,我还没有找到解释为什么或如何改变它。
我安装了 miredo 并启动并运行了 IPv6。当我指定 IPv6 地址时,我可以使用 wget 或我的 webbrowser ping6 主机和下载网页,但是每当我指定通过 IPv4 和 IPv6 提供的主机名时,浏览器都会选择 IPv4 地址进行连接。
如果可用,我该如何更改它并让浏览器使用 IPv6 而不是 IPv4?
谷歌搜索我发现一个提示,对于 6to4/teredo 隧道,浏览器会更喜欢 IPv4 而不是 IPv6,但到目前为止,我还没有找到解释为什么或如何改变它。
不是浏览器更喜欢任何选项,而是操作系统。该标准大致如下定义优先级:
/etc/gai.conf
您可以通过在(gai 代表getaddrinfo
,用于解析主机名的标准系统调用)中编辑标签/优先级块来更改此设置。gai.conf
可以在手册页中找到详细说明顺便说一句,这也解释了 Jonathon 的经验,即 SiXXS 隧道比 6to4 更受欢迎。
对于 Firefox 和其他基于 Mozilla/Gecko 的浏览器,如果您有 IPv6,则应该
network.dns.disableIPv6
设置(在 Ubuntu 中默认设置为 true,否则很多人会遇到家用路由器中的错误 DNS 代理问题)。about:config
false
最近,如果网站响应速度超过 IPv4,Chrome、Firefox 以及衍生浏览器实际上会避免使用 IPv6。无法通过配置设置来更改此行为。
该功能本身对于普通用户来说可能是合理的,但它几乎让我发疯,你不能禁用它。IPv6 连接现在非常好,有时 IPv6 比通过 IPv4 连接有几个优势,即使延迟 - 由于隧道 - 更高。多年来,我一直在浏览 IPv6,尽管 IPv6 路由和性能越来越好,但这个该死的浏览器“黑客”功能让我倒退了十年。
正如 freddyb 指出的那样,这取决于解析主机名的标准系统调用getaddrinfo的配置。
要解决您的问题,请将您的内容替换为
/etc/gai.conf
以下几行:更新:感谢 freddyb 指出我之前的回复是错误的:我们需要评论最后一行,而不是第三行。现在它对我有用!
好的,我一直在研究这个,这很奇怪。
使用本地代理
如果我将 Firefox 设置为通过在我的机器上运行的 Squid 进行代理,Firefox(或更准确地说,Squid)将通过 miredo 隧道连接。如果我安装了 miredo 但 Firefox 设置为“无代理”,Firefox 首先使用 IPV4。
安装aiccu
如果我安装 aiccu 并使用隧道(例如 SiXXS)设置它,那么无论我的代理设置如何,Firefox 都会首先使用 IPV6。
可能是因为 miredo 可以连接到 IPV6 站点,所以它仅在 IPV4 不可用时使用,在这种情况下尝试 aiccu。
答案很简单:改变标签。
这使它们等同于“香草” ipv6。
如果您将它们注释掉,它们将使用默认值。