在 Debian 12 中,都知道通过修改/etc/resolv.conf文件来设置系统的DNS,但是重启后会自动恢复原来的设置。查阅了大量资料,终于解决。正确方法如下:
/etc/resolv.conf 是 Linux 系统中用于配置 DNS 解析器的文件。确认 systemd-resolved 或 NetworkManager 服务是否仍在管理 DNS 设置
1、检查 systemd-resolved 服务的状态:
systemctl status systemd-resolved
如果服务正在运行,你会看到 active (running) 的状态信息。
2、检查 NetworkManager 服务的状态:
systemctl status NetworkManager
类似上面。
使用 resolvconf
确认前面服务是否开放将其关闭后,
在 Debian 12 中,要永久设置 DNS 服务器为 8.8.8.8 和 8.8.4.4,你可以按照以下步骤操作:
1、打开 /etc/resolvconf/resolv.conf.d/head 配置文件,
sudo vi /etc/resolvconf/resolv.conf.d/head
如果没有 /etc/resolvconf/ 目录,记着安装 resolvconf 包:sudo apt install resolvconf
2、在文件中添加以下两行,指定你希望使用的 DNS 服务器地址:
nameserver 8.8.8.8
nameserver 8.8.4.4
3、保存更改后,重启 resolvconf 服务:
sudo systemctl restart resolvconf.service
或者重启:
sudo reboot
4、重启后,查看 /etc/resolv.conf 文件:
cat /etc/resolv.conf
结尾说明
安装完成后,你可以使用 /etc/resolvconf/resolv.conf.d/ 文件来管理 DNS 解析设置。这些文件允许你修改 /etc/resolv.conf 文件的内容:
- head 文件的内容会被添加到自动生成的 /etc/resolv.conf 文件的最前面。
- base 文件包含基本的解析器信息,当没有接口配置时,这个文件中的行也会被包含在解析器配置文件中。
- tail 文件的内容会被添加到自动生成的 /etc/resolv.conf 文件的最后面。
有时候重启刷新是其他网络管理的服务对其覆盖操作,建议是逐一排查能够自启动的服务,官方还存在一种硬核手法,就是直接限制文件的可写,但是这种方法可能会导致某些服务异常
Debian 官方建议参考:https://wiki.debian.org/resolv.conf
MJJ参考:https://www.nodeseek.com/post-128750-1
https://www.nodeseek.com/post-398450-2#16,懒得测试了。