📌 一、问题概述
在日常的网络维护中,遇到了 Ubuntu 系统内网解析慢、DNS 超时 及 网络连接异常 等问题,主要表现如下:
-
Ubuntu 系统 DNS 解析异常
-
netplan
模块缺失,网卡配置使用/etc/network/interfaces
文件。 -
更改网络配置 后未生效,导致 DNS 无法解析或解析缓慢。
-
-
内网解析慢,公网解析正常
-
直接
ping
内网 IP 地址 正常,ping
内网域名 却非常慢。 -
nslookup 显示
communications error
,提示 DNS 查询超时。
-
🔍 二、故障排查与解决方法
✅ 1. Ubuntu 网络配置未生效问题
🛠️ 问题原因:
-
Ubuntu 系统未使用
netplan
,而是采用 Debian 风格的/etc/network/interfaces
文件,更新后未生效。
📌 解决方案:
-
检查网卡配置:
cat /etc/network/interfaces
-
应用新的网络配置:
sudo ifdown ethX && sudo ifup ethX
-
若不确定网卡名称,可用以下命令查看:
ip addr
✅ 2. DNS 解析慢,IP 地址正常问题
🛠️ 问题原因:
-
DNS 服务器设置异常或响应慢(例如 218.203.123.132 响应超时)。
-
系统优先使用慢速 DNS,或存在 DNS 查询循环。
-
DNS 缓存未更新,导致解析慢。
📌 解决方案:
(1)检查 DNS 解析速度
使用 nslookup
和 dig
检测解析速度:
time nslookup nx-cpu030.deepscience.cn time dig nx-cpu030.deepscience.cn
(2)更换为更快的 DNS
-
查看当前 DNS 配置:
cat /etc/resolv.conf
-
修改
/etc/resolv.conf
,使用更快、更稳定的 DNS:
sudo nano /etc/resolv.conf
-
推荐配置:
nameserver 10.14.1.1 # 内网 DNS,优先使用内网解析
nameserver 223.5.5.5 # 阿里公共 DNS,备用解析
options timeout:1 attempts:2
-
清理 DNS 缓存:
sudo resolvectl flush-caches
sudo systemctl restart systemd-resolved
(3)确保解析优先顺序
检查并确认解析顺序为 本地文件优先,再 DNS 查询:
cat /etc/nsswitch.conf | grep hosts
确保输出为:
hosts: files dns
(4)测试新的 DNS 设置是否生效
dig nx-cpu030.deepscience.cn @10.14.1.1
确保解析时间 (Query time) 在 100ms 内。
✅ 3. DNS 超时问题
🛠️ 问题原因:
-
DNS 服务器响应慢,或系统长时间等待不可用的 DNS。
📌 解决方案:
-
手动清理和重启 DNS 服务:
sudo systemctl restart systemd-resolved
sudo resolvectl flush-caches
-
替换有问题的 DNS,确保配置如下:
nameserver 10.14.1.1 # 内网 DNS
nameserver 223.5.5.5 # 公网备用
options timeout:1 attempts:2
-
手动测试:
dig @10.14.1.1 nx-cpu030.deepscience.cn
✅ 4. 临时解决方案:手动映射域名
🛠️ 问题原因:
-
某些固定的内网域名解析慢,可以临时手动绑定。
📌 解决方案:
-
在
/etc/hosts
文件中手动添加解析记录:
sudo nano /etc/hosts
-
添加以下内容:
10.14.1.30 nx-cpu030.deepscience.cn
-
立即生效,不需要重启网络服务。
✅ 5. 检查网络与防火墙
🛠️ 问题原因:
-
防火墙可能阻止了 DNS 查询(UDP 53 端口)。
-
网络路径异常,导致 DNS 查询包丢失。
📌 解决方案:
(1)检查 DNS 端口是否被阻止
sudo iptables -L -v -n | grep 53
(2)检查网络路径
使用 mtr
工具跟踪 DNS 查询路径:
mtr -n 10.14.1.1
确保路径无丢包。
📊 6. 问题总结与经验教训
问题 | 原因分析 | 解决方案 |
更改 Ubuntu 网络配置未生效 | 使用 /etc/network/interfaces 方式 | ifdown + ifup 重启网卡 |
内网解析慢,公网解析正常 | DNS 响应慢、配置异常 | 更换内网 DNS、清理缓存、优化解析顺序 |
DNS 超时 | DNS 服务器不可用或网络阻塞 | 检查并更换有效 DNS、手动清除 DNS 缓存 |
手动绑定解析 | 特定域名解析慢 | /etc/hosts 文件静态映射 |
防火墙或网络问题 | UDP 53 端口被阻止、路径丢包 | 查看 iptables,使用 mtr 排查网络路径问题 |
📌 7. 故障处理心得总结
-
迅速定位核心问题
-
明确是 DNS 解析慢,而不是 网络不通,避免误判。
-
-
系统性排查与多角度验证
-
结合 nslookup、dig、mtr 进行多维度测试,找到根本原因。
-
-
合理使用静态解析
-
对于固定的内网域名,必要时直接使用
/etc/hosts
解决慢解析问题。
-
-
及时清理缓存与优化配置
-
调整
timeout
、attempts
,保证解析快速,避免等待超时。
-