非常游戏网
Linux怎么修改DNS服务器_Linux手动配置首选DNS地址【指南】

Linux怎么修改DNS服务器_Linux手动配置首选DNS地址【指南】

2026-02-05系统教程280518

直接改 /etc/resolv.conf 重启失效是因为 systemd-resolved 或 NetworkManager 会动态覆盖该文件;应根据系统类型修改对应配置:Ubuntu/Debian 改 /etc/systemd/resolved.conf 或 Netplan YAML,RHEL/CentOS/Fedora 改 ifcfg-* 文件,并确认服务状态与软链接指向。

直接改 /etc/resolv.conf 为什么重启就失效?

因为现代 Linux(尤其是 Ubuntu 18.04+、CentOS 8+、Fedora、Debian 11+)默认启用 systemd-resolvedNetworkManager,它们会动态接管并覆盖 /etc/resolv.conf。你手动写进去的 nameserver 114.114.114.114,下次网络服务重启或系统重启后就会被清空,甚至变成指向 127.0.0.53 的软链接。

Ubuntu/Debian 系统:优先改 /etc/systemd/resolved.conf

这是最通用、最稳定的永久生效方式,适用于绝大多数使用 systemd 的发行版:

  • 运行 sudo nano /etc/systemd/resolved.conf
  • 取消注释并修改 [Resolve] 段下的 DNS= 行,例如:
    DNS=114.114.114.114 8.8.8.8
  • 可选:添加 FallbackDNS= 提供兜底服务器
  • 保存后执行:sudo systemctl restart systemd-resolved
  • 验证是否生效:resolvectl status(看 Global 部分)或 systemd-resolve --status

Netplan 管理的 Ubuntu(如 20.04/22.04):必须改 /etc/netplan/*.yaml

如果你用的是桌面版或云镜像 Ubuntu,且 ip a 显示网卡名是 ens3enp0s3 这类,大概率走 Netplan。此时改 resolved.conf 可能无效——Netplan 会把 DNS 写进 systemd-resolved,但优先级更高:

塔猫ChatPPT

塔猫官网提供AI一键生成 PPT的智能工具,帮助您快速制作出专业的PPT。塔猫ChatPPT让您的PPT制作更加简单高效。

  • 找到配置文件,通常是 /etc/netplan/00-installer-config.yaml01-network-manager-all.yaml
  • 在对应网卡下添加 nameservers 块(注意缩进!YAML 对空格敏感):
    nameservers:
    addresses: [114.114.114.114, 8.8.8.8]
  • 执行:sudo netplan apply
  • 检查:resolvectl status → 看对应接口(如 ens3)下的 DNS 是否已更新

RHEL/CentOS/Fedora:改网卡配置文件更可靠

这类系统仍广泛依赖 ifcfg-* 文件,尤其当未启用 NetworkManager 时:

  • 编辑网卡配置,例如:sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
  • 添加两行:
    DNS1=114.114.114.114
    DNS2=8.8.8.8
  • 确保 PEERDNS=yes(默认通常为 yes,允许该配置影响 resolv.conf
  • 重启网络:sudo systemctl restart network(不是 NetworkManager
  • 验证:cat /etc/resolv.conf 应该已自动更新

真正容易被忽略的点是:不同机制之间存在优先级冲突。比如你同时配了 Netplan 和 resolved.conf,最终生效的是 Netplan 推送的;而如果你禁用了 systemd-resolved 却还留着它的配置,反而会导致解析失败。动手前先跑 ls -l /etc/resolv.conf 看它是普通文件还是软链接,再用 systemctl list-units | grep -E "(resolve|NetworkManager)" 确认哪个服务在管 DNS —— 否则改半天,只是在和系统“对空挥拳”。