修改DNS重启后失效
问题 /etc/resolv.conf
文件被 systemd-resolved
管理,这会在每次重启时自动覆盖你的修改。为了解决这个问题,可以通过以下几种方法来使你的 DNS 配置永久化:
解决方案 1:使用静态的 /etc/resolv.conf
文件
取消
/etc/resolv.conf
的符号链接: 执行以下命令将当前符号链接删除:1
sudo unlink /etc/resolv.conf
创建一个新的静态
/etc/resolv.conf
文件: 然后手动创建一个静态的resolv.conf
文件,内容可以按照你的需要配置 DNS 服务器:1
sudo nano /etc/resolv.conf
添加你需要的 DNS 服务器,例如:
1
2nameserver 8.8.8.8
nameserver 8.8.4.4防止文件被修改: 为了防止系统再次覆盖这个文件,可以将它设置为只读:
1
sudo chattr +i /etc/resolv.conf
这将使得
/etc/resolv.conf
文件变为不可修改状态,除非你手动取消该属性(使用chattr -i
)。
解决方案 2:配置 systemd-resolved
的 DNS 服务器
如果你想继续使用 systemd-resolved
进行 DNS 解析,但希望自定义 DNS 服务器,可以通过以下步骤:
编辑
resolved.conf
文件: 打开/etc/systemd/resolved.conf
文件:1
sudo nano /etc/systemd/resolved.conf
修改 DNS 配置: 找到
DNS=
行,取消注释并填写你想使用的 DNS 服务器。例如:1
2[Resolve]
DNS=8.8.8.8 8.8.4.4重启
systemd-resolved
服务: 保存文件后,重启systemd-resolved
服务使更改生效:1
sudo systemctl restart systemd-resolved
检查当前 DNS 配置: 你可以使用以下命令检查当前 DNS 配置:
1
resolvectl status
解决方案 3:使用 NetworkManager 管理 DNS(如果适用)
如果你的系统使用 NetworkManager 进行网络管理,你可以通过 NetworkManager 配置 DNS 服务器。
编辑 NetworkManager 配置: 打开 NetworkManager 的网络配置文件,通常位于
/etc/NetworkManager/NetworkManager.conf
,或者你可以通过 GUI 工具配置 DNS。配置 DNS: 在配置文件中,加入以下内容:
1
2[main]
dns=none然后手动编辑
/etc/resolv.conf
文件,加入你想要的 DNS。重启 NetworkManager 服务: 执行以下命令来重启 NetworkManager 服务:
1
sudo systemctl restart NetworkManager
通过以上方法,你可以使 /etc/resolv.conf
的 DNS 配置持久化。
公共DNS服务器地址
腾讯
119.29.29.29
阿里
首选: 223.5.5.5 备用: 223.6.6.6
114
首选: 114.114.114.114 备选: 114.114.115.115