我在linux机器上运行一个dns服务器来testing我的网站的本地版本。 我已经在networking连接中configuration我的客户端机器来使用这个DNS服务器。
但是,如果我的Linux机器死亡,或者我重新启动它,我必须手动进入networking连接,并将我的DNS设置更改回我的ISPS DNS服务器。
有什么办法,我可以configuration我的客户端机器使用我的DNS服务器,如果可以联系,如果不是它使用不同的地址?
我知道,有替代DNS服务器设置,但如果我把东西在那里它有时使用主要的,有时候替代。 我希望替代品只能在主要不可用的情况下使用。
编辑:我不认为我的问题很清楚。 我没有任何问题,我的DNS服务器,设置正常。 但是,如果由于某种原因,它是无法访问,无法联系客户端(Windows和Linux)无法浏览互联网,因为他们正在寻找一个不存在的DNS服务器。 在这种情况下,我希望他们使用不同的DNS服务器。
configuration您的DNS服务器的地方是/etc/resolv.conf。 它将包含如下内容:
searchexample.com nameserver 192.168.0.1 nameserver 192.168.0.2
名称服务器使用名称服务器选项指定,并按照它们指定的顺序使用,所以此客户端将使用192.168.0.1,除非它不响应5秒,在这种情况下,它将尝试192.168.0.2。 search选项是查找失败时添加到请求的域后缀列表(默认情况下,如果您的查询没有点,因此可能只是一个主机名,parsing器将不会执行初始查询,只是尝试添加后缀) 。
这个文件通常是静态的。 你通常会手动编辑或使用一些GUI工具来为你做。 这是您在使用networking连接设置时所要做的。
但是,如果您有为DHCPconfiguration的接口,DHCP服务器可以发出名称服务器,所以DHCP客户端必须更新文件。 DHCP请求通常会在启动时发生,并且在租约用完时(由服务器控制;可能是每小时,每天或其间)。
另外一些configuration系统也可能在启动时重写你的resolv.conf文件。 Linuxconf很容易做到这一点。 您可能在/etc/resolv.conf中发现了一条注释,警告您不要编辑该文件,因为如果是这种情况,将会覆盖该文件。 这可能会给你一个线索如何改变。
由于您必须在引导后重新configuration您的服务器,并且不指定您正在使用的是哪个版本的Linux,所以我会假定它是DHCP导致的问题。 有几个解决scheme。 首先,您可以更改DHCP服务器以发布正确的DNS服务器。 如果您不控制服务器,或者您不希望networking上的每个人都获得这些DNS服务器,则这可能不是理想的或可能的。 第二个解决scheme是告诉客户端忽略来自服务器的选项。 你可能会发现一个GUI选项来做到这一点,但更有可能的是,你将不得不手动完成这个任务。 您可以通过编辑dhclient.conf(Debian和Ubuntu上的/etc/dhcp3/dhclient.conf)并添加以下行来完成此操作:
supersede域名服务器192.168.0.1 192.168.0.2;
如果DNS服务器在重新启动时停止工作,只需要理清原因(请参阅某些Linux版本上的man chkconfig )。
你还没有说你的客户机正在运行什么O / S。 无论如何,我build议使用DHCP来释放您的DNS设置。