2

我在 /etc/resolv.conf 中更改了名称服务器,但是当我在 CentOS 中连接 vpn 时,network-manager 将我以前的 DNS 推回 /etc/resolv.conf。

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

有什么解决办法吗?

4

3 回答 3

8

防止在 Linux 中更新文件的“蛮力”方法可能是使用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.
于 2018-08-10T11:15:45.173 回答
6

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

rc-manager=unmanaged 

/etc/resolv.conf根据文档,这告诉networkmanager根本不要触摸

于 2019-11-13T09:29:20.390 回答
0

我已经阅读了几个建议设置 rc-manager=unmanaged,而不是 dns=none 的 stackoverflow 页面。我只是想从有关 dns=none 的手册页中指出以下文档。

none:NetworkManager 不会修改 resolv.conf。 这意味着 rc-manager 不受管理。

于 2020-07-08T19:26:30.740 回答