我想在浏览器上阻止某些URL。我不想阻止整个网站。例如,我要阻止Google Reader,而不是整个Google域。有什么办法可以做到吗?
我想在浏览器上阻止某些URL。我不想阻止整个网站。例如,我要阻止Google Reader,而不是整个Google域。有什么办法可以做到吗?
Answers:
答案只会因所使用的操作系统而略有不同。我在powerpc:p上运行Ubuntu,但通常,相同的规则也适用于Windows和Mac。如果这些说明对您不起作用,那么我将根据您的操作系统调整此答案。现在,这里是Linux方法。
经过数小时的搜索,我发现的唯一方法是安装privoxy
。
安装privoxy之后,您需要/etc/privoxy/config
按以下方式编辑文件:
1)找到显示位置
#listen-address localhost:8118
并取消注释此行,以便说
listen-address localhost:8118
2)在此配置文件的底部添加以下行:
actionsfile blacklist.action
actionsfile whitelist.action
3)现在,您需要在文本编辑器中以root用户身份创建这些操作文件:a)gksu gedit /etc/privoxy/blacklist.action
并添加以下内容
{ +block }
www.apple.com/itunes
twil.tv/category/video
www.url.com/page
您在{+ block}行下添加的所有内容都会被阻止
b)分别应创建whitelist.action
文件
gksu gedit /etc/privoxy/whitelist.action
并添加行
{ -block }
www.google.com
或任何您想要保护的privoxy阻止。
保存三个文件后,必须重新启动privoxy:
sudo /etc/init.d/privoxy restart
并且必须确保浏览器或网络配置中的代理设置正确无误,只需添加localhost作为代理,将8118作为端口号即可。
privoxy的严重和令人不快的缺点是它是代理服务器,因此任何人要停止其工作所需要做的就是关闭它,或使用其他浏览器。我仍在寻找一种将privoxy添加到路由器或以某种方式运行的方法,而不是作为代理运行,而是将其作为默认端口80,那么您可以锁定配置文件,从而使任何人都无法更改它们。
这是您最接近问题答案的地方。
如果乍一看似乎不起作用,请不要忘记刷新浏览器的缓存,因为被阻止的页面即使在被阻止后也可能会从缓存中显示出来。
您也可能要关闭此功能:
确保在文件中将其enforce-blocks 1
设置为1
/etc/privoxy/config
enforce-blocks 1
否则,当页面被阻止警告出现时,尽管页面被阻止,它仍然可以选择转到已阻止页面,这完全使privoxy毫无意义。
如果要在系统范围内阻止特定域,则应使用hosts文件(请参阅此处)。因此,如果要阻止Google Reader,请将以下内容添加到主机文件中:
127.0.0.1 reader.google.com
但是,对此有限制。虽然您可以阻止子域和域,但是不能使用hosts文件来阻止子目录(例如,www.example.com / subdirectory)。如果使用Google阅读器,则只需导航至www.google.com/reader即可解决该阻止问题。一个更全面的解决方案可能是使用诸如Privoxy之类的东西来控制Web访问。
解决此问题的最简单方法是为浏览器使用扩展名/脚本。
我已经使用Chrome Nanny在Chrome中完成操作。LeechBlock似乎是Firefox的替代产品。两者都支持域中的通配符,并且您可以设置阻止URL的特定时间段。
iptables
(1)将仅针对您所关心的用户的流量列入该计算机上的代理的白名单。