使用 /etc/hosts 阻止多个站点

使用 /etc/hosts 阻止多个站点

通过编辑 hosts 文件并添加:0.0.0.0 sitetoblock.com我可以阻止该特定网站。使用 hosts 文件,是否可以阻止除我指定的几个网站之外的所有网站?Wikipedia 和 dictionary.com 将被列入白名单。

如果 /etc/hosts 无法实现这一点,您会推荐其他可以执行类似操作的方法或应用程序吗?我不需要浏览器插件,而是需要操作系统范围的块。

答案1

您可以设置透明代理。正如维基百科所述,

透明代理也称为拦截代理或强制代理,它可以拦截网络层的正常通信,而无需任何特殊的客户端配置。客户端不需要知道代理的存在。透明代理通常位于客户端和互联网之间,代理执行网关或路由器的一些功能

/etc/hosts只要用户不知道该文件或没有编辑该文件的权限,就可以这样做。但我想,如果您使用代理,您想要实现的目标会更容易,尽管设置它需要一些时间。

要设置透明代理,您可以使用squid。以下是一些快速设置步骤:

  • 安装squid

    sudo apt-get install squid squid-common
    
  • 编辑/etc/squid3/squid.conf文件:

    查找该行http_port 3128并确保它已被取消注释。squid默认情况下监听端口 3128。

    acl bad dstdom_regex .*abcde.*
    http_access deny bad
    

    这将阻止每个包含 的 URL abcde

  • 重新开始squid

    sudo service squid3 restart
    

提供了非常好的指南这里

以下是一些其他链接:

相关内容