配置 dnsmasq 以使用两个 DNS 提供商选择性地解析域

配置 dnsmasq 以使用两个 DNS 提供商选择性地解析域

我想使用两个不同的 DNS 提供商,a.comb.com

我想要一个像 google、youtube、superuser(以及更多)这样的域名列表,以便用 进行解析a.com

我希望所有其他域名都用 来解析b.com

我怎样才能做到这一点?


注意:我希望解析很多网站,因此a.com通过脚本解析它们并使用主机文件将这些域指向它们的地址不是一个选择,因为静态 IP 可能会更改,并且列表也可能会更改。


这个问题在超级用户上以不同的形式被问过 3 次(至少),但并没有得到很好的反响。(没有答案或没有被接受/赞成的答案):

dnsmasq 可以通过多个服务器解析特定域吗?

选择性 DNS 服务器使用

使用 dnsmasq 和网络提供的 DNS 服务器

答案1

您提到的其他答案似乎比您要求的更复杂。如果我理解正确的话,dnsmasq 配置很简单,例如:

server=/google.com/a.a.a.a#aaaa
server=/youtube.com/a.a.a.a#aaaa
server=/exception.youtube.com/#
server=/superuser.com/a.a.a.a#aaaa
server=b.b.b.b#bbbb
[...]

其中a.a.a.aa.com 是 DNS 服务器,aaaa是其端口,(对于 b.com 也是如此),应该这样做。

http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html状态,

更具体的域名优先于不太具体的域名,因此: --server=/google.com/1.2.3.4 --server=/www.google.com/2.3.4.5将发送对 *.google.com 的查询到 1.2.3.4,但 *www.google.com 除外,它将发送到 2.3.4.5。特殊服务器地址“#”表示“使用标准服务器”

是的,列表可能会很长,但您可以将多个域与一个服务器行匹配(显然不需要解析为 IP)。您可能会自动生成文件,并根据需要插入服务器行。

相关内容