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