CentOS 7中,编辑
/etc/resolv.conf
文件添加DNS服务器地址如nameserver 8.8.8.8
等即可配置DNS,也可通过修改网络接口配置文件设置静态IP时CentOS 7配置DNS地址详解
在CentOS 7系统中,正确配置DNS服务器是保障网络通信顺畅的关键步骤,以下是详细的操作指南,涵盖多种方法和注意事项:
直接修改/etc/resolv.conf文件(推荐)
这是最常用且直观的方式,适用于客户端手动指定DNS服务器的场景。
- 备份原有配置
执行命令:cp /etc/resolv.conf /etc/resolv.conf.backup
,防止误操作导致系统无法解析域名。 - 编辑配置文件
使用文本编辑器打开文件:
✅vi /etc/resolv.conf
或nano /etc/resolv.conf
添加或修改以下内容(可同时设置多个DNS):nameserver 8.8.8.8 # Google公共DNS nameserver 8.8.4.4 # Google备用DNS nameserver 223.5.5.5 # 阿里云DNS(适合国内用户)
📌 注意:顺序决定优先级,靠前的为首选DNS;若需避免被动态工具覆盖,需配合后续方法二的操作。
- 保存并重启网络服务
- Vi编辑器:按
Esc
键后输入:wq
保存退出。 - Nano编辑器:按
Ctrl+O
保存,再按Ctrl+X
退出。
执行命令使配置生效:systemctl restart network
。
- Vi编辑器:按
- 验证生效结果
通过命令检查当前使用的DNS列表:cat /etc/resolv.conf
;测试解析能力:dig www.baidu.com
或nslookup example.com
。
通过网络接口脚本持久化配置(防覆盖)
当系统使用NetworkManager或DHCP自动获取IP时,直接修改/etc/resolv.conf
可能被重置,此时可通过修改对应网卡的配置文件实现永久生效。
- 定位目标接口文件
通常路径为/etc/sysconfig/networkscripts/ifcfg<接口名>
(如物理网卡ifcfgeth0
),若存在多个虚拟接口(如docker),需逐一处理。 - 追加DNS参数
在文件中增加以下字段:DNS1=8.8.8.8 # 首选DNS DNS2=8.8.4.4 # 备用DNS PEERDNS=no # 禁止从上级设备获取DNS(避免冲突)
- 重启网络服务应用更改
执行命令:systemctl restart network
,此方法会将DNS设置嵌入到接口启动脚本中,确保重启后依然有效。
搭建本地DNS服务器(高级场景)
如果需要为局域网提供自定义域名解析服务,可部署BIND软件包构建权威/缓存DNS。
- 安装必要组件
运行命令安装依赖项:sudo yum install y bind bindutils
- 配置主区域文件
编辑主配置文件/etc/named.conf
,定义正向和反向解析区域示例:# 正向解析示例(yourdomain.com) zone "yourdomain.com" IN { type master; file "/var/named/yourdomain.com.zone"; }; # 反向解析示例(对应子网192.168.10.0/24) zone "10.168.192.inaddr.arpa" IN { type master; file "/var/named/192.168.10.rev"; };
- 创建数据存储文件
根据上述配置新建两个文件并填充记录:- 正向解析文件(
/var/named/yourdomain.com.zone
):$TTL 86400 @ IN SOA ns1.yourdomain.com. admin.yourdomain.com. ( 2025073001 ;Serial Number 3600 ;Refresh间隔 1800 ;Retry重试时间 604800 ;Expire过期时间 86400 ) ;Minimum TTL IN NS ns1.yourdomain.com. IN NS ns2.yourdomain.com. ns1 IN A 192.168.10.1 ns2 IN A 192.168.10.2 www IN A 192.168.10.3
- 反向解析文件(
/var/named/192.168.10.rev
):$TTL 86400 @ IN SOA ns1.yourdomain.com. admin.yourdomain.com. ( 2025073001 ;Serial Number 3600 ;Refresh间隔 1800 ;Retry重试时间 604800 ;Expire过期时间 86400 ) ;Minimum TTL IN NS ns1.yourdomain.com. 1 IN PTR ns1.yourdomain.com. 2 IN PTR ns2.yourdomain.com. 3 IN PTR www.yourdomain.com.
- 正向解析文件(
- 启动服务并设置为开机自启
依次执行:sudo systemctl start named # 立即启动服务 sudo systemctl enable named # 加入开机启动项
- 测试功能是否正常
使用工具验证本地解析效果:dig @localhost www.yourdomain.com # 正向查询测试 dig @localhost x 192.168.10.3 # 反向查询测试
常见问题与解答
序号 | 问题描述 | 解决方案 |
---|---|---|
1 | 修改/etc/resolv.conf 后不起作用怎么办? |
检查是否存在NetworkManager或DHCP覆盖问题,改用方法二的配置方式(设置PEERDNS=no )。 |
2 | 如何确认当前使用的DNS服务器是否已更新? | 执行命令cat /etc/resolv.conf 查看最新列表;通过dig 或nslookup 测试解析结果是否符合预期。 |
扩展建议
- 性能优化:优先选择延迟低、响应快的公共DNS(如Cloudflare的
1.1.1
)。 - 安全性增强:启用DNSSEC验证机制,防止缓存投毒攻击。
- 监控维护:定期检查日志文件(位于
/var/log/messages
),排查异常请求来源