在Linux系统中,DNS(域名系统)配置是网络管理的基础环节,它决定了域名如何解析为IP地址,我们会配置两个DNS服务器(DNS1和DNS2)以确保冗余和可靠性,本文将详细介绍在Linux中配置DNS1和DNS2的方法、常见场景及注意事项。

DNS1与DNS2的作用与选择
DNS1是主DNS服务器,用于日常的域名解析请求;DNS2是辅助DNS服务器,当DNS1不可用时接管解析任务,选择合适的DNS服务器至关重要,常见的公共DNS包括:
- Google DNS:
8.8.8(DNS1)、8.4.4(DNS2) - Cloudflare DNS:
1.1.1(DNS1)、0.0.1(DNS2) - 阿里云DNS:
5.5.5(DNS1)、6.6.6(DNS2)
以下为不同场景下的DNS推荐配置:
| 使用场景 | 推荐DNS1 | 推荐DNS2 | 特点说明 |
|---|---|---|---|
| 通用用途 | 8.8.8 | 1.1.1 | 全球响应快,稳定性高 |
| 国内用户 | 5.5.5 | 6.6.6 | 优化国内访问速度 |
| 企业内网 | 内部DNS服务器 | 公共DNS备用 | 保证内网资源解析与外部冗余 |
在Linux中配置DNS1和DNS2
临时配置(当前会话有效)
使用nmcli(NetworkManager工具)或resolv.conf文件可快速修改DNS:
# 使用nmcli(适用于Ubuntu/ CentOS 7+) sudo nmcli connection modify "连接名称" ipv4.dns "8.8.8.8 1.1.1.1" sudo nmcli connection down "连接名称" && sudo nmcli connection up "连接名称" # 直接编辑resolv.conf(临时方法) echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf echo "nameserver 1.1.1.1" | sudo tee -a /etc/resolv.conf
永久配置(重启后生效)
不同发行版的配置文件位置不同:
-
Ubuntu/ Debian:编辑
/etc/netplan/01-netcfg.yaml(示例):network: version: 2 ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] nameservers: addresses: [8.8.8.8, 1.1.1.1]执行
sudo netplan apply生效。
-
CentOS/ RHEL:编辑
/etc/sysconfig/network-scripts/ifcfg-eth0:DNS1=8.8.8.8 DNS2=1.1.1.1
执行
sudo systemctl restart network生效。 -
Systemd-resolved(Ubuntu 18.04+):编辑
/etc/systemd/resolved.conf:DNS=8.8.8.8 1.1.1.1
执行
sudo systemctl restart systemd-resolved。
常见问题与排查
-
DNS解析失败
检查/etc/resolv.conf是否正确配置,或使用nslookup测试:nslookup example.com 8.8.8.8
-
多个DNS配置冲突
确保网络配置文件中未重复设置DNS,优先级为:网络管理工具 >resolv.conf> DHCP分配。
相关问答FAQs
Q1: 如何验证DNS1和DNS2是否生效?
A1: 使用dig或nslookup命令测试域名解析。
dig example.com @8.8.8.8 # 测试DNS1 dig example.com @1.1.1.1 # 测试DNS2
若返回IP地址且响应时间稳定,则配置成功。
Q2: 为什么需要同时配置DNS1和DNS2?
A2: 配置两个DNS服务器是为了提高可用性,当DNS1宕机或网络故障时,系统会自动尝试DNS2,确保域名解析不中断,避免服务中断。