CentOS 将/etc/resolv.conf
定期清除任何手动更改。Linux 中的默认设置在合理时间内故障转移方面很差(每次以相同的顺序查询名称服务器,超时 5 秒,重试 2 次)。
因此,您的第一个 DNSresolv.conf
本质上是关键路径。如果它失败了,您可以在故障转移之前查看 10 秒。
这些默认值是可以调整的(参见resolv.conf手册页),但是如何在 CentOS 中永久更改任何更改并通过重新启动等保持不变?
CentOS 将/etc/resolv.conf
定期清除任何手动更改。Linux 中的默认设置在合理时间内故障转移方面很差(每次以相同的顺序查询名称服务器,超时 5 秒,重试 2 次)。
因此,您的第一个 DNSresolv.conf
本质上是关键路径。如果它失败了,您可以在故障转移之前查看 10 秒。
这些默认值是可以调整的(参见resolv.conf手册页),但是如何在 CentOS 中永久更改任何更改并通过重新启动等保持不变?
答案可以在
/sbin/dhclient-script
:RES_OPTIONS
但是,您可以在哪里设置以使脚本拾取它并不是很明显- 可以在ifcfg-ethX
文件中设置搜索域等某些内容,但在其他地方设置解析器选项。您想要的文件实际上是/etc/sysconfig/network
. 要设置相关选项,请在该文件中添加类似于此行的内容:这会将超时设置为 1 秒,使用一次重试并告诉客户端每个请求轮换其解析器,而不是每次都按顺序遍历列表。
如果您想让更改立即生效,请发出
service network restart
命令并检查您的新功能/etc/resolv.conf
。这是我在测试时的样子:公认的答案是在使用旧版网络脚本时。如果您使用NetworkManager,您甚至可能没有
/etc/sysconfig/network
,如果您这样做,它仍然不会用于由NetworkManager管理的连接。如果您使用NetworkManager:
要添加选项,例如添加
rotate
到bond0
:要删除该选项:
+
改变选项也很好;NetworkManager足够聪明,可以检测现有选项并更新它们。例如,更改超时值:这意味着该值将被删除,甚至不需要。要删除超时:
它也可以使用超时值,但该值将被忽略,因此删除
timeout:5
也将删除任何其他超时值。注意:在调查这个问题时,我发现了一个在network-manager v1.14.6、v1.15.2-dev和v1.16中修复的相关错误。如果您遇到任何问题,请先检查您的网络管理器版本。
由于这个答案出现在我搜索如何在我的机器(MX Linux、Debian 衍生产品)上执行此操作并且它没有该发行版的答案,我想添加如何为该发行版执行此操作:
编辑这个文件:
只需添加
在你的
resolvconf.conf
如果您需要使用平面文件而不是
nmcli
命令(例如使用配置管理工具)来执行此操作,Red Hat 提供了另一种解决方案。创建一个脚本
/etc/NetworkManager/dispatcher.d/15-resolv
,将自定义复制/etc/resolv.conf
到位。重新启动 NetworkManager 后,将执行此脚本,将文件替换为您自己的文件。
https://access.redhat.com/solutions/61921
您可以告诉 NetworkManager 不要一起管理
/etc/resolv.conf
文件。来自的文档有第二种解决方案,其中涉及用
/etc/resolv.conf
符号链接替换文件。读一读:22. 手动配置 /etc/resolv.conf 文件
上次我新订阅的 linux VPS 也遇到了同样的问题。我如何解决它是使用 chattr +i 命令使文件不可变。在对 resolv.conf 文件进行必要的更改后,只需转到 /etc 文件夹并运行它:
chattr +i resolv.conf
如果您想恢复设置,只需执行以下操作:
chattr -i resolv.conf
完整指南供您参考: http ://boxtutor.com/fix-etcresolv-conf-is-not-saving-after-server-reboot/