是否可以根据 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
我不知道这种黑客方法是否可以在一个界面上起作用,但应该在两个界面上起作用。
如果您有两个网关(即使是同一台设备),它起作用的可能性也更大。
如果此方法不起作用,抱歉(请告诉我)。它应该根据一些实际经验进行改进。