在CentOS系统中,域名解析的配置涉及多个关键文件,主要包含/etc/resolv.conf(DNS客户端配置文件)、/etc/hosts(静态主机名映射文件)、/etc/nsswitch.conf(名称服务切换配置)以及网络接口配置文件(如/etc/sysconfig/network-scripts/ifcfg-eth0)。这些文件共同决定了系统如何将域名解析为IP地址,以及解析的顺序和方式。

最核心的域名配置文件是/etc/resolv.conf。该文件用于指定系统使用的DNS服务器地址和搜索域。其典型内容如下:
nameserver 8.8.8.8 —— 指定DNS服务器IP,可配置多个,每行一个;
nameserver 114.114.114.114 —— 第二个备用DNS服务器;
search example.com —— 设置查询时的默认搜索域,当解析不完整的主机名时自动追加该域。
/etc/hosts是静态主机名与IP映射表,优先级通常由/etc/nsswitch.conf中的hosts行决定。默认配置为:
hosts: files dns —— 表示先查询/etc/hosts,再查询DNS服务器。/etc/hosts文件格式为:
IP地址 主机名 [别名],例如:
192.168.1.10 myhost.example.com myhost。该文件常用于内网主机名解析或临时覆盖DNS解析结果。
/etc/nsswitch.conf中的hosts行控制解析顺序。若需优先使用DNS,可改为:
hosts: dns files。修改该文件后无需重启服务即可生效(除部分缓存服务外)。此文件是系统级名称解析顺序的关键配置。
对于通过NetworkManager管理的网络接口,DNS配置通常保存在/etc/sysconfig/network-scripts/ifcfg-eth0(或ifcfg-ens33等)中。在该文件内可设置:
DNS1=8.8.8.8
DNS2=8.8.4.4
DOMAIN=example.com(对应resolv.conf中的search)。
执行systemctl restart network或nmcli connection reload后,系统会自动根据这些参数生成/etc/resolv.conf。注意:如果直接在/etc/resolv.conf中手动修改,重启网络服务或NetworkManager后可能被覆盖。
在CentOS 7及更早版本中,/etc/sysconfig/network文件也可设置全局网关和HOSTNAME变量,但不直接控制DNS服务器。CentOS 8及后续版本推荐使用nmcli或nmtui等工具管理网络和DNS。例如执行:
nmcli con mod eth0 ipv4.dns "8.8.8.8 114.114.114.114"
nmcli con mod eth0 ipv4.dns-search "example.com"
然后执行nmcli con up eth0 生效。
验证域名解析配置是否生效,可使用cat /etc/resolv.conf查看当前DNS设置,使用nslookup example.com或dig example.com测试解析结果,使用getent hosts example.com检查系统解析顺序。若解析异常,应检查/etc/nsswitch.conf是否被修改、/etc/resolv.conf是否包含有效的nameserver条目,以及网络接口配置文件中的DNS参数是否正确。
总结:CentOS域名配置文件的核心是/etc/resolv.conf,但为了持久化和统一管理,应在网络接口配置或NetworkManager中设置DNS;/etc/hosts适用于静态映射;/etc/nsswitch.conf控制解析优先级。理解这些文件的协作关系,是正确配置CentOS域名解析的基础。

查看详情

查看详情