在Ubuntu 24.04中设置DNS后无法正常解析域名,可能是由于系统网络配置冲突或DNS缓存问题导致。首先检查`/etc/resolv.conf`文件,确保DNS服务器地址(如8.8.8.8)正确添加且未被覆盖。若使用Netplan网络管理工具,需编辑`/etc/netplan/*.yaml`文件,添加`nameservers: [8.8.8.8, 8.8.4.4]`并应用配置(`sudo netplan apply`)。此外,确认`systemd-resolved`服务状态(`systemctl status systemd-resolved`),必要时重启服务或禁用以避免干扰。最后,清除本地DNS缓存(`sudo systemd-resolve --flush-caches`)并测试域名解析(`nslookup example.com`)。若问题依旧存在,检查防火墙或路由器是否限制DNS请求。
1条回答 默认 最新
请闭眼沉思 2025-05-28 12:40关注1. 问题概述
在Ubuntu 24.04系统中,设置DNS后无法正常解析域名的问题可能由多种原因引起。以下是常见的技术问题及分析过程:
- 系统网络配置冲突。
- DNS缓存问题。
- 防火墙或路由器限制DNS请求。
本指南将逐步介绍如何排查和解决这些问题。
2. 检查DNS配置文件
首先检查`/etc/resolv.conf`文件,确保DNS服务器地址正确添加且未被覆盖。
cat /etc/resolv.conf如果DNS服务器地址不正确或缺失,可以手动编辑该文件并添加以下内容:
nameserver 8.8.8.8 nameserver 8.8.4.4然而,在现代Ubuntu版本中,`/etc/resolv.conf`可能是符号链接,实际由Netplan管理。
3. 配置Netplan
若使用Netplan网络管理工具,需编辑`/etc/netplan/*.yaml`文件。例如:
sudo nano /etc/netplan/01-netcfg.yaml添加以下内容以指定DNS服务器:
network: version: 2 ethernets: eth0: dhcp4: yes nameservers: addresses: [8.8.8.8, 8.8.4.4]保存文件后,应用配置:
sudo netplan apply4. 检查systemd-resolved服务
确认`systemd-resolved`服务状态:
systemctl status systemd-resolved如果服务运行异常,可以尝试重启服务:
sudo systemctl restart systemd-resolved或者禁用服务以避免干扰:
sudo systemctl stop systemd-resolved sudo systemctl disable systemd-resolved5. 清除DNS缓存
清除本地DNS缓存:
sudo systemd-resolve --flush-caches测试域名解析是否恢复正常:
nslookup example.com6. 检查防火墙与路由器
如果上述步骤仍未解决问题,检查防火墙规则:
sudo ufw status确保允许DNS请求通过(通常为UDP和TCP端口53)。同时,检查路由器配置,确保没有阻止DNS请求。
7. 流程图总结
以下是整个排查流程的Mermaid格式流程图:
graph TD; A[开始] --> B{检查resolv.conf}; B -->|正确| C[配置Netplan]; B -->|错误| D[手动修改resolv.conf]; C --> E{检查systemd-resolved}; E -->|正常| F[清除DNS缓存]; E -->|异常| G[重启或禁用service]; F --> H[测试域名解析]; H -->|失败| I[检查防火墙与路由器];本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报