我租了一些 Linux 服务器,托管公司提供了一组八个 DNS 解析器。
响应速度因解析器而异,我会定期修改/etc/resolv.conf
以获得最佳性能。
有两次我发现我的一个公共网站的加载时间太长了,这在一定程度上与它有关,这取决于后端 Web 服务需要大约 15 秒才能将域解析为 IP。
为了确保始终指定响应最快的解析器,我想自动化修改/etc/resolv.conf
.
如果需要,我可以编写脚本,但是这将不可避免地包含一个模糊的错误,我希望最大限度地减少自动化过程弄乱/etc/resolv.conf
. 任何经过长时间测试并显示稳定的预先存在的解决方案都将比我自己的解决方案更可靠。
我很想知道以前是否有人解决过这类问题,以及是否有任何稳定的脚本/进程/方法来处理这个问题。
您是否尝试过安装自己的本地缓存命名?在本地安装 BIND(仅缓存),然后让它按照预期的方式查询 DNS(根据委托动态查找委托)。只需将 resolv.conf 更改为指向 127.0.0.1 即可。也许将您的一个主机 IP 放在那里作为备份,但主要依赖于您自己的解析器。
在基于 Debian 的系统上,有一个包resolvconf ( wiki ),旨在处理 resolv.conf 的更新。
您可以附加或删除条目。您可以设置在发生更新时将调用的脚本。这允许您通知其他服务已进行更新。
这将涉及安装额外的服务器,但您可以使用集中式配置管理系统(例如 cfengine 或 puppet)将新的 resolv.conf 推送到您的服务器 Brett