CentOS 7 配置 DNS 文件详细指南
DNS 基础概念
1 什么是 DNS?
DNS(Domain Name System)是互联网的核心服务之一,负责将人类可读的域名(如 www.example.com
)转换为计算机可识别的 IP 地址(如 168.1.1
),在 Linux 系统中,DNS 配置直接影响网络访问速度和稳定性。
2 DNS 的工作流程
- 客户端请求:系统向 DNS 服务器发起域名解析请求。
- 递归查询:DNS 服务器逐级查询权威 DNS 服务器。
- 缓存优化:系统缓存解析结果以加速后续访问。
CentOS 7 DNS 配置文件位置
CentOS 7 的 DNS 配置主要涉及以下文件:
| 文件路径 | 作用描述 |
|||
| /etc/resolv.conf
| 主配置文件,定义 DNS 服务器和选项 |
| /etc/sysconfig/networkscripts/ifcfg*
| 网络接口配置文件,部分旧版网络服务在此配置 DNS |
| /etc/NetworkManager/systemconnections/
| NetworkManager 管理的连接配置文件(图形界面工具生成) |
配置方法详解
1 直接编辑 /etc/resolv.conf
步骤:
-
备份原文件:
cp /etc/resolv.conf /etc/resolv.conf.bak
-
编辑文件:
nano /etc/resolv.conf
-
添加 DNS 服务器(示例):
# 阿里云公共 DNS nameserver 223.5.5.5 nameserver 223.6.6.6 # Google 公共 DNS nameserver 8.8.8.8 nameserver 8.8.4.4
注意事项:
nameserver
按顺序优先查询,建议将响应速度快的 DNS 放在前面。- 仅修改此文件适用于传统网络服务(
service network restart
生效)。
2 通过 NetworkManager 配置(推荐)
步骤:
- 打开网络连接编辑界面:
nmtui # 或使用图形界面命令 `nmconnectioneditor`
- 选择目标网络连接,进入 IPv4 设置。
- 手动配置 DNS:
- DNS 服务器:填写
8.8.8, 8.8.4.4
(逗号分隔)。 - 自动获取 DNS 信息:取消勾选。
- DNS 服务器:填写
- 保存并重启网络:
systemctl restart NetworkManager
优势:
- 配置持久化,重启后自动生效。
- 支持多连接独立配置。
3 通过 ifcfgeth0
配置(旧版方法)
适用场景:
未使用 NetworkManager 的静态网络配置。
步骤:
- 编辑网络接口文件:
nano /etc/sysconfig/networkscripts/ifcfgeth0
- 添加 DNS 配置:
DNS1=8.8.8.8 DNS2=8.8.4.4
- 重启网络服务:
service network restart
DNS 配置验证
1 使用 nslookup
nslookup www.baidu.com
输出示例:
Name: www.a.shifen.com Address: 180.101.49.11
2 使用 dig
dig +short www.google.com @8.8.8.8
输出示例:
250.72.196
3 查看 DNS 缓存
/var/lib/NetworkManager/dnsresolver # NetworkManager 缓存目录
高级配置与优化
1 配置 DNS 搜索域
在 /etc/resolv.conf
中添加:
search example.com # 简化域名输入(如输入 `host` 等效于 `host.example.com`)
2 启用 DNSSEC 验证
在 /etc/resolv.conf
中添加:
options edns0 trustanchor=/root/trustanchor.key # 需要下载根密钥文件
3 使用本地 DNS 缓存服务
安装 dnsmasq
:
yum install dnsmasq y
配置 /etc/dnsmasq.conf
:
cachesize=1000 noresolv server=8.8.8.8
启动服务:
systemctl start dnsmasq
常见问题与解决方案
问题描述 | 解决方案 |
---|---|
DNS 解析失败 | 检查 /etc/resolv.conf 语法错误;确认网络连通性;尝试更换 DNS 服务器 |
配置不生效 | 确认修改的是正确配置文件(如 NetworkManager 配置优先于 resolv.conf ) |
域名解析延迟高 | 添加多个公共 DNS 服务器(如阿里、Google、腾讯);启用本地缓存服务 |
相关问题与解答
Q1: 如何临时切换 DNS 服务器?
A1: 直接编辑 /etc/resolv.conf
,修改后无需重启网络服务即可生效,但此方法在重启后可能被覆盖(需配合永久配置)。
Q2: CentOS 7 中 NetworkManager 与 /etc/resolv.conf
的优先级关系?
A2: NetworkManager 会覆盖 /etc/resolv.conf
的配置,若两者冲突,应以 NetworkManager 的配置文件为准,建议统一通过 NetworkManager 管理 DNS
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/196015.html