我一直在到处寻找这个。有谁知道如何阻止 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 就此事发表了这样的言论(关联):
有一个 Privoxy 版本可以在 DD-WRT 上运行得很好。我刚刚安装了它。
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 安装它。 (看这个问题关于超级用户。)
我的第二种方法是使用固件修改套件,您可以阅读有关这里。我在刷新自定义构建时遇到了一些困难,但是一旦我解决了所有问题,我将在这里发布我的结果。
答案1
不幸的是,我(从 DD-WRT 论坛)得到的印象是,您只能在 DD-WRT 设置中的访问限制下阻止域。
我决定设置一个专用的代理服务器,并在其上安装 DansGuardian,这将允许我进行精细的控制,并使用 OpenWrt 中的 iptables 阻止任何不通过路由器上的代理的请求。
答案2
也许我回答得太晚了,但我已经找到了一种方法来做你想做的事。不要将您想要阻止的 URL 添加到“URL”类别中,而是将其添加到“关键字”类别中。这对我来说效果很好。
答案3
按着这些次序:
- 转到 dd-wrt Web 界面中的“访问限制”选项卡
- 启用策略
- 设置名称(例如“阻止 Youtube”)
编辑客户端列表以指定应阻止哪些计算机访问 YouTube
要阻止所有计算机,请使用底部的“IP 范围”指定除路由器(通常为
.1
)和广播 (.255
)之外的所有 IP- 设置您想要阻止的日期/时间,或“每天”以始终阻止它
- 在“按 URL 地址阻止网站”下,输入
facebook.com
- 单击“保存”,然后单击“应用设置”
有一个Youtube 视频如果您需要的话,它会显示每个步骤。
答案4
这些东西对我的路由器 WRT3200ACM 不起作用,尽管我能够将信息放入框中。我什至指定了 IP 地址,仍然可以从网络上的任何位置浏览 YouTube。就好像它是我的 dd-wrt 应用程序中显示的应用程序的死部分,但什么也没有发生。即使选择所有端口范围也不起作用。
我不得不使用 OpenDNS,它确实有效,但在整个网络上都有效。防火墙规则应该有效,但实际上却没有,所以我可以假设此固件升级不完整或尚未经过真正的测试。