Linux中配置备用DNS需按顺序列出多个nameserver条目,第二位起即为备用;可编辑/etc/resolv.conf(临时)、systemd-resolved(推荐持久化)或NetworkManager(桌面/命令行通用),并用dig/nslookup验证生效。

在 Linux 中配置备用 DNS 服务器地址,关键不是单独设“备用”,而是按顺序列出多个 nameserver 条目——排在第二位及之后的,就是实际生效的备用服务器。
直接编辑 /etc/resolv.conf(适合快速验证或临时使用)
该文件是系统解析域名时读取 DNS 地址的最直接依据。打开终端执行:
sudo nano /etc/resolv.conf- 写入两行及以上
nameserver,例如:
nameserver 8.8.8.8
nameserver 1.1.1.1
系统会按顺序尝试:先用第一行(首选),超时或返回失败后自动切到第二行(备用),再不行继续下一行。最多支持 3 个,超出部分被忽略。
注意:若系统启用 NetworkManager、systemd-resolved 或 resolvconf,此文件可能被自动覆盖,重启网络或重连后配置会丢失。
通过 systemd-resolved 持久化设置(推荐用于 Ubuntu 20.04+/CentOS 8+)
这是现代主流发行版的默认 DNS 管理服务,配置更稳定:
- 编辑主配置:
sudo nano /etc/systemd/resolved.conf - 取消注释并修改
DNS=行,用空格分隔多个地址:
保存后运行:sudo systemctl restart systemd-resolved
此时 /etc/resolv.conf 通常指向 /run/systemd/resolve/stub-resolv.conf,实际生效的是你刚配的列表。
通过 NetworkManager 设置(图形界面或命令行通用)
适用于桌面环境或使用 nmcli 管理连接的服务器:
- 查当前连接名:
nmcli connection show --active - 为指定连接(如 "Wired connection 1")添加 DNS:
sudo nmcli connection modify "Wired connection 1" ipv4.ignore-auto-dns yes
sudo nmcli connection down "Wired connection 1" && sudo nmcli connection up "Wired connection 1"
其中 ipv4.ignore-auto-dns yes 是关键,它阻止 DHCP 自动注入 DNS,确保你手动设的两个地址(223.6.6.6 为主,8.8.4.4 为备)真正生效。
验证是否生效
配置完成后,运行以下命令确认:
-
cat /etc/resolv.conf | grep nameserver—— 查看当前实际加载的 DNS 列表 -
resolvectl status(systemd-resolved 环境)—— 显示各接口使用的 DNS 及优先级 -
dig google.com +short或nslookup github.com—— 测试解析是否通,同时观察响应来自哪个服务器(如Server: 114.114.114.114)
只要第二行 DNS 地址出现在输出中,且解析正常,就说明备用地址已就位。


















