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


0

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

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

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

Answers:


1

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

只要您的计算机上的任何软件试图通过DNS名称联系到Internet,它就会通过查询DNS服务器解析为相应的IP地址。此设置通常通过/etc/resolv.conf。但在查询网络之前,Unix系统试图在本地查找/etc/hosts。如果您的目标IP地址没有改变,最好只输入一个条目/etc/hosts

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

如果您正在运行Ubuntu / Debian,请按照以下步骤操作: dnsmasq

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

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

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

参考:Dnsmasq Man页面


1
我知道关于DNS服务器的问题,请你详细说明一下。
ffxsam

@ffxsam这基本上是将本地计算机设置为DNS服务器。然后将其DNS服务器软件配置为DNS转发器。对于您的mysite.com域,它被设置为将DNS查询转发到指定的名称服务器,在本例中为AWS。对于其他域,它会将DNS查询转发到您的常规DNS服务器,即您的ISP DNS服务器。用你可能更熟悉stub zone的方式forward zone在本地PC的DNS服务器上设置一个或一个。
BeowulfNode42

不要忘记提及resolv.conf或任何设备上的DNS设置必须更新以使用新安装的DNS服务器。
Appleoddity

@Appleoddity对..将更新答案以反映你的观点
Ram
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.