应通过系统网络管理工具配置DNS以确保持久生效。首先确认网络管理服务(如NetworkManager或systemd-resolved),然后使用对应方法设置:1. 临时修改可直接编辑/etc/resolv.conf,添加nameserver 8.8.8.8等,但重启后可能被覆盖;2. 推荐通过NetworkManager配置,使用nmcli命令修改连接的DNS并重新激活;3. 若使用systemd-resolved,应编辑/etc/systemd/resolved.conf,设置DNS并重启服务,同时将/etc/resolv.conf软链接至/run/systemd/resolve/resolv.conf;4. 可通过sudo chattr +i /etc/resolv.conf防止文件被覆盖,但需谨慎避免网络异常。关键在于匹配系统实际使用的网络管理工具进行配置。

在Linux系统中,/etc/resolv.conf 文件用于配置DNS解析器,定义系统使用的DNS服务器地址。虽然可以直接编辑该文件,但现代Linux发行版通常由网络管理工具(如NetworkManager、systemd-resolved、dhclient等)自动生成和覆盖,因此直接修改可能在重启或网络重连后失效。以下是几种安全有效的修改方式。
1. 临时修改 resolv.conf(适用于测试)
注意:此方法修改后可能被覆盖,仅用于临时测试。可以直接编辑文件,添加所需的DNS服务器:
命令:
sudo nano /etc/resolv.conf
添加如下内容:
- nameserver 8.8.8.8
- nameserver 8.8.4.4
- nameserver 1.1.1.1
保存退出即可生效。但若系统使用DHCP或NetworkManager,下次网络重启时可能被重写。
2. 通过NetworkManager配置DNS(推荐)
大多数桌面和服务器系统使用NetworkManager管理网络,应通过它来设置DNS,避免被覆盖。
步骤:
- 编辑对应连接配置:
nmcli con show # 查看连接名称
nmcli con mod "连接名" ipv4.dns "8.8.8.8 1.1.1.1"
nmcli con up "连接名" # 重新激活连接 - 或将DNS设置为自动(DHCP)或手动:
nmcli con mod "连接名" ipv4.ignore-auto-dns yes # 忽略DHCP提供的DNS
这样配置后,NetworkManager会自动更新 /etc/resolv.conf。
3. 使用 systemd-resolved 统一管理DNS
若系统使用 systemd-resolved,应通过 resolvectl 或配置 /etc/systemd/resolved.conf 来设置。
编辑配置文件:
sudo nano /etc/systemd/resolved.conf
修改或添加:
- [Resolve]
- DNS=8.8.8.8 1.1.1.1
- # Domains=example.com
- LLMNR=no
- MulticastDNS=no
启用并重启服务:
WAP2.0企业手机网站主要特点: 系统管理:管理员管理,可以新增管理员及修改管理员密码。 产品管理:产品新增修改管理,支持UBB格式输入。 文章管理:文章新增修改管理,支持UBB格式输入。 新闻管理:新闻新增修改管理,支持UBB格式输入。 娱乐管理:新闻新增修改管理,支持UBB格式输入。 发信管理:可在线给客户发送WEB信件,注意配置信件的发送信息,如SMTP等! 访问统计:可以统计出用户访问的
sudo systemctl enable systemd-resolved
sudo systemctl restart systemd-resolved
同时建议将 /etc/resolv.conf 指向 systemd-resolved:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
4. 防止 resolv.conf 被覆盖
若想手动控制文件内容,可将其设为不可变:
sudo chattr +i /etc/resolv.conf
这将阻止任何程序修改该文件。需要修改时再取消:
sudo chattr -i /etc/resolv.conf
注意:此操作可能导致网络服务异常,需谨慎使用。
基本上就这些。关键是搞清楚系统由谁管理网络(NetworkManager、systemd、dhclient等),然后通过对应方式配置DNS,才能持久生效。直接改文件治标不治本。









