Hal*_*aar 5 domain-name-system linux resolv.conf
每当其中的一台服务器/etc/resolv.conf
无法访问时,Linux/glibc/whatever 都不够智能,暂时无法重试。这导致许多服务变得不可用,因为其中许多服务对所有传入连接(如 SSH)进行反向查找,这将在第一次 DNS 服务器查询超时时挂起。
我怎样才能让我的 Ubuntu 机器对它使用的 DNS 服务器变得聪明?我可以破解一个每分钟运行一次的 bash 脚本,该脚本将拒绝规则插入到不响应挖掘查询的服务器的 iptables 中,但我宁愿不那样做...
我被告知 Windows 可以正确执行此操作,顺便说一句。
编辑:我通过将其放入/etc/resolv.conf
(或/etc/resolvconf/resolv.conf.d/base
)来解决它:
options timeout:2 rotate
Run Code Online (Sandbox Code Playgroud)
仍然不完美,但更可行。
为什么 DNS 服务器变得不可用?这是我们应该重点解决的问题......
rotate
如果您想要确定性的重试顺序,则应省略该指令。rotate
基本上为您提供循环查找,这可能会在您的情况下产生不良结果。
我的 DNS/etc/resolv.conf
看起来像:
search blah.net client.blah.net
options timeout 1
nameserver 172.16.2.14
nameserver 172.16.2.18
Run Code Online (Sandbox Code Playgroud)
除此之外,您还可以选择在本地计算机上使用缓存 DNS 服务,甚至启用名称服务器缓存守护程序(nscd)。这将有助于缓冲不可靠的 DNS 解析器带来的延迟。