我看到了关于这个话题的几篇相关文章: 客户端应用程序如何知道使用 IPv4 还是 IPv6?和 如何知道你的浏览器是否连接到某个网站的 Ipv4 还是 Ipv6 地址?
第一篇帖子已经有好几年了,所以我不确定它是否仍然有意义,而第二篇帖子也没有回答我的问题。
我问的原因是我安装了pi 孔以帮助屏蔽广告。我将路由器设置为使用 pi-hole 作为 IPv4 DNS 服务器,但在浏览 CNN 等网站时仍然会看到广告。然后我意识到我的 ISP 提供商(Comcast)提供了两个 IP 地址,一个 IPv4 和一个 IPv6,我的路由器也支持 IPv6。
当我手动禁用网卡上的 IPv6 时,浏览 CNN 网站时广告就会停止显示。因此,我得出结论,我正在使用 IPv6 连接到 CNN 网站。我的问题是,当 Web 浏览器决定使用 IPv4 还是 IPv6 连接到目的地时?是否只是先尝试使用 IPv6,如果成功则使用它,否则返回 IPv4?
附注:显然 Arris SBG6700-AC 调制解调器/路由器仅允许您配置 IPv4 DNS 服务器,而不允许配置 IPv6 DNS 服务器。要指定您自己的 IPv6 DNS 服务器,我必须从计算机本身进行设置。
答案1
第一的:如何您解析主机名与您可以将其解析为哪个地址无关。当通过 IPv4 询问时,DNS 服务器完全能够返回 IPv6 AAAA 记录,反之亦然。
至于浏览器如何选择尝试哪个地址:您链接到的第一个帖子仍然相关,唯一改变的是微小的优先级调整。
答案2
您无法直接控制 Web 浏览器如何确定其使用 IPv6 还是 IPv4。
这一切都由计算机中的 IP 堆栈处理。
至于广告,我建议您考虑使用其他广告拦截器。我认为 v4 与 v6 的问题不是造成您看到结果的原因。
Windows 提示:Adblock 效果不错。但不要使用 Adblock Plus,因为它会加载“允许”广告表格,占用大量内存。
同时,根据您的问题,我有一个建议:将所有路由器设置为禁用 IPv6,直到需要为止。
然后对所有计算机执行相同的操作:对于每个接口,取消选中 IPv6 支持(Windows),或将其设置为禁用或自动(Linux),然后让路由器处理其余部分。
有一天 IPv6 将成为必需品,但这在很大程度上将影响 ISP。(我使用 Cox Cable)要将其推向用户级别,他们必须在那时更换我们的组合调制解调器/路由器盒。或者,他们将要求所有用户自己重新配置路由器。如果他们做任何一件事,他们都会遭受损失,特别是如果他们为更改或帮助热线支持增加任何额外费用。最后,我预测 Cox 会想出一种方法来避免如此大量的工作。他们是一家企业,他们必须意识到,如果再增加任何额外费用或可能由用户引起的配置错误导致停机,那么他们就会失去客户。
所以目前,在用户层面上根本不需要 IPv6。
在可预见的未来,NAT 路由器后面的所有系统可能都能继续使用 v4。v6 仅在较大的网络上才是必要的。
答案3
对于广告,请使用 ublock origin。小巧、快速,如果公司支付足够费用,就不会让广告通过,还会阻止 YouTube 广告。除非您的计算机真的很慢,否则它会正常工作。Noscript 或 umatrix 也是非常必要的,可以阻止尽可能多的 google/facebook/.... 间谍软件脚本。您无法阻止所有内容,因为您会阻止 recaptcha 或 ajax 并破坏
对于 android 来说,有 dns66(在 f-droid 上)它也会阻止添加(遗憾的是不是 youtube 的)。
如果您想要一个集中式解决方案,也可以使用代理服务器来阻止添加。
据我所知,浏览器使用延迟较小的那个。由于 ipv4 被阻止,延迟实际上是无限的,所以它使用 ipv6。