在CentOS系统中配置正确的DNS服务器是保障服务器稳定访问外部资源的关键步骤,作为系统管理员,掌握DNS配置方法对日常运维工作至关重要,本文将详细介绍CentOS 7及CentOS 8/9系统中设置永久DNS配置的多种方法。
理解DNS配置的重要性

DNS(域名系统)作为互联网的基础服务,负责将域名解析为IP地址,配置不当会导致服务器无法正常访问网络资源,影响软件更新、服务调用等基本功能,正确的DNS配置不仅能提升网络响应速度,还能通过设置多个DNS服务器增强系统可靠性。
CentOS 7系统配置方法
在CentOS 7环境中,我们主要通过修改网络配置文件实现永久DNS设置。
通过以下命令确定需要配置的网络接口:
nmcli device status
找到活跃的网络接口后,进入网络配置文件目录:
cd /etc/sysconfig/network-scripts/
使用文本编辑器打开对应的网络配置文件,文件名通常为ifcfg-后接接口名:

vi ifcfg-enp0s3
在配置文件中定位或添加以下参数:
DNS1=8.8.8.8 DNS2=1.1.1.1
同时确保PEERDNS参数设置为no,防止DHCP客户端覆盖静态DNS设置:
PEERDNS=no
保存文件后,重启网络服务使配置生效:
systemctl restart network
CentOS 8/9系统配置方法
CentOS 8及更新版本采用NetworkManager作为默认网络管理工具,推荐使用nmcli命令进行配置。
查看当前网络连接概况:

nmcli connection show
修改指定连接的DNS配置,将连接名替换为实际名称:
nmcli connection modify "连接名" ipv4.dns "8.8.8.8,1.1.1.1"
设置DNS获取方式为手动:
nmcli connection modify "连接名" ipv4.ignore-auto-dns yes
重新激活网络连接:
nmcli connection up "连接名"
通过resolv.conf文件配置
除了上述方法,还可以直接编辑/etc/resolv.conf文件设置DNS,但需要注意的是,在启用NetworkManager的系统上,重启后手动修改可能被覆盖。
打开resolv.conf文件:
vi /etc/resolv.conf
添加或修改nameserver行:
nameserver 8.8.8.8 nameserver 1.1.1.1
为防止文件被覆盖,可以设置不可变属性:
chattr +i /etc/resolv.conf
取消不可变属性时使用:
chattr -i /etc/resolv.conf
验证DNS配置
完成配置后,必须验证DNS是否正常工作。
检查resolv.conf文件内容:
cat /etc/resolv.conf
使用nslookup测试域名解析:
nslookup google.com
使用dig命令进行详细诊断:
dig linux.org
ping测试网络连通性:
ping -c 4 baidu.com
实用技巧与注意事项
多DNS服务器配置能提高解析可靠性,建议设置3-4个不同的DNS服务器,包括本地运营商DNS和公共DNS。
在企业环境中,考虑搭建本地DNS缓存服务器如dnsmasq,能显著提升解析速度并减少外部查询。
排查DNS故障时,可按以下步骤进行:
- 检查resolv.conf文件权限和格式
- 确认防火墙未阻断DNS查询
- 测试DNS服务器端口连通性
- 查看系统日志获取详细错误信息
对于容器化环境,需注意Docker等运行时可能修改resolv.conf文件,建议在容器启动时明确指定DNS配置。
正确配置DNS是CentOS系统网络管理的基础技能,选择适合系统版本的配置方法,并遵循最佳实践,能够确保服务器在网络环境中稳定运行,掌握这些技巧后,管理员能够快速部署和排查DNS相关問題,为各项网络服务提供可靠基础。
