在手动安装systemd-resolved后,若DNS解析失败,通常与配置文件冲突或服务状态异常有关。首先检查`/etc/resolv.conf`是否正确链接到`/run/systemd/resolve/stub-resolv.conf`,否则手动创建软链接:`ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf`。
其次确认systemd-resolved服务是否正常运行,使用`systemctl status systemd-resolved`查看状态,必要时重启服务:`systemctl restart systemd-resolved`。
如果问题依旧存在,检查`/etc/systemd/resolved.conf`中 `[Resolve]` 部分的DNS设置,确保配置了正确的DNS服务器(如 `DNS=8.8.8.8`)。最后,清除DNS缓存并测试解析:`resolvectl flush-caches` 和 `resolvectl query google.com`。通过以上步骤,多数DNS解析失败的问题可以得到解决。
1条回答 默认 最新
璐寶 2025-05-04 22:15关注1. 初步检查:配置文件链接是否正确
在手动安装
systemd-resolved后,DNS 解析失败的常见原因之一是配置文件链接错误。首先需要确认/etc/resolv.conf是否正确链接到/run/systemd/resolve/stub-resolv.conf。- 运行以下命令检查链接:
ls -l /etc/resolv.conf - 如果链接不正确或未设置,可以手动创建软链接:
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
2. 服务状态检查与重启
接下来,确认
systemd-resolved服务是否正常运行。可以通过以下步骤进行排查:- 查看服务状态:
sudo systemctl status systemd-resolved - 如果服务未运行或出现异常,尝试重启服务:
sudo systemctl restart systemd-resolved
此外,确保服务已设置为开机自启:
sudo systemctl enable systemd-resolved3. 深入分析:配置文件中的 DNS 设置
如果上述步骤未能解决问题,可能与
/etc/systemd/resolved.conf文件中的 DNS 配置有关。以下是具体操作步骤:- 打开配置文件进行编辑:
sudo nano /etc/systemd/resolved.conf - 检查
[Resolve]部分的 DNS 设置,确保配置了正确的 DNS 服务器。例如:DNS=8.8.8.8 - 保存并退出后,重新加载
systemd配置:sudo systemctl reload systemd-resolved
4. 清除缓存与测试解析
完成上述配置后,清除 DNS 缓存并测试解析以验证问题是否解决:
命令 作用 resolvectl flush-caches清除 DNS 缓存 resolvectl query google.com测试域名解析 5. 故障排查流程图
为了更直观地展示整个排查过程,以下是一个简单的流程图:
graph TD; A[检查 /etc/resolv.conf 链接] --> B{链接是否正确}; B --否--> C[手动创建软链接]; B --是--> D[检查 systemd-resolved 服务状态]; D --> E{服务是否正常运行}; E --否--> F[重启服务]; E --是--> G[检查 resolved.conf 配置]; G --> H[清除缓存并测试解析];通过以上步骤,多数因配置文件冲突或服务状态异常导致的 DNS 解析失败问题可以得到有效解决。进一步...
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报- 运行以下命令检查链接: