CentOS网络DNS配置文件为/etc/resolv.conf或/etc/sysconfig/networkscripts/
CentOS网络DNS配置文件详解
DNS基础概念
1 什么是DNS
域名系统(Domain Name System,简称DNS)是互联网的核心服务之一,负责将人类可读的域名(如www.example.com)转换为计算机可识别的IP地址(如192.168.1.1),在CentOS系统中,DNS配置直接影响网络访问能力和服务可用性。
2 DNS工作流程
- 客户端发起域名解析请求
- 系统查询本地DNS配置文件
- 逐级查询DNS服务器直至获取结果
- 返回IP地址并建立连接
核心配置文件解析
1 /etc/resolv.conf文件
参数 | 说明 | 示例 |
---|---|---|
nameserver | 指定DNS服务器地址 | nameserver 8.8.8.8 |
search | 定义域名后缀搜索域 | search example.com |
options | 设置DNS查询选项 | options ndots:2 |
典型配置示例:
# 默认DNS服务器配置 nameserver 114.114.114.114 nameserver 8.8.8.8 search localdomain options singlerequestreopen
2 网络接口配置文件
路径:/etc/sysconfig/networkscripts/ifcfg[接口名]
参数 | 说明 | 取值示例 |
---|---|---|
DEVICE | 网络接口名称 | eth0 |
BOOTPROTO | 启动协议类型 | static/dhcp |
IPADDR | IP地址 | 168.1.100 |
NETMASK | 子网掩码 | 255.255.0 |
GATEWAY | 默认网关 | 168.1.1 |
DNS1 | 主DNS服务器 | 8.8.8 |
DNS2 | 备用DNS服务器 | 8.4.4 |
DEFDOMAIN | 默认搜索域 | local.net |
PEERDNS | 是否使用对端DNS配置 | no/yes |
PEERROUTES | 是否使用对端路由配置 | no/yes |
完整配置示例:
DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4 DEFDOMAIN=local.net PEERDNS=no PEERROUTES=no ONBOOT=yes
%ignore_a_3% NetworkManager配置
路径:/etc/NetworkManager/systemconnections/[连接名称].nmconnection
关键字段:
[ethernet]
或[wireless]
段下的dns配置dns
数组参数(优先于/etc/resolv.conf)ignoreautodns
参数控制是否忽略DHCP分配的DNS
配置片段示例:
[ethernet] ... dns=["114.114.114.114", "223.5.5.5"]; ignoreautodns=true; ...
静态与动态配置方式
1 静态配置方法
- 直接编辑
/etc/resolv.conf
- 修改网络接口配置文件中的DNS参数
- 通过NetworkManager图形界面配置
2 动态配置场景
当BOOTPROTO=dhcp时:
- DNS服务器由DHCP服务器自动分配
- 记录保存在
/var/lib/dhclient/*
目录 - 需设置
PEERDNS=yes
启用自动分配的DNS
配置验证与排错
1 验证命令集锦
命令 | 功能说明 | 示例输出 |
---|---|---|
cat /etc/resolv.conf |
查看当前DNS配置 | nameserver 8.8.8.8 |
nmcli connection show |
查看NetworkManager配置 | DNS: 8.8.8.8, 8.8.4.4 |
systemctl status network |
检查网络服务状态 | active (running) |
nslookup www.baidu.com |
测试域名解析 | 125.114.114 |
dig +short github.com |
快速查询IP地址 | 82.121.4 |
hostname I |
显示所有IP地址 | 168.1.100 |
2 常见问题解决方案
问题1:DNS配置不生效
- 检查
/etc/resolv.conf
权限(应为root:root 644) - 确认NetworkManager未覆盖配置(设置
managed=false
) - 重启网络服务:
systemctl restart network
问题2:域名解析延迟高
- 更换公共DNS服务器(推荐阿里DNS 223.5.5.5)
- 增加DNS服务器数量(最多3个)
- 检查防火墙设置(放行UDP 53端口)
高级配置技巧
1 自定义DNS搜索域
通过/etc/resolv.conf
的search
参数或网络脚本的DEFDOMAIN
参数,可实现:
- 简化域名输入(如输入
server
相当于server.local.net
) - 多搜索域配置格式:
search local.net example.com
2 DNS缓存配置
编辑/etc/sysctl.conf
:
# 增加以下参数 vm.namecache_size=1500 vm.dirty_ratio=10
应用配置:sysctl p
常见问题与解答
Q1:如何永久设置Google公共DNS?
解答步骤:
- 编辑网络接口配置文件:
vi /etc/sysconfig/networkscripts/ifcfgeth0
- 添加/修改以下参数:
DNS1=8.8.8.8 DNS2=8.8.4.4
- 重启网络服务:
systemctl restart network
- 验证配置:
cat /etc/resolv.conf
Q2:NetworkManager总是覆盖我的DNS配置怎么办?
解决方法:
- 打开NetworkManager配置文件:
vi /etc/NetworkManager/NetworkManager.conf
- 添加以下内容:
[main] dns=none
- 重启NetworkManager服务:
systemctl restart NetworkManager
- 手动编辑`/etc/resolv
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/200031.html