DNS解析默认使用UDP协议向DNS服务器的53端口发送DNS查询数据包。由于机房可能封禁UDP协议,导致服务器的DNS无法正常解析,因此需要将服务器的DNS改为TCP协议。
最终解析文件配置在/etc/resolv.conf
,但由于centOS使用NetworkManager管理网络连接包括DNS,因此重启后resolv.conf会被恢复。
正确的配置方法:
1. 使用nmcli connection show
命令查看网络连接。找出本机网卡对应的NAME值,此处是System eth0。
1 2 3 | [root@hk-01 ~]# nmcli connection show NAME UUID TYPE DEVICE System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0 |
1.1(可选) 由于name值System eth0输入后续命令时,需要写成nmcli connection modify "System eth0"
形式,不方便,因此先使用命令nmcli connection modify "System eth0" connection.id "eth0"
修改name值。
2. 使用nmcli connection modify eth0 ipv4.dns "8.8.8.8,1.1.1.1"
命令修改本机网卡的ipv4.dns配置项。
3. 使用nmcli connection modify eth0 +ipv4.dns-options "use-vc"
命令修改本机网卡的ipv4.dns-options配置项。eth0对应上面找出的NAME值。+号表示附加修改配置项,不带+号表示覆盖修改配置项,use-vc是使用TCP协议。有多个配置项用"use-vc,edns0,timeout:5"方法表示。
4. 使用nmcli connection show eth0 | grep ipv4.dns-options
命令查看修改结果。
1 2 | [root@hk-01 ~]# nmcli connection show eth0 | grep ipv4.dns-options ipv4.dns-options: "use-vc" |
5. 使用nmcli connection up eth0
命令刷新生效配置,无需重启。
1 2 | root@hk-01 ~]# nmcli connection up eth0 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5) |
参考资料
resolv.conf配置——https://man7.org/linux/man-pages/man5/resolv.conf.5.html
nmcli IPv4 Settings Properties——https://developer-old.gnome.org/NetworkManager/stable/settings-ipv4.html
https://bugzilla.redhat.com/show_bug.cgi?id=1783989
文章评论