nmcli 不允许我从 /etc/resolv.conf 中删除 DNS 条目

nmcli 不允许我从 /etc/resolv.conf 中删除 DNS 条目

Centos 7.5,nmcli 版本 1.20.2

每当我尝试从 /etc/resolv.conf 中删除条目时,都会收到以下错误。

[root@client ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search home
nameserver 8.8.8.8
nameserver 192.168.1.1
[root@client ~]# nmcli connection modify enp0s3 -ipv4.dns 8.8.8.8
Error: failed to remove a value from ipv4.dns: the property doesn't contain DNS server '8.8.8.8'.
[root@client ~]# nmcli device show enp0s3 
GENERAL.DEVICE:                         enp0s3
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         08:00:27:FA:EE:AC
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     enp0s3
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/4
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.1.8/24
IP4.GATEWAY:                            192.168.1.1
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 100
IP4.ROUTE[2]:                           dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             8.8.8.8
IP4.DNS[2]:                             192.168.1.1
IP6.ADDRESS[1]:                         fe80::18c:3f05:dcaf:65fd/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[2]:                           dst = fe80::/64, nh = ::, mt = 256
IP6.ROUTE[3]:                           dst = fe80::/64, nh = ::, mt = 100
[root@client ~]# systemctl is-active NetworkManager
active

答案1

我今天已经这样做了,它可以在 RHEL8 机器上运行:

nmcli con mod "System eth0" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con mod "System eth0" ipv4.ignore-auto-dns yes
nmcli con mod "System eth0" ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
nmcli con mod "System eth0" ipv6.ignore-auto-dns yes
nmcli con up id "System eth0"

请注意,这是使用 Google DNS IPv4 和 IPv6 地址。我没有必要修改/etc/NetworkManager/NetworkManager.conf

答案2

我似乎已经让它工作了,方法是将其添加到[main] 部分下的文件,然后重新dns=none启动/etc/NetworkManager/NetworkManager.confNetworkManager

然后我可以将 DNS 条目添加到/etc/sysconfig/network-scripts/ifcfg*文件中,如下所示

DNS1=192.168.1.175
DNS2=192.168.1.176

或者直接/etc/resolv.conf使用vim

答案3

这些大写字母的值是经过计算的 - 如果未手动提供,则从 DHCP 获取。看看条目ipv4.dns。我打赌你的是空的。

如果您愿意 - 通过设置 DNS 条目自行添加它们:

nmcli connection modify enp0s3 ipv4.dns 192.168.1.1
nmcli connection down enp0s3
nmcli connection up enp0s3

编辑:确实我在这里犯了一个错字。看看上面。

相关内容