CentOS 服务器修改 DNS 地址简明指南
当您的 CentOS 服务器突然无法解析域名,导致网站、邮件或其他关键服务中断,排查后发现问题出在 DNS 配置上——这种场景对于运维人员来说并不陌生,及时准确地配置 DNS 服务器地址,是保障服务器稳定联网、服务正常运转的关键一环,以下是针对主流 CentOS 版本(7 与 8)修改 DNS 地址的详细操作指引。
DNS 为何如此重要? DNS(域名系统)如同互联网的“电话簿”,负责将我们熟悉的域名(如 www.example.com)转换为机器可识别的 IP 地址(如 0.2.1),DNS 配置错误或使用的 DNS 服务器不可靠、响应缓慢,会导致:

- 服务器无法访问外部网络资源(软件更新失败、依赖下载卡顿)。
- 用户访问您的网站体验变差(域名解析延迟)。
- 关键服务(邮件发送、API 调用)中断。
- 甚至可能遭遇 DNS 缓存污染或劫持风险。
修改前的关键准备
- 明确新的 DNS 地址: 记录下计划使用的 DNS 服务器 IP 地址,可靠选择包括:
- 公共 DNS:
8.8.8、8.4.4(Google);1.1.1、0.0.1(Cloudflare);5.5.5、6.6.6(阿里云)。 - 企业内网 DNS:由您的网络管理员提供。
- 运营商 DNS:通常自动获取,但手动指定更稳定。
- 公共 DNS:
- 确定网络管理方式: CentOS 7+ 主要使用
NetworkManager或传统的network服务管理网络,输入systemctl status NetworkManager查看其状态(active (running)表示启用)。 - 备份配置文件:至关重要! 修改前备份相关配置:
sudo cp /etc/sysconfig/network-scripts/ifcfg-* /root/network_backup/ # 传统方式备份 sudo cp /etc/NetworkManager/system-connections/*.nmconnection /root/nm_backup/ # NetworkManager 备份 sudo cp /etc/resolv.conf /root/resolv.conf.bak
CentOS 7 修改 DNS 方法使用 NetworkManager (推荐且常用)
- 编辑连接配置: 找到您要修改的网络连接名(如
ens192,用nmcli con show查看):sudo nmcli con mod "YourConnectionName" ipv4.dns "8.8.8.8 8.8.4.4" # 替换为您的DNS
sudo nmcli con mod "Wired connection 1" ipv4.dns "223.5.5.5 223.6.6.6" - 设置 DNS 优先级: 防止其他服务覆盖:
sudo nmcli con mod "YourConnectionName" ipv4.ignore-auto-dns yes
- 应用配置并重启连接:
sudo nmcli con down "YourConnectionName" && sudo nmcli con up "YourConnectionName"
修改配置文件 (传统 network 服务或无 NetworkManager)
- 编辑网卡配置文件: 找到对应网卡的配置文件(如
/etc/sysconfig/network-scripts/ifcfg-ens192):sudo vi /etc/sysconfig/network-scripts/ifcfg-ens192
- 修改或添加参数:
DNS1=8.8.8.8 # 主 DNS DNS2=8.8.4.4 # 备 DNS PEERDNS=no # 禁止 DHCP 覆盖 DNS 设置
- 重启网络服务:
sudo systemctl restart network
CentOS 8 / Rocky Linux 8 / AlmaLinux 8 修改 DNS CentOS 8 及替代发行版主要依赖 NetworkManager,操作更统一:
- 使用 nmcli 修改:
sudo nmcli con mod "YourConnectionName" ipv4.dns "1.1.1.1 1.0.0.1" # 替换为您的DNS sudo nmcli con mod "YourConnectionName" ipv4.ignore-auto-dns yes sudo nmcli con down "YourConnectionName" && sudo nmcli con up "YourConnectionName"
- 使用 nmtui (文本界面工具): 运行
sudo nmtui,选择 “Edit a connection”,找到对应连接,在IPv4 CONFIGURATION里手动填写 DNS servers,并将Automatically设为Ignore,保存退出后重启连接。
验证 DNS 配置

- 检查
/etc/resolv.conf:cat /etc/resolv.conf
确认
nameserver行已更新为您设置的地址,注意:此文件通常由网络服务管理,不建议直接编辑它,因为它可能被覆盖。 - 使用
dig或nslookup测试:dig @8.8.8.8 example.com +short # 指定 DNS 服务器测试 nslookup google.com # 使用系统配置的 DNS 测试
观察是否能返回正确的 IP 地址。
- 全面网络连通性测试:
ping -c 4 google.com # 测试域名解析和基础连通性 curl -Iv https://example.com # 测试 HTTPS 访问
维护建议与个人观点
- 选择可靠 DNS: 公共 DNS 速度快、安全性较好;内网 DNS 则保障本地解析,避免使用不知名或响应慢的服务。
- 主备配置: 至少设置两个不同的 DNS 服务器提升冗余性。
- 定期检查: 网络环境变更或系统更新后,检查 DNS 配置是否依然有效。
- 锁定 resolv.conf (可选): 若遇到配置被意外覆盖,可设置不可变标志:
sudo chattr +i /etc/resolv.conf # 谨慎使用,确保配置完全正确后再锁定
- 注意 systemd-resolved: 部分较新发行版启用此服务管理 DNS,若使用它,需通过其配置文件或
resolvectl命令设置。
作为长期管理服务器基础设施的一员,我始终认为清晰、正确的 DNS 配置是系统稳定性的基石之一,它看似只是几个数字的设定,却直接影响着服务的可达性与用户体验,一次成功的 DNS 修改,不仅能解决眼前的解析故障,更是对服务器长期健康运行的一次有效维护,主动管理和验证网络配置,远比在故障发生后紧急排查更有价值。
操作时请务必保持谨慎,并在测试环境验证无误后再应用于生产服务器,精准的配置管理是高效运维的核心能力体现。

