使用 /etc/hosts 阻止(nullroute?)IPv6 主机名

使用 /etc/hosts 阻止(nullroute?)IPv6 主机名

/etc/hosts我正在尝试阻止我的网络浏览器与某些主机通信(主要是广告和跟踪)。我的文件中有此类主机的列表。

对于 IPv4 我可以执行以下操作:

255.255.255.255 example.com

我该如何使用 IPv6 来实现这一点?以下两种方法似乎不起作用:

::1     example.com
ff02::2 example.com

这是针对dnsmasqDebian 机器的。请协助

更新型多巴胺请告知检查结果的简单方法是什么 - 类似于 Windows 上的 nslookup。试过了,dig -6 example.com但它挂了,然后抛出一个错误。

# dig example.com -6

; <<>> DiG <<>> example.com -6
;; global options: +cmd
;; connection timed out; no servers could be reached

答案1

要覆盖 IPv6 和 IPv4 名称查找,您需要同时使用 in /etc/hosts。我刚刚尝试使用::1 example.comin/etc/hosts并且它确实按预期工作。

您可能已经安装了ping6traceroute6变体 - 您应该使用它们进行测试。ping并且traceroute倾向于仅限 IPv4,尽管 Windows 版本ping确实有一个-6用于 IPv6 模式的参数。

答案2

同时添加 IPv4 和 IPv6 条目/etc/hosts将会阻止两者。

 ::1       example.com
 127.0.0.1 example.com

请注意不能用 dighostnslookup来检查这样的/etc/hosts黑洞 - 它们都将直接连接到 DNS 服务器,绕过/etc/hosts(如果您运行本地 Web 服务器但不想要这种行为,则可以使用其他值)。

你可以检查:

telnet -4 example.com 80
telnet -6 example.com 80
telnet example.com 80

或打开浏览器http://example.com/等。请注意,如果您在您自己的机器上运行 Web 服务器,它将获得127.0.0.1和的连接::1(如果您想记录此类请求,或显示默认内容等,您可以创造性地使用它)。

相关内容