在Linux系统中配置DNS(域名系统)是网络管理的基础技能,正确的DNS配置能确保系统高效解析域名,本文将详细介绍Linux系统中DNS配置的多种方法、步骤及注意事项,帮助用户顺利完成设置。

DNS配置的核心文件
Linux系统的DNS配置主要依赖于以下几个关键文件:
/etc/resolv.conf:这是最直接的DNS配置文件,用于指定系统的DNS服务器地址,修改此文件会立即生效,但某些系统(如使用NetworkManager的服务器)可能会在重启后覆盖手动修改的内容。/etc/nsswitch.conf:定义了名称解析的顺序,例如先查询本地hosts文件还是先查询DNS服务器,影响域名解析的优先级。- 网络配置文件:如
/etc/network/interfaces(Debian/Ubuntu)、/etc/sysconfig/network-scripts/ifcfg-eth0(CentOS/RHEL),或使用netplan、NetworkManager等工具时,可在网络配置中集成DNS设置。
临时DNS配置(立即生效)
若需快速测试或临时修改DNS,可直接编辑/etc/resolv.conf文件。
- 使用文本编辑器打开文件(如vim):
sudo vim /etc/resolv.conf
- 添加或修改DNS服务器地址,每行指定一个DNS服务器,
nameserver 8.8.8.8 # Google DNS nameserver 8.8.4.4 # Google备用DNS nameserver 114.114.114.114 # 国内公共DNS
- 保存文件后,系统会立即应用新的DNS配置,可通过
ping命令测试解析是否生效,ping www.baidu.com
永久DNS配置(推荐方法)
临时配置在系统重启或网络服务重启后可能失效,推荐通过以下方式实现永久配置。
基于网络配置文件的设置
-
Debian/Ubuntu(使用
/etc/network/interfaces):
在对应网络接口的配置中添加dns-nameservers项,auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 114.114.114.114保存后重启网络服务:
sudo systemctl restart networking。
-
CentOS/RHEL(使用
ifcfg文件):
编辑/etc/sysconfig/network-scripts/ifcfg-eth0,添加或修改以下内容:DNS1=8.8.8.8 DNS2=114.114.114.114
保存后执行
sudo ifdown eth0 && sudo ifup eth0重启网络。
使用netplan(Ubuntu 18.04+及新版Debian)
对于使用netplan的系统,配置文件通常位于/etc/netplan/目录下(如01-netcfg.yaml),编辑文件并添加DNS配置:
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
search: [localdomain] # 可选,添加域名后缀
应用配置:sudo netplan apply。
使用NetworkManager(桌面版Linux)
在GNOME、KDE等桌面环境中,可通过图形界面或nmcli命令配置DNS。

- 命令行方式:
sudo nmcli con mod "连接名称" ipv4.dns "8.8.8.8 114.114.114.114" sudo nmcli con mod "连接名称" ipv4.ignore-auto-dns yes # 忽略DHCP分配的DNS sudo nmcli con up "连接名称"
验证DNS配置
配置完成后,需验证DNS解析是否正常:
- 检查
/etc/resolv.conf:确认DNS服务器地址已正确写入。 - 使用
nslookup或dig命令:nslookup www.baidu.com dig www.baidu.com
若返回正确的IP地址,则配置成功。
- 检查解析顺序:确认
/etc/nsswitch.conf中hosts行的配置,hosts: files dns # 优先查询本地hosts文件,再查询DNS
常见问题与注意事项
- 配置被覆盖:若手动修改
/etc/resolv.conf后重启被还原,需检查网络管理工具(如NetworkManager、dhclient)的配置,确保其未自动覆盖该文件。 - 多个DNS服务器:建议配置2-3个DNS服务器(如公共DNS+内网DNS),避免单一DNS故障导致解析失败。
- 防火墙设置:确保防火墙允许DNS查询流量(默认UDP/TCP端口53)。
- 内网DNS:若使用内网DNS服务器,需确保客户端能访问该服务器,并正确配置域名后缀。
通过以上方法,用户可根据Linux发行版和使用场景选择合适的DNS配置方式,确保系统域名解析的稳定性和高效性,无论是临时调试还是长期部署,正确的DNS配置都是网络运维的重要环节。




















