直接改/etc/resolv.conf虽快但不持久,因systemd-resolved、NetworkManager等会覆盖;应先查其是否为符号链接及活跃服务,再按实际管理者(如resolved、NM或手动)配置DNS。

直接改 /etc/resolv.conf 是最快速生效的方式,但它通常不持久——现代 Linux 系统(Ubuntu 20.04+、CentOS 8+、Debian 12+、Fedora 等)默认由 systemd-resolved、NetworkManager 或 netplan 动态管理该文件,手动修改后常被自动覆盖。
所以关键不是“能不能改”,而是“改了有没有用”“会不会被抢走”。下面分场景说明怎么做才真正有效:
确认系统实际由谁管理 DNS
先看 /etc/resolv.conf 是不是“真文件”:
ls -l /etc/resolv.conf
- 如果输出含
->(比如指向/run/systemd/resolve/stub-resolv.conf),说明它是符号链接,直接编辑无效; - 再查服务状态:
systemctl is-active systemd-resolved systemctl is-active NetworkManager
- 两个都 active → 优先按
systemd-resolved配置; - 只有
NetworkManageractive → 按它的规则配; - 两个都不 active →
/etc/resolv.conf才是真实配置文件,可放心改。
- 两个都 active → 优先按
直接编辑 /etc/resolv.conf 的适用情况和操作
仅适用于:极简系统(如某些容器、旧版 CentOS 6/7、禁用了网络管理服务的服务器)。
操作步骤:
- 备份原文件:
sudo cp /etc/resolv.conf /etc/resolv.conf.bak
- 清空并写入有效 DNS(每行一个
nameserver,推荐国内常用):sudo truncate -s 0 /etc/resolv.conf echo "nameserver 223.5.5.5" | sudo tee -a /etc/resolv.conf echo "nameserver 114.114.114.114" | sudo tee -a /etc/resolv.conf
- 验证是否生效:
nslookup baidu.com
若返回 IP 地址,说明解析已走新 DNS;若仍失败,检查该 IP 是否可达(如
ping -c2 223.5.5.5)。
Linux Security Scanner下载Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
用 systemd-resolved 永久配置(主流桌面/服务器推荐)
这是当前 Ubuntu、Fedora、Debian 等默认方案。
- 编辑主配置:
sudo nano /etc/systemd/resolved.conf
取消注释并修改:
DNS=223.5.5.5 8.8.8.8 FallbackDNS=1.1.1.1 Domains=~local
- 重启服务:
sudo systemctl restart systemd-resolved
- 验证:
resolvectl status | grep "DNS Servers"
用 NetworkManager 配置(图形界面或 nmcli 用户首选)
适合 GNOME/KDE 桌面、笔记本或使用 nmcli 管理连接的环境。
- 查当前连接名:
nmcli connection show --active | awk 'NR==2 {print $1}' - 设置 DNS 并关闭自动获取:
sudo nmcli connection modify "Your-Connection" ipv4.dns "223.5.5.5 114.114.114.114" sudo nmcli connection modify "Your-Connection" ipv4.ignore-auto-dns yes
- 重载连接:
nmcli connection down "Your-Connection" && nmcli connection up "Your-Connection"
- 检查结果:
nmcli device show | grep DNS
防止被覆盖的注意事项
- 不要轻易用
chattr +i /etc/resolv.conf锁定文件,可能阻断systemd-resolved或NetworkManager启动,导致网络异常; - 若必须锁定,务必先停用相关服务,并清楚后续每次改 DNS 都需先
chattr -i; - 修改前确认 DNS IP 可达,避免填错网关地址或已下线的 DNS(如过期的校园网 DNS);
- 多个
nameserver行按顺序尝试,建议至少填两个,且优先放响应快、支持 IPv6 的(如223.5.5.5和114.114.114.114)。
不复杂但容易忽略。










