根据请求主机/IP 使用多个 DNS

根据请求主机/IP 使用多个 DNS

是否可以根据 IP 或请求的主机名使用不同的 DNS 服务器?

例如:

  • 对于 www.example.com,应使用 8.8.8.8 DNS 服务器
  • 对于任何其他请求,请参考 192.168.1.1 DNS 服务器

谢谢你! :)

答案1

您可以将 Mac 设置为本地 DNS 转发器。您必须安装 bind、配置为本地 DNS 并配置 named.conf (/etc/named.conf)。

forward only;
forwarders{
  192.168.1.1;
};
zone "example.com" IN {
type forward;
    forwarders {8.8.8.8;};
};

另一种我还没有测试过的方法是:

当您的 /etc/resolve.conf 中有两个 DNS 服务器时,Mac 应该根据路由决定哪个 DNS 最适合您使用(我认为)。

您应该将 Mac 分配到两个不同的网络。最好有两个连接(LAN+WiFi)或两个 LAN 连接,或者至少两个网关,但您可以尝试使用一个(这会更复杂)。

此示例基于一个示例。基本上创建两个网络,如下所示:

sudo ifconfig eth0 host 192.168.1.2 netmask 255.255.255.0
sudo ifconfig eth0:0 alias host 192.168.2.2 netmask 255.255.255.0

然后尝试将您的 DNS 服务器和域重新路由到指定的接口。

route add -host 192.168.1.1 dev eth0:0
route add -host www.example.com dev eth0:0
route add -host 8.8.8.8 dev eth0:0

我不知道这种黑客方法是否可以在一个界面上起作用,但应该在两个界面上起作用。

如果您有两个网关(即使是同一台设备),它起作用的可能性也更大。

如果此方法不起作用,抱歉(请告诉我)。它应该根据一些实际经验进行改进。

相关内容