网络管理器:如何停止 nm 更新 /etc/resolv.conf

use*_*139 48 dns resolv.conf

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

当从 GUI/Connections/IPV4 配置并选择自动(仅地址)方法时,它仍会添加通过 DHCP 接收的 DNS 服务器。

是否可以按连接执行此操作(特定 ssid ?)

krt*_*krt 58

阻止网络管理器将 dns-servers 添加到/etc/resolv.conf文件的一种方法是执行以下操作:

首先打开nm conf文件/etc/NetworkManager/NetworkManager.conf

sudo vim /etc/NetworkManager/NetworkManager.conf
Run Code Online (Sandbox Code Playgroud)

并将其添加到该[main]部分:

dns=none
Run Code Online (Sandbox Code Playgroud)

保存并退出。

  • 这不适用于 Ubuntu 18.04 (10认同)
  • 这在 debian jessie 中对我不起作用 (8认同)
  • 在对 .conf 文件的更改生效之前,我不得不“sudo service network-manager restart”。 (6认同)

Tah*_*gir 7

/etc/resolv.conf符号链接到/run/resolvconf/resolv.conf. NetworkManager 不会直接更新 /etc/resolv.conf(仅更新 /run/resolvconf/resolv.conf)。所以:

  • 删除符号链接 ( rm /etc/resolv.conf)
  • 写你自己的版本/etc/resolv.conf

  • 我知道这是一个 ubuntu 论坛,但在谷歌搜索 centos 时,这仍然是我的第一个谷歌结果,因此为未来的 centos 谷歌用户发表评论。这并没有解决我在 centos 上的问题。看起来centos网络管理器直接在/etc/resolv.conf上工作。 (4认同)

Ser*_*nyy 5

我个人最喜欢使用 line supersede domain-name-serversin /etc/dhcp/dhclient.conf。无论提供什么 dns 接入点,您的 ubuntu 都将始终使用 中指定的那些 dns。dhclient.conf

来自我的文件的示例

#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
supersede domain-name-servers 208.67.220.220;
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers,
    dhcp6.fqdn, dhcp6.sntp-servers;
#require subnet-mask, domain-name-servers;
Run Code Online (Sandbox Code Playgroud)

  • @LuizAngioletti 18.04 正在使用不同类型的网络管理器应用程序,称为“netplan”。此答案是为 18.04 之前的版本编写的。不过我以后可能会更新。 (3认同)