我一直在到处寻找这个。有谁知道如何在DD-WRT路由器上阻止特定的URL?例如,我想阻止website.com/whatever
,但没有website.com
,blah.website.com
或website.com/blah
。有没有办法做到这一点,还是只能阻止整个域?
我尝试在DD-WRT配置中的“访问限制”下添加有问题的URL,但似乎没有任何效果。这是我的设置:
这是客户列表:
我仍然可以在IP地址为192.168.1.146的主PC上轻松浏览至google.com/imghp和google.com/images(重定向到google.com/imghp)。
在DD-WRT Wiki的此页面上,显示“在通过URL地址阻止网站下,输入要阻止的域名(如果有)”。除了DD-WRT论坛上的帖子外,这给我的印象是,您只能在DD-WRT设置中的“访问限制”下阻止域。
我开始怀疑是否必须使用iptables解决此问题,或者可能通过在路由器本身上安装代理服务器来解决。
编辑
DD-WRT论坛上的goli用户对此事有这样的看法(链接):
DD-WRT上的Privoxy版本运行良好。我刚刚安装了它。
Privoxy具有参数“ accept-intercepted-requests 1”,可以将其用作透明代理。
我添加了一个iptables规则,该规则将一些Web流量请求传递到代理,而不是直接路由它:
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -s 192.168.0.128/255.255.255.224 -j DNAT --to 192.168.0.1:8118
Privoxy具有所谓的“动作文件”。这些定义了当请求URL匹配给定的正则表达式时该怎么做。可能的动作之一是“阻止”。
从那时起,我一直在研究如何在路由器上安装Privoxy。这相当复杂,特别是因为我没有足够的备用闪存来使用ipkg通过SSH安装它。(有关超级用户,请参阅此问题。)
我的第二种方法是使用固件修改套件,您可以在此处阅读有关内容。我在刷新自定义版本时遇到了一些困难,但是一旦所有问题都整理妥当,我将在这里发布结果。