使用 dnsmasq 过滤和重定向网站

使用 dnsmasq 过滤和重定向网站

我有一个连接到光纤路由器/调制解调器的 LAN,用于访问互联网,四台客户端计算机和运行 Ubuntu Server 和 Nginx 的低功耗 SBC。我想使用 SBC 过滤掉对某些网站的请求并将它们重定向到它自己的 Nginx 实例,同时让所有其他正常站点请求继续发送到我们 ISP 的 DNS 服务器。我已经可以配置路由器以将 DNS 请求传递给 SBC。

dnsmasq 是实现此目的的最佳方法吗?如果是,dnsmasq 的哪项配置允许我忽略正常流量并仅捕获少数网站?dnsmasq 中的重定向是否可以动态打开和关闭(例如在特定时间)还是需要重新启动 dnsmasq 服务?

大多数 dnsmasq 教程对于这种用法的解释都很差,但我找不到任何其他 Linux 工具可以让我实现同样的事情。

答案1

Dnsmasq 默认读取 /etc/hosts 文件,因此一个可能的解决方案是将所有要重定向的域名添加到 hosts 文件中。

但是,这不允许动态编辑或计划重定向。通过这种方式不太可能打开和关闭重定向。例如,DNS 记录也缓存在客户端,因此在服务器上进行更改不一定立即影响客户端。DNS 本身不是为此而设计的。防火墙和代理服务器用于控制网络流量。

相关内容