是常态,不是你操作错了;因现代Linux发行版默认由systemd-resolved、NetworkManager或netplan动态管理DNS,/etc/resolv.conf常为符号链接或自动生成文件,手动修改后会被立即覆盖。
直接改
会失效?这是常态,不是你操作错了
大多数现代 Linux 发行版(Ubuntu 18.04+、CentOS 8+、Fedora、Debian 11+)默认用
、
或
管理 DNS,手动写死
会被自动覆盖。这不是权限问题,是服务在“抢着管”。强行
会阻断网络服务启动,不推荐。
用
改 NetworkManager 管理的 DNS(桌面/笔记本最常用)
适用于使用 NetworkManager 的系统(GNOME/KDE 默认),修改立即生效且持久。
查当前连接名:
(或看输出里 NAME 列)
设 DNS(覆盖式,不追加):
关 DHCP 自动获取 DNS:
重启连接:
验证:
或
用
配置 systemd-resolved(Server/CLI 环境首选)
是 systemd 生态的 DNS 管理器,
通常只是它的一个符号链接(指向
)。直接改文件无效,必须走接口。
CentOS Linux 7.9.2009
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
下载
临时设置(重启后失效):
(eth0 换成你的网卡名)
永久设置:编辑
,取消注释并修改
,再执行
注意:
是兜底,
开启可能让某些私有 DNS 失败,调试时可先设为
验证:
,看 “DNS Servers” 行是否更新
Netplan 用户(Ubuntu Server 17.10+)必须改 YAML 文件
Netplan 不读
,也不响应
或
的 DNS 设置(除非禁用
并切回 NetworkManager)。
找到配置文件:
(常见为
或
)
在对应 interface 下加
块,例如:
应用:
(失败时用
看具体哪行错)
注意:若启用了
,DNS 才真正由
控制;否则 DHCP 返回的 DNS 仍会覆盖
真正麻烦的不是“怎么填 DNS”,而是搞清谁在管 DNS ——
第一行写着
就是线索。跳过这步直接硬改,90% 的“改了没用”都源于此。
/etc/resolv.confsystemd-resolvedNetworkManagernetplan/etc/resolv.confchattr +i /etc/resolv.confnmclinmcli connection show --active | awk 'NR==2 {print $1}'nmcli connection modify "Your-Connection-Name" ipv4.dns "8.8.8.8 1.1.1.1"nmcli connection modify "Your-Connection-Name" ipv4.ignore-auto-dns yesnmcli connection down "Your-Connection-Name" && nmcli connection up "Your-Connection-Name"resolvectl statusnmcli device show | grep DNSresolvectlsystemd-resolved/etc/resolv.conf/run/systemd/resolve/stub-resolv.confresolvectl dns eth0 8.8.8.8 1.1.1.1/etc/systemd/resolved.confDNS=8.8.8.8 1.1.1.1sudo systemctl restart systemd-resolvedFallbackDNSDNSSECoffresolvectl status eth0/etc/resolv.confnmcliresolvectlrenderer: networkdls /etc/netplan/*.yaml01-network-manager-all.yaml50-cloud-init.yamlnameserversnetwork:
ethernets:
eth0:
dhcp4: true
nameservers:
addresses: [8.8.8.8, 1.1.1.1]sudo netplan applysudo netplan --debug applydhcp4-overrides: {use-dns: false}nameserverscat /etc/resolv.conf# This file is managed by ...