如何使用网络管理器在 Fedora 中设置 DNS 解析器?

wvx*_*xvw 17 linux fedora dns networkmanager

我想试用 Google 公共 DNS。为此,我需要更改名称服务器地址。我知道它在文件中/etc/resolv.conf,但是每当我启动时network-manager,它都会用它通过使用 DHCP 获得的值覆盖该文件中的值。

我怎么告诉它不要这样做?我查看了 GUI,但我只能找到添加更多 IP 地址的选项。

下面是奖杯:)

在此处输入图片说明

Rah*_*til 12

方法#1

找到 NetworkManager 配置文件并添加/修改以下条目(在 CentOS5 中为/etc/NetworkManager/nm-system-settings.conf/etc/NetworkManager/system-connections/)并编辑您的 DSL 连接文件:

[ipv4]
method=auto
dns=8.8.8.8;4.2.2.2;
ignore-auto-dns=true
Run Code Online (Sandbox Code Playgroud)

注意:- 如果[ipv4]不起作用,请尝试使用[ppp]

方法#2

您可以更改 的权限/etc/resolv.conf,使其无法被其他服务写入,或者您可以使用chattr.

方法#3

创建一个如下所述的脚本/etc/Networkmanager/dispatcher.d/,不要忘记使其可执行:

#!/bin/bash
#
# Override /etc/resolv.conf and tell
# NetworkManagerDispatcher to go pluck itself.
#
# scripts in the /etc/NetworkManager/dispatcher.d/ directory
# are called alphabetically and are passed two parameters:
# $1 is the interface name, and $2 is "up" or "down" as the
# case may be.

# Here, no matter what interface or state, override the
# created resolver config with my config.

cp -f /etc/resolv.conf.myDNSoverride /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

进入 /etc/resolv.conf.myDNSoverride

nameserver 8.8.8.8
Run Code Online (Sandbox Code Playgroud)


ric*_*2hs 8

看一下:

$ man NetworkManager.conf
Run Code Online (Sandbox Code Playgroud)

看来,如果您dns=none在该[main]部分中添加一行, NetworkManager 将不会触摸/etc/resolv.conf

  • 好的,所以在 Fedora 24 上的 `/etc/NetworkManager` 中设置 `dns=none` ...(在 `/etc/sysconfig/network-scripts/ifcfg-${IFNAME} 中还有旧的 `PEERDNS=none` `(如[此处]所述(https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-networkscripts-interfaces.html)例如......它是否仍在使用?)。 .. 重新启动整个盒子进行检查。它有效。 (3认同)
  • 编辑文件后是否重新启动了 NetworkManager? (2认同)