/etc/hosts
我正在尝试阻止我的网络浏览器与某些主机通信(主要是广告和跟踪)。我的文件中有此类主机的列表。
对于 IPv4 我可以执行以下操作:
255.255.255.255 example.com
我该如何使用 IPv6 来实现这一点?以下两种方法似乎不起作用:
::1 example.com
ff02::2 example.com
这是针对dnsmasq
Debian 机器的。请协助
更新型多巴胺请告知检查结果的简单方法是什么 - 类似于 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.com
in/etc/hosts
并且它确实按预期工作。
您可能已经安装了ping6
和traceroute6
变体 - 您应该使用它们进行测试。ping
并且traceroute
倾向于仅限 IPv4,尽管 Windows 版本ping
确实有一个-6
用于 IPv6 模式的参数。
答案2
同时添加 IPv4 和 IPv6 条目/etc/hosts
将会阻止两者。
::1 example.com
127.0.0.1 example.com
请注意不能用 dig
,host
等nslookup
来检查这样的/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
(如果您想记录此类请求,或显示默认内容等,您可以创造性地使用它)。