我可以使用 DNSMasq 来为每个网络设置 DNS 服务器吗?

我可以使用 DNSMasq 来为每个网络设置 DNS 服务器吗?

我正在使用 DNSMasq。对于某些 wifi 网络,我需要有不同的 DNS 服务器。默认情况下,我有 Quad9 DNS 地址。但是当我连接到我的大学网络 (eduroam) 时,我必须使用他们提供的 DNS 服务器——Quad9 被屏蔽了。

有没有办法在连接时从路由器获取建议的 DNS 服务器并使用它?理想情况下,我希望能够设置是否要使用他们的建议。

目前,我在 dnsmasq.d/ 目录中添加了一条规则,并在每次连接时重新启动 dnsmasq,然后在断开连接时删除该文件并重新启动。


我使用 Arch Linux。对于网络管理,我使用netctl

答案1

我不清楚您的配置,但我很确定解决方案在于您正在运行的 DHCP 客户端。

DHCP 通常提供 (动态分配的) IP 地址的连接信息,并且通常包括名称服务器。听起来在您的设置中 (这在 Linux 中并不罕见),与 DNS 相关的 DHCP 请求被忽略了 - 如果您正在运行 DNSMASQ,这有一定道理。

如果您正在运行 isc dhcp(这很常见),则可以使用一个钩子来控制 DHCP 如何处理 DNS 信息。手册页 (https://www.isc.org/wp-content/uploads/2018/02/dhcp44cscript.html) 有更多关于此钩子的信息。

通过编辑 resolv.conf 的外观,您可以更改名称服务器。

相关内容