在路由器上强制使用 DNS,而不是客户端 DNS(如 OpenDNS 或 GooglePublicDNS)
我正在尝试使用 DNS 实现一些站点阻止,硬件是简单的路由器,例如 Linksys 和 Netgear,您在家中用于家庭用途。
目前我尝试将一台计算机设置为 opendns,而我的路由器设置为其他设置,当使用 opendns.com/welcome 检查时,该计算机被识别为 opendns。反之亦然,这一次计算机没有被识别为 opendns。
是否可以强制用户使用我们的 DNS 而不是他们设置的 DNS?
答案1
在典型的消费级防火墙/路由器上,您可能运气不佳。
如果路由器支持,请阻止目标端口为 53(TCP 和 UDP)到您允许的名称服务器以外的地址的出站流量。
看此主题在开放 DNS 论坛上。
我查看了我的 WRT54G,它支持通过关键字或 URL 进行站点阻止,但我没有看到基于 IP 地址限制/允许的选项——它只能通过关键字或端口号进行限制。
答案2
不 - 只要他们是其机器的管理员,他们就可以覆盖 DHCP 并将其设置为他们喜欢的任何值。
如果您有高端调制解调器/路由器,您可以阻止除 DNS 服务器/转发器之外的 DNS 查找。甚至可以拦截所有 DNS 请求并将其指向您的服务器。
此外,使用 DNS 进行阻止是一种相当糟糕的做法,因为用户可以轻松输入他们所访问的站点的 IP 地址(直接输入或通过在其主机文件中创建条目来输入虚拟主机的 IP 地址)——更好的解决方案可能是使用代理服务器。
答案3
这显然行不通。如果你想要进行网站拦截,而绕过这些拦截并非易事,唯一的解决方案就是使用代理服务器。请注意,一些高端家用“路由器”可以选择使用这些路由器来拦截网址,它们有一个配置页面,你可以在其中设置被拦截的网址列表。在这种情况下,“路由器”根本不会将请求发送到互联网。对于代理服务器,必须强制计算机使用代理,并且锁定设置,以便计算机用户无法更改它们。网络很容易学习,绕过网站拦截的指南也很多。对于非常严重的内容拦截,公司和学校倾向于使用复杂的防火墙规则以及计算机上运行的软件来阻止访问“令人反感的”内容或病毒/恶意软件网站。
注意:路由器上的引号是因为在这种情况下路由器所做的不仅仅是简单地路由数据包,它还充当出站防火墙。