![如何通过 IPv6 的主机文件阻止网站?](https://linux22.com/image/1490977/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20IPv6%20%E7%9A%84%E4%B8%BB%E6%9C%BA%E6%96%87%E4%BB%B6%E9%98%BB%E6%AD%A2%E7%BD%91%E7%AB%99%EF%BC%9F.png)
我正在按照下一个教程来阻止一些分散注意力的网站:http://masonsklut.com/how-to-block-websites-on-your-mac-using-terminal/
问题是本教程涵盖的是 IPv4 配置,而不是 IPv6 配置。因此,localhost 不会是 127.0.0.1
我已经阅读过相关内容,并且 IPv6 的本地主机是 ::1,但我无法使其工作。
这些是我在主机文件(Mac)中使用的行。
::1 www.facebook.com
::1 twitter.com
::1 www.linkedin.com
::1 www.youtube.com
经过这一更改后,我清除了缓存,但仍然不起作用。
答案1
我终于找到解决办法了。
这是我在主机文件中使用的代码。
0.0.0.0 www.youtube.com
:: www.youtube.com
0.0.0.0 www.facebook.com
:: www.facebook.com
0.0.0.0 www.instagram.com
:: www.instagram.com
0.0.0.0 www.linkedin.com
:: www.linkedin.com
0.0.0.0 twitter.com
:: twitter.com
答案2
我相信您需要在 IP6 地址末尾包含您的区域 ID。
如果您的区域 ID 是 8,则需要在 IP6 地址末尾添加 %8,例如:
::1%8 www.facebook.com ::1%8 twitter.com ::1%8 www.linkedin.com ::1%8 www.youtube.com
我不确定在 Mac 上查找接口/区域 ID 的命令是什么,但在 Windows PC 上,我使用了以下命令来解决问题,而且似乎效果很好:netsh interface ipv6 show address
在 OSX 上,我认为您可以使用您的适配器名称,查找并尝试将其添加到您的 IPV6 地址,例如,如果您的适配器名称是 eth0:
::1%eth0 www.facebook.com