应通过系统网络管理工具配置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等)自动生成和覆盖,因此直接修改可能在重启或网络重连后失效。以下是几种安全有效的修改方式。
可以直接编辑文件,添加所需的DNS服务器:
命令:
sudo nano /etc/resolv.conf
添加如下内容:
保存退出即可生效。但若系统使用DHCP或NetworkManager,下次网络重启时可能被重写。
大多数桌面和服务器系统使用NetworkManager管理网络,应通过它来设置DNS,避免被覆盖。
步骤:
这样配置后,NetworkManager会自动更新 /etc/resolv.conf。
若系统使用 systemd-resolved,应通过 resolvectl 或配置 /etc/systemd/resolved.conf 来设置。
编辑配置文件:
sudo nano /etc/systemd/resolved.conf
修改或添加:
启用并重启服务:
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
若想手动控制文件内容,可将其设为不可变:
sudo chattr +i /etc/resolv.conf
这将阻止任何程序修改该文件。需要修改时再取消:
sudo chattr -i /etc/resolv.conf
注意:此操作可能导致网络服务异常,需谨慎使用。
基本上就这些。关键是搞清楚系统由谁管理网络(NetworkManager、systemd、dhclient等),然后通过对应方式配置DNS,才能持久生效。直接改文件治标不治本。
以上就是Linux如何修改resolv.conf文件配置DNS的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号