麒麟OS DNS缓存清理有五种方法:一、用systemd-resolved刷新缓存;二、重启systemd-resolved服务;三、通过NetworkManager重载刷新DNS;四、重启network服务;五、检查并注释/etc/hosts中干扰条目。

如果您在麒麟OS中遇到域名解析异常、网页打不开或软件源更新失败等问题,可能是系统缓存了过期或错误的DNS记录。以下是启用一键清理DNS缓存的具体操作步骤:
一、使用 systemd-resolved 服务刷新缓存
该方法适用于启用 systemd-resolved 作为默认 DNS 解析器的麒麟OS版本(如V10 SP3及以上桌面/服务器版),命令执行后立即清空本地DNS缓存,无需重启服务。
1、打开终端,输入以下命令检查 resolved 服务状态:sudo systemctl is-active systemd-resolved
2、确认服务处于 active 状态后,执行缓存清除指令:sudo systemd-resolve --flush-caches
3、验证缓存是否已清空:sudo systemd-resolve --statistics | grep "Cache"
二、重启 systemd-resolved 服务
当 --flush-caches 命令无响应或服务存在异常时,强制重启可重置整个解析器状态,同时清除缓存并加载最新配置。
1、停止当前运行的服务:sudo systemctl stop systemd-resolved
2、启动服务并启用开机自启:sudo systemctl start systemd-resolved && sudo systemctl enable systemd-resolved
3、确认服务已正常运行:sudo systemctl status systemd-resolved | grep "active (running)"
三、通过 NetworkManager 重载刷新DNS
该方式适用于由 NetworkManager 管理网络连接的桌面环境,重载操作会触发 DNS 配置重新读取并刷新内部缓存,不影响网络连通性。
1、执行 NetworkManager 配置重载命令:sudo systemctl reload NetworkManager
2、查看日志确认 DNS 相关动作已触发:journalctl -u NetworkManager | grep -i "dns" | tail -n 3
3、验证 resolv.conf 是否被更新:cat /etc/resolv.conf | grep "127.0.0.53"
四、重启 network 服务(传统网络栈适用)
针对未启用 NetworkManager、采用传统 network.service 管理网络的服务器版或精简部署场景,重启服务可强制重建 DNS 解析链路。
1、停止网络服务:sudo systemctl stop network
2、启动网络服务:sudo systemctl start network
3、检查 DNS 配置是否恢复生效:grep nameserver /etc/resolv.conf
五、手动清空 /etc/hosts 缓存影响(辅助排查项)
虽然 /etc/hosts 文件本身不参与DNS缓存,但若其中存在错误的静态映射条目,会导致域名强制解析为错误IP,表现为“缓存未更新”的假象。
1、备份原始 hosts 文件:sudo cp /etc/hosts /etc/hosts.bak
2、查看是否存在干扰性条目:sudo grep -v "^#" /etc/hosts | grep -v "^$" | grep -E "(archive\.kylinos\.cn|mirrors\.kylinos\.cn)"
3、临时注释可疑行(在行首添加 #):sudo sed -i '/archive\.kylinos\.cn/s/^/#/' /etc/hosts

















