当银河麒麟系统出现无法访问网页、软件源更新失败或域名解析错误时,问题多半源自DNS缓存中存储了过期或错误的IP地址。不用担心,这并非硬件故障,只需针对性清除缓存,网络即可恢复。按照以下五个步骤依次操作,通常能有效解决。

使用 systemd-resolved 刷新本地DNS缓存
此方法适用于麒麟V10 SP3及更高版本的桌面版或服务器版——这些版本默认采用 systemd-resolved 作为DNS解析器。执行命令后,内存中的DNS记录会被立即清除,无需重启服务。
第一步:打开终端,先确认服务状态:【sudo systemctl is-active systemd-resolved】。若返回 active,表示服务正常运行;若返回 inactive,则直接跳至下一步“重启 systemd-resolved 服务”。
第二步:运行刷新命令:【sudo systemd-resolve --flush-caches】。注意命令拼写——应为 resolve,而非 resolves 或 resolver,错误输入会导致 command not found 提示。
第三步:验证刷新是否生效:执行 【sudo systemd-resolve --statistics | grep "Cache"】,查看输出中 “Cache size” 是否归零或明显减少。若无变化,请继续后续步骤。
重启 systemd-resolved 服务
有时 --flush-caches 命令无响应,或出现 “Failed to flush cache” 提示,甚至 systemctl status 显示服务崩溃。此时必须强制重启,以彻底重置解析器状态。
方法一(推荐):
① 停止服务:【sudo systemctl stop systemd-resolved】
② 启动并设置开机自启:【sudo systemctl start systemd-resolved && sudo systemctl enable systemd-resolved】
③ 检查运行状态:【sudo systemctl status systemd-resolved | grep "active (running)"】,确保输出中包含绿色的 active (running) 字样。
方法二(快捷):直接执行 【sudo systemctl restart systemd-resolved】。此方式虽快,但无法保证下次开机自动启动,仅适合临时排查使用。
重载 NetworkManager 刷新DNS配置
本操作专为桌面环境(如GNOME、KDE)设计,前提是网络连接由 NetworkManager 管理。执行后,它会触发DNS配置重读,更新 /etc/resolv.conf 并刷新内部缓存,整个过程不会中断网络连接。
执行重载命令:【sudo systemctl reload NetworkManager】
查看日志确认DNS动作已触发:【journalctl -u NetworkManager | grep -i "dns" | tail -n 3】,输出中应出现类似 “Updating DNS configuration” 的记录。
检查 /etc/resolv.conf 是否已更新为 127.0.0.53:【cat /etc/resolv.conf | grep "127.0.0.53"】。若未匹配,说明 NetworkManager 未接管DNS,该方法无效,需更换其他方案。
重启 network 服务(适用于传统网络栈)
若服务器未启用 NetworkManager,或系统为精简部署、手动配置网络,则应采用传统方式。重启 network.service 会重建整个网络协议栈,包括DNS解析链路。
停止服务:【sudo systemctl stop network】
启动服务:【sudo systemctl start network】
检查 nameserver 是否已写入 resolv.conf:【grep nameserver /etc/resolv.conf】。若输出为空,需手动编辑 /etc/sysconfig/network-scripts/ifcfg-* 文件,补充DNS配置。
检查并注释 /etc/hosts 中的干扰条目
最后一步,切勿忽略 /etc/hosts 文件。它本身并非DNS缓存机制的一部分,但其中若存在类似 “192.168.1.100 example.com” 的错误静态映射,系统会优先通过 hosts 解析,导致域名始终指向错误IP。
使用文本编辑器打开:【sudo nano /etc/hosts】
逐行检查,查找与当前故障域名匹配的条目——例如无法访问 www.baidu.com,则搜索含 baidu.com 的行。
确认错误行后,在行首添加 # 号进行注释,保存并退出。注意:切勿直接删除整行,以免误删系统关键映射(如 127.0.0.1 localhost),引发更严重的问题。
