系統重啟后/etc/resolv.conf 被重置
1 [root@my-test-host ~]# cat /etc/resolv.conf 2 # Generated by NetworkManager
當前網卡配置文件
1 [root@my-test-host ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 2 3 # Created by cloud-init on instance boot automatically, do not edit. 4 # 5 DEVICE=eth0 6 HWADDR=FA:16:3E:C1:B6:67 7 MTU=1450 8 ONBOOT=yes 9 TYPE=Ethernet 10 USERCTL=no 11 IPADDR=10.200.5.164 12 PREFIX=24 13 GATEWAY=10.200.5.1 14 IPV6INIT=yes 15 IPV6ADDR=2409:8c60:2500:28::405:5a4/112 16 IPV6_DEFAULTGW=2409:8c60:2500:28::405:1 17 PROXY_METHOD=none 18 BROWSER_ONLY=no 19 DEFROUTE=yes 20 IPV4_FAILURE_FATAL=no 21 IPV6_AUTOCONF=yes 22 IPV6_DEFROUTE=yes 23 IPV6_FAILURE_FATAL=no 24 NAME="System eth0" 25 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 26 BOOTPROTO=none
使用nmcli添加DNS服務器
[root@my-test-host ~]# nmcli c modify "System eth0" ipv4.dns "10.200.5.4 10.200.6.4"
nmcli添加DNS后/etc/resolv.conf 中並沒有相應的配置生成。此時也不能完成域名解析,也就是說雖然通過nmcli已經添加DNS server但系統最終還是會去/etc/resolv.conf查詢dns server配置。
1 [root@my-test-host ~]# cat /etc/resolv.conf 2 # Generated by NetworkManager 3 [root@my-test-host ~]# nmcli c s "System eth0" |grep dns 4 connection.mdns: -1 (default) 5 ipv4.dns: 10.200.5.4,10.200.6.4 6 ipv4.dns-search: -- 7 ipv4.dns-options: -- 8 ipv4.dns-priority: 0 9 ipv4.ignore-auto-dns: no 10 ipv6.dns: -- 11 ipv6.dns-search: -- 12 ipv6.dns-options: -- 13 ipv6.dns-priority: 0 14 ipv6.ignore-auto-dns: no 15 [root@my-test-host ~]# ping www.baidu.com 16 ping: www.baidu.com: Name or service not known
查看網卡配置,多出的兩條DNS配置是通過nmcli添加DNS時自動更新的。
1 [root@my-test-host ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 2 # Created by cloud-init on instance boot automatically, do not edit. 3 # 4 DEVICE=eth0 5 HWADDR=FA:16:3E:C1:B6:67 6 MTU=1450 7 ONBOOT=yes 8 TYPE=Ethernet 9 USERCTL=no 10 IPADDR=10.200.5.164 11 PREFIX=24 12 GATEWAY=10.200.5.1 13 IPV6INIT=yes 14 IPV6ADDR=2409:8c60:2500:28::405:5a4/112 15 IPV6_DEFAULTGW=2409:8c60:2500:28::405:1 16 PROXY_METHOD=none 17 BROWSER_ONLY=no 18 DEFROUTE=yes 19 IPV4_FAILURE_FATAL=no 20 IPV6_AUTOCONF=yes 21 IPV6_DEFROUTE=yes 22 IPV6_FAILURE_FATAL=no 23 NAME="System eth0" 24 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 25 BOOTPROTO=none 26 DNS1=10.200.5.4 27 DNS2=10.200.6.4
嘗試reload/load網卡配置,還是無法進行域名解析
[root@my-test-host ~]# nmcli c reload /etc/sysconfig/network-scripts/ifcfg-eth0 [root@my-test-host ~]# cat /etc/resolv.conf # Generated by NetworkManager [root@my-test-host ~]# ping www.baidu.com ping: www.baidu.com: Name or service not known [root@my-test-host ~]# nmcli c load /etc/sysconfig/network-scripts/ifcfg-eth0 [root@my-test-host ~]# ping www.baidu.com ping: www.baidu.com: Name or service not known
重啟NetworkManager 后/etc/resolv.conf 自動更新了DNS server
1 [root@my-test-host ~]# systemctl restart NetworkManager 2 [root@my-test-host ~]# cat /etc/resolv.conf 3 # Generated by NetworkManager 4 nameserver 10.200.5.4 5 nameserver 10.200.6.4
通過命令nmcli清除DNS並重啟NetworkManager,發現/etc/resolv.conf 中之前添加的nameserver並沒有被清理,但ifcfg-eth0中的配置被清理了。也就是說重啟NetworkManager會增加/etc/resolv.conf中的配置,但似乎不會刪除已有配置。當然reboot后/etc/resolv.conf還是會被重置的。
1 [root@my-test-host ~]# nmcli c modify "System eth0" ipv4.dns "" 2 [root@my-test-host ~]# systemctl restart NetworkManager 3 [root@my-test-host ~]# cat /etc/resolv.conf 4 # Generated by NetworkManager 5 nameserver 10.200.5.4 6 nameserver 10.200.6.4 7 [root@my-test-host ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 8 # Created by cloud-init on instance boot automatically, do not edit. 9 # 10 DEVICE=eth0 11 HWADDR=FA:16:3E:C1:B6:67 12 MTU=1450 13 ONBOOT=yes 14 TYPE=Ethernet 15 USERCTL=no 16 IPADDR=10.200.5.164 17 PREFIX=24 18 GATEWAY=10.200.5.1 19 IPV6INIT=yes 20 IPV6ADDR=2409:8c60:2500:28::405:5a4/112 21 IPV6_DEFAULTGW=2409:8c60:2500:28::405:1 22 PROXY_METHOD=none 23 BROWSER_ONLY=no 24 DEFROUTE=yes 25 IPV4_FAILURE_FATAL=no 26 IPV6_AUTOCONF=yes 27 IPV6_DEFROUTE=yes 28 IPV6_FAILURE_FATAL=no 29 NAME="System eth0" 30 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 31 BOOTPROTO=none 32 [root@my-test-host ~]#
再測試下發現,當通過nmcli清空DNS時,重啟NetworkManager服務/etc/resolv.conf 不會被重置,但通過nmcli改變了原來DNS配置(也就是ifcfg-eth0中的配置),重啟NetworkManage是會更新/etc/resolv.conf的。如果不想/etc/resolv.conf被重置可參考:https://www.cnblogs.com/my-show-time/p/14218751.html
1 [root@my-test-host ~]# nmcli c modify "System eth0" ipv4.dns "8.8.8.8" 2 [root@my-test-host ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 3 # Created by cloud-init on instance boot automatically, do not edit. 4 # 5 DEVICE=eth0 6 HWADDR=FA:16:3E:C1:B6:67 7 MTU=1450 8 ONBOOT=yes 9 TYPE=Ethernet 10 USERCTL=no 11 IPADDR=10.198.5.164 12 PREFIX=24 13 GATEWAY=10.198.5.1 14 IPV6INIT=yes 15 IPV6ADDR=2409:8c60:2500:28::405:5a4/112 16 IPV6_DEFAULTGW=2409:8c60:2500:28::405:1 17 PROXY_METHOD=none 18 BROWSER_ONLY=no 19 DEFROUTE=yes 20 IPV4_FAILURE_FATAL=no 21 IPV6_AUTOCONF=yes 22 IPV6_DEFROUTE=yes 23 IPV6_FAILURE_FATAL=no 24 NAME="System eth0" 25 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 26 BOOTPROTO=none 27 DNS1=8.8.8.8 28 [root@my-test-host ~]# cat /etc/resolv.conf 29 # Generated by NetworkManager 30 nameserver 10.198.5.4 31 nameserver 10.198.6.4 32 [root@my-test-host ~]# systemctl restart NetworkManager 33 [root@my-test-host ~]# cat /etc/resolv.conf 34 # Generated by NetworkManager 35 nameserver 8.8.8.8 36 [root@my-test-host ~]# sed -i '/DNS1/d' /etc/sysconfig/network-scripts/ifcfg-eth0 37 [root@my-test-host ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 38 # Created by cloud-init on instance boot automatically, do not edit. 39 # 40 DEVICE=eth0 41 HWADDR=FA:16:3E:C1:B6:67 42 MTU=1450 43 ONBOOT=yes 44 TYPE=Ethernet 45 USERCTL=no 46 IPADDR=10.198.5.164 47 PREFIX=24 48 GATEWAY=10.198.5.1 49 IPV6INIT=yes 50 IPV6ADDR=2409:8c60:2500:28::405:5a4/112 51 IPV6_DEFAULTGW=2409:8c60:2500:28::405:1 52 PROXY_METHOD=none 53 BROWSER_ONLY=no 54 DEFROUTE=yes 55 IPV4_FAILURE_FATAL=no 56 IPV6_AUTOCONF=yes 57 IPV6_DEFROUTE=yes 58 IPV6_FAILURE_FATAL=no 59 NAME="System eth0" 60 UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 61 BOOTPROTO=none 62 [root@my-test-host ~]# systemctl restart NetworkManager 63 [root@my-test-host ~]# cat /etc/resolv.conf 64 # Generated by NetworkManager 65 nameserver 8.8.8.8 66 [root@my-test-host ~]#