直接编辑 /etc/resolv.conf 是最快生效的 dns 配置方式,适用于快速验证或临时修复域名解析失败问题,但可能被 networkmanager、systemd-resolved 或 dhcp 服务覆盖,仅适合调试而非长期使用。

直接编辑 /etc/resolv.conf 是最快生效的 DNS 配置方式,适用于快速验证或临时修复域名解析失败问题。但要注意:它可能被 NetworkManager、systemd-resolved 或 DHCP 服务覆盖,所以更适合调试,而非长期方案。
确认当前配置并清空干扰项
先查看现有内容,避免重复或冲突:
- 运行
cat /etc/resolv.conf,留意是否有自动生成的注释(如# Generated by NetworkManager)或无效 nameserver - 如有,建议备份后清空再写入:
sudo cp /etc/resolv.conf /etc/resolv.conf.bak && sudo truncate -s 0 /etc/resolv.conf
写入有效的 nameserver 地址
每行一个 nameserver,系统按顺序尝试,推荐至少填两个国内常用公共 DNS:
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
-
nameserver 114.114.114.114(电信主用,响应稳定) -
nameserver 223.5.5.5(阿里DNS,支持 IPv6 和 DoH) - 可选补充:
nameserver 8.8.8.8(Google,适合跨境场景)
保存后无需重启服务,解析立即生效。注意:IP 必须是可访问的 DNS 服务器,不能填内网网关或不存在的地址。
验证是否真正生效
仅看文件内容不够,要实测解析行为:
- 执行
nslookup baidu.com,应返回 A 记录 IP,而非** server can't find baidu.com: NXDOMAIN - 若仍失败,检查是否被覆盖:
lsattr /etc/resolv.conf(看是否被chattr +i锁定);或运行systemctl is-active systemd-resolved,若启用则优先走 resolved 服务,此时需同步配置其/etc/systemd/resolved.conf - 还可指定 DNS 测试:
nslookup baidu.com 114.114.114.114,排除本地转发问题
防止被覆盖的实用技巧
如果发现改完很快又被重写,说明有服务在管理该文件。常见应对方式:
- NetworkManager 用户:在连接配置中设为手动 DNS,并禁用自动获取,或修改
/etc/NetworkManager/NetworkManager.conf中[main] dns=none - systemd-resolved 用户:停用该服务或统一通过
resolved.conf配置,避免 resolv.conf 与之冲突 - 强制锁定(谨慎使用):
sudo chattr +i /etc/resolv.conf,后续修改前必须先chattr -i










