如何强制计算机使用特定的名称服务器进行查找?

如何强制计算机使用特定的名称服务器进行查找?

我知道您可以通过编辑/etc/hosts来使某些主机名解析为特定的 IP,但是有没有办法可以强制我的机器对域使用特定的名称服务器?

例如,如果我拥有 mysite.com 并且运行dig mysite.com ns显示 CloudFlare 作为名称服务器,我想在本地覆盖它以便它使用 AWS Route 53。

目标是在我实际更改名称服务器之前,确保将我的整个域从 CloudFlare 移动到 AWS 可以正常工作。

答案1

运行您自己的本地轻量级 DNS 服务器,如 MaraDNS 或 Dnsmasq。

每当计算机上的任何软件尝试使用 DNS 名称访问互联网时,它都会通过查询 DNS 服务器来解析相应的 IP 地址。此设置通常通过 完成/etc/resolv.conf。但 Unix 系统在网络上查询之前会尝试在 上本地查找/etc/hosts。如果您的目标 IP 地址不变,最好只在 中输入一个条目/etc/hosts

如果您不想这样做,另一种方法是自己运行 DNS 服务器。当您在本地运行 DNS 服务器时,您必须提及上游服务器。上游 DNS 服务器基本上是一个首选 DNS 服务器(通常是您的 ISP 或 Google DNS 或 OpenDNS),您的本地 DNS 可以查询该服务器。

如果你运行的是 Ubuntu/Debian,请按照以下步骤操作: 域名系统

一旦您的 Dnsmasq 启动并运行,您应该配置您的 dnsmasq 来查询您选择的特定域的 NS。example.comserver=/example.com/208.67.222.222是域,IP 地址是您希望 Dnsmasq 查询的名称服务器。

不要忘记更新resolv.conf或其他控制工具resolv.conf,以便您的计算机进行本地查询。

这样,对于所有请求,您的计算机都会查询 ISP 提供的 DNS 服务器,对于特定域,它会查询您选择的 IP 地址。HTH。

参考:Dnsmasq 手册页

相关内容