阻止网络管理器更新 resolv.conf

Stop network manager from updating resolv.conf

我在 /etc/resolv.conf 中更改了名称服务器,但是当我在 CentOS 中连接 vpn 时,网络管理器将我以前的 DNS 推回到 /etc/resolv.conf.

我不希望网络管理员将从 DHCP 接收到的 DNS 服务器添加到我的 /etc/resolv.conf.

有什么解决办法吗?

防止文件在 Linux 中更新的 "brute force" 方法可能是使用 chattr,例如您可以这样做:

chattr +i /etc/resolv.conf

删除 i - Immutable 属性以便您可以再次修改文件 运行:

chattr -i /etc/resolv.conf

另一种方法是将 /etc/NetworkManager/NetworkManager.conf 配置为不修改 DNS:

[main]
dns=none

来自男人:

dns
       Set the DNS (resolv.conf) processing mode.

       default: The default if the key is not specified. NetworkManager will update
       resolv.conf to reflect the nameservers provided by currently active connections.

       dnsmasq: NetworkManager will run dnsmasq as a local caching nameserver, using a "split
       DNS" configuration if you are connected to a VPN, and then update resolv.conf to point
       to the local nameserver.

       none: NetworkManager will not modify resolv.conf.

设置 dns=none 仍然可能允许网络管理员破坏东西 - 如果 DOMAIN 也在 ifcfg 文件中指定,NM 仍将写入文件但跳过any dns:es 建议在 [main] 部分下设置以下内容:

rc-manager=unmanaged 

根据文档

,这告诉网络管理员根本不要触摸 /etc/resolv.conf

我已经阅读了几个建议设置 rc-manager=unmanaged 而不是 dns=none 的 Whosebug 页面。我只是想从有关 dns=none.

的手册页中指出以下文档

none: NetworkManager 不会修改 resolv.conf. 这意味着 rc-manager unmanaged.