在CentOS系统中,修改DNS配置是管理网络连接的基础操作之一,DNS(Domain Name System)将域名解析为IP地址,确保设备能访问互联网资源,作为网站站长,我经常需要调整服务器设置以适应不同网络环境,修改DNS不仅能优化访问速度,还能增强安全性和可靠性,本文将详细指导您通过命令行操作修改CentOS的DNS设置,涵盖永久和临时方法,操作前请确保您有root权限或使用sudo命令,避免配置错误导致网络中断。
了解CentOS DNS配置基础
CentOS默认使用NetworkManager管理网络,DNS信息通常存储在/etc/resolv.conf文件中,这个文件是临时性的,重启网络服务或系统后可能被覆盖,修改DNS需考虑持久性配置,常见场景包括更换DNS服务器以提升解析效率(如使用Cloudflare的1.1.1.1或Google的8.8.8.8),或解决域名解析失败问题,开始前,先检查当前DNS设置:

cat /etc/resolv.conf
输出会显示类似nameserver 192.168.1.1的行,表示当前DNS服务器,如果结果为空或错误,说明配置需调整,错误修改可能导致网络不可用,建议备份文件:
cp /etc/resolv.conf /etc/resolv.conf.bak
临时修改DNS(编辑/etc/resolv.conf)
这是最直接的方式,但非永久性,适用于快速测试或临时调整,使用文本编辑器如nano或vi操作:
- 打开文件:
sudo nano /etc/resolv.conf
- 修改或添加nameserver行,添加Cloudflare DNS:
nameserver 1.1.1.1 nameserver 1.0.0.1
删除原有行或注释掉(在行首加#),保存退出(在nano中按Ctrl+O,然后Ctrl+X)。
- 立即生效:无需重启,更改会自动应用,验证:
nslookup example.com
如果解析成功,说明DNS工作正常,注意,重启网络或系统后,此文件可能恢复默认值,因为它由NetworkManager动态生成。
永久修改DNS(使用NetworkManager命令行工具)
推荐此方法,因为它持久且管理简便,NetworkManager的nmcli工具允许通过命令行修改配置,步骤如下:
- 列出当前网络连接:
nmcli connection show
输出显示连接名(如eth0或ens33),记下名称。

- 修改DNS设置,假设连接名为eth0,添加新DNS服务器:
sudo nmcli connection modify eth0 ipv4.dns "1.1.1.1 1.0.0.1"
这里,
ipv4.dns指定IPv4 DNS;若需IPv6,用ipv6.dns,多个DNS用空格分隔。 - 设置DNS获取方式为手动,防止自动覆盖:
sudo nmcli connection modify eth0 ipv4.ignore-auto-dns yes
- 应用更改并重启网络:
sudo nmcli connection down eth0 && sudo nmcli connection up eth0
验证:
systemd-resolve --status | grep 'DNS Servers'
输出应显示新DNS地址,此方法确保配置持久化,重启后不变。
修改NetworkManager配置文件
如果nmcli不可用或需更精细控制,直接编辑配置文件,文件位于/etc/NetworkManager/system-connections/:
- 找到连接配置文件:
sudo ls /etc/NetworkManager/system-connections/
文件名类似eth0.nmconnection。
- 编辑文件:
sudo nano /etc/NetworkManager/system-connections/eth0.nmconnection
- 在
[ipv4]部分添加或修改dns行:[ipv4] dns=1.1.1.1;1.0.0.1; dns-search= method=manual
保存后重启NetworkManager:

sudo systemctl restart NetworkManager
此方法适合高级用户,但需谨慎,避免语法错误。
常见问题与解决
- DNS不生效? 检查防火墙设置:
sudo firewall-cmd --list-all,确保DNS端口53开放,或清除DNS缓存:sudo systemd-resolve --flush-caches。 - 配置被覆盖? 确认未启用DHCP自动获取DNS,在
nmcli中设置ignore-auto-dns或在文件中指定method=manual。 - 测试DNS解析:使用
dig example.com或ping google.com验证,若失败,回滚备份:sudo cp /etc/resolv.conf.bak /etc/resolv.conf。 - 安全建议:选择可靠DNS提供商,避免恶意服务器,定期更新系统:
sudo yum update。
根据我的经验,优先使用nmcli方法,因为它高效且不易出错,特别在生产服务器上,手动编辑文件虽灵活,但风险较高,掌握这些命令能提升服务器管理效率,确保网站稳定运行,作为站长,我强调测试变更在小环境后再部署,避免影响访客访问。
