核心配置文件
-
/etc/hosts
本地静态域名映射(优先级高于DNS)。
示例:
0.0.1 localhost 192.168.1.10 server1.example.com server1
-
/etc/resolv.conf
定义DNS服务器和搜索域(注意:可能被网络服务覆盖)。
示例:nameserver 8.8.8.8 # 首选DNS nameserver 1.1.1.1 # 备用DNS search example.com # 自动补全域名后缀 options timeout:2 # 查询超时时间(秒)
配置方式(按网络管理工具分类)
传统配置(手动修改,重启后可能失效)
- 直接编辑
/etc/resolv.conf(不推荐,易被覆盖):sudo nano /etc/resolv.conf
使用 systemd-resolved (Ubuntu/CentOS 8+)
- 配置文件:
/etc/systemd/resolved.conf[Resolve] DNS=8.8.8.8 192.168.1.1 # 指定DNS Domains=example.com # 搜索域
- 生效命令:
sudo systemctl restart systemd-resolved
- 状态检查:
resolvectl status # 查看当前DNS配置
使用 NetworkManager(图形界面/命令行)
- 命令行配置:
nmcli connection modify "eth0" ipv4.dns "8.8.8.8 1.1.1.1" # 设置DNS nmcli connection modify "eth0" ipv4.dns-search "example.com" # 设置搜索域 nmcli connection down "eth0" && nmcli connection up "eth0" # 重启连接
- 图形界面:
进入网络设置 → 选择连接 → 配置DNS和搜索域。
修改网卡配置文件(CentOS/RHEL 7)
- 编辑网卡配置(如
/etc/sysconfig/network-scripts/ifcfg-eth0):DNS1=8.8.8.8 DNS2=1.1.1.1 DOMAIN="example.com"
- 重启网络:
sudo systemctl restart network
域名解析顺序控制
调整 /etc/nsswitch.conf 中的 hosts 行,决定查询顺序:
hosts: files dns myhostname # 顺序:先查/etc/hosts → DNS → 系统主机名
files:/etc/hostsdns:DNS服务器myhostname:系统主机名
验证配置
-
检查生效DNS:

cat /etc/resolv.conf # 查看当前使用的DNS resolvectl status # systemd-resolved环境 nmcli dev show | grep DNS # NetworkManager环境
-
测试解析:
nslookup example.com # 基础查询 dig example.com # 详细DNS记录 ping -c 2 server1 # 测试域名解析(按nsswitch顺序)
注意事项
-
/etc/resolv.conf被覆盖问题:
若文件由网络服务管理(如NetworkManager),修改前需:- 禁用覆盖:在网卡配置中添加
PEERDNS=no(CentOS)。 - 使用
chattr +i /etc/resolv.conf锁定文件(不推荐)。
- 禁用覆盖:在网卡配置中添加
-
临时生效:
测试时可直接修改/etc/resolv.conf,但重启网络服务后失效。
-
多网卡场景:
每个网络连接可独立配置DNS(通过NetworkManager或网卡配置文件)。
根据您的系统环境选择合适的配置方式,建议优先使用网络管理工具(如nmcli或systemd-resolved)确保配置持久化。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/287333.html

