在Debian或其他基于Linux的系统中,DNS 设置(/etc/resolv.conf
)通常在重启后会被重置,特别是在使用 DHCP 时。要确保 DNS 设置在重启后保持不变,你可以手动配置静态 DNS 地址。
查看是否有其他软件在管理DNS,如resolvconf:ls -l /etc/resolv.conf
。Digitalocean(简称DO,可使用本站推广链接购买云服务器)会有resolvconf,以下介绍如何卸载resolvconf。
卸载 resolvconf
- 打开终端: 打开你的 Linux 终端。
- 卸载
resolvconf
包: - 使用以下命令来卸载
resolvconf
:sudo apt-get remove --purge resolvconf
- 检查并恢复
/etc/resolv.conf
:- 在卸载
resolvconf
后,你需要确保/etc/resolv.conf
文件是实际的文件,而不是符号链接。首先检查该文件的状态:ls -l /etc/resolv.conf
- 如果它仍然是一个符号链接,你可以删除该链接并创建一个新的文件:
sudo rm /etc/resolv.conf sudo touch /etc/resolv.conf
- 编辑新的
/etc/resolv.conf
文件,添加你的 DNS 服务器设置:sudo nano /etc/resolv.conf
在文件中添加如下内容: nameserver 8.8.8.8
nameserver 8.8.4.4
- 替换
8.8.8.8
和8.8.4.4
为你选择的 DNS 服务器地址。
- 在卸载
- 防止
/etc/resolv.conf
被自动修改: 一些网络服务可能会试图自动修改/etc/resolv.conf
。要防止这种情况,你可以设置该文件为只读:sudo chattr +i /etc/resolv.conf
这将防止任何进程修改/etc/resolv.conf
文件。 - 如果出现:
chattr: Operation not supported while reading flags on /etc/resolv.conf
,是因为符号链接还没删除。 - 如果未来需要修改它,使用
sudo chattr -i /etc/resolv.conf
来移除只读属性。
完成这些步骤后,resolvconf
将被从系统中移除,并且你将能够直接管理你的 DNS 设置。
配置 DHCP 客户端
如果你使用的是 dhclient
,可以修改其配置文件来忽略从 DHCP 服务器接收到的 DNS 设置。
- 编辑 dhclient 配置: 编辑
/etc/dhcp/dhclient.conf
:sudo nano /etc/dhcp/dhclient.conf
- 添加忽略 DNS 服务器的指令: 在文件中添加或修改以下行:
supersede domain-name-servers 208.67.222.222, 208.67.220.220;
这会让dhclient
忽略从 DHCP 服务器收到的 DNS 服务器地址,改为使用你指定的地址。 - 重启网络服务: 重启网络服务或重新连接网络以使更改生效:
sudo systemctl restart networking.service
以上是思科的DNS,你也可以改成自己的DNS服务器。
[…] /etc/resolv.conf。你可以参考本站如何固定dns,或使 resolv.conf […]