出于提高工作效率的原因,我想阻止访问 YouTube。
我尝试过的方法。我开始运行:
dig A youtube.com +short
然后将结果地址提供给
sudo iptables -A OUTPUT -o $SomeInterface -p all --dst $address -j DROP
这不起作用。具体来说:
- youbute.com 可以访问,运行正常。
- 此方法同样适用于其他网站。
我遗漏了什么?我应该做些什么不同的事情?
答案1
我通过运行自己的 DNS 服务器来处理此类任务。我主要用它来拦截广告,但它也能阻止与其他网站的联系。
在 DNS 服务器配置中,我配置了一个名为“adblocking.zone”的 DNS 区域,对于发送到该区域的任何查询,它都会返回环回地址 (127.0.0.1) - 但您可以将其设置为您想要的任何内容。
然后,在named.conf文件中,我将要屏蔽的网站指向广告拦截区域。条目可以是特定的主机名,也可以是整个域。例如,我不希望我的Windows机器自动更新,而且由于微软不再提供此选项,我只需“重定向”所有Windows更新域;如下所示:
zone "windowsupdate.com" { type master; file "adblocking.zone"; };
zone "mp.microsoft.com" { type master; file "adblocking.zone"; };
zone "msedge.net" { type master; file "adblocking.zone"; };
这只是几个例子,还有很多其他的例子。
如果我想允许访问,即当我准备好应用 Windows 更新时,我只需注释掉这些条目,重新启动 DNS 服务,然后正常访问它们。非常简单。
如果您对技术不够精通,无法从头开始操作自己的内部 DNS 服务器,您也可以使用 PiHole 来做同样的事情。在 pihole 中,您只需将域名“列入黑名单”即可。它非常友好且易于使用,所以也许可以尝试一下。
这两种方法的最终结果是该域名(即 youtube.com)无法解析为真实地址,并且您的浏览器将无法连接到它。