Linux一直在重试失败的DNS服务器

每当/etc/resolv.conf中的某个服务器无法访问时,Linux / glibc /的任何内容都不够智能,不能重试它一段时间.这导致许多服务变得不可用,因为它们中的许多服务在所有传入连接(例如SSH)上执行反向查找,这将在第一个DNS服务器查询的超时时间内挂起.

如何让我的Ubuntu盒子对它使用的DNS服务器变得聪明?我可以破解一个每分钟运行一次的bash脚本,它将REJECT规则插入到iptables中,用于不响应dig查询的服务器,但我宁愿不这样做……

我被告知Windows正确地做到了这一点,BTW.

编辑:我在/etc/resolv.conf(或/etc/resolvconf/resolv.conf.d/base)中将它放在一点点工作:

options timeout:2 rotate

仍然不完美,但更可行.

解决方法

为什么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

除此之外,您可以选择在本地计算机上使用缓存DNS服务,甚至可以启用Name Server Caching Daemon(nscd).这将有助于缓解不可靠的DNS解析器带来的延迟.

相关文章

文件查找(find) 1 find 简单的说,就是实时查找指定的内容或条件。特点:最新、最快、最准确。 用法:...
非交互式添加分区 方法一 添加/deb/sdb 下的分区,其实位置为1到1000M,第二个分区位置为1001至3000M,...
编译安装httpd 1 去官网下载源码包 为避免非法软件,一定要去官网下载http://www.apache.org httpd-2.4...
gdisk用法 gdisk - InteractiveGUIDpartitiontable (GPT) manipulator GPTfdisk (akagdisk) isatext-mo...
1 一定用快捷键 这里简单的说下几个常用的快捷按键。 1.1 移动光标快捷键 Crtl + a 光标回到命令行...
bash shell中测试命令 test命令提供了if-than语句中测试不同条件的途径。如果test命令中列出的条件成立...