连接排障 · Clash 技术博客

FlClash DNS 缓存怎么清:v0.9.2 换网排查

FlClash 换网后部分网站仍打不开?在 v0.9.2 的工具中打开 DNS查询页清理内核缓存,区分系统缓存与 Fake-IP,按同域名查询、真实请求和回退步骤验证。

  • FlClash
  • v0.9.2
  • DNS 缓存
  • 网络切换
  • 域名解析
本文目录

Wi-Fi 切到移动网络,或电脑换了网络后,节点还能连接,部分网站却继续超时。旧 DNS 答复可能是排查方向,但也可能是新网络、DNS 上游或节点的问题;先留下一组对照,再决定是否清缓存。

换了网络,只有部分域名仍然打不开?

FlClash v0.9.2 正式发布加入手动及网络变化时清除 DNS 缓存的能力。本文按该版本的界面和固定源码说明操作,适用于 Android 与桌面客户端;不把缓存清理当作所有换网断连的修复。

先判断值得清理的情形

实际观察下一步
普通网络正常,FlClash 中同一域名仍失败固定 Profile、节点和域名,记录查询后做一次清理对照。
关闭 FlClash 接管后,普通网络也不能访问先恢复新网络或系统解析;应用缓存不能替代联网排查。
只有某个节点失败,换节点后同一域名正常优先检查节点和出站,不凭网站打不开就判定缓存过期。
刚重载配置后 Fake-IP 映射异常另查 Fake-IP 与重载范围,本文按钮不是 Fake-IP 池重置。

这个按钮清什么,哪些内容不会改变?

DNS 查询页的按钮调用 FlClash 内核的 clearDnsCache,最终执行 dns.ClearAll()。它清理核心保存的 DNS 答复、重置相关 DNS 上游客户端连接,让后续查询重新取得结果。

该版本使用的客户端核心分支还会在桌面侧让系统 nameserver 列表重新读取。这不是运行 Windows 或 macOS 的系统 DNS 刷新命令,也不保证浏览器或其他应用的缓存一起清空。

清 DNS 答复与清 Fake-IP 映射是不同操作;固定源码另有 FlushFakeIP。不要把这次清理当成删除虚拟地址池,也不要为此改 fake-ip-range、重导订阅或清空应用数据。

DNS 查询列表是观察记录。清理缓存不是删除这些历史记录;列表仍在,并不能说明按钮没有生效。后续应看新的查询时间与实际请求,而不是等待列表变空。

清理前,先保留同一域名的对照

只改变一个条件

  1. 记下版本和当前网络

    确认应用实际为 v0.9.2,记下系统、网络类型、换网时间、当前 Profile、节点及原有 DNS 覆写。旧版没有此按钮时,不要在其它设置里猜一个同名开关。

  2. 确认普通网络是否可用

    短时停止 FlClash 接管,用同一网络访问原目标。仅在允许直连的场景测试;必须经过代理的业务先暂停,不把直连成功当作代理恢复。

  3. 回到原配置,记录新查询

    重新使用同一 Profile 和节点请求目标,在工具的 DNS 页面找到对应域名,记下 A 或 AAAA、时间、来源、响应码与答复。若无记录,先确认请求是否经过 FlClash DNS。

系统或浏览器可能保留已有答复和连接。DNS 页面没有新查询时,不能仅靠刷新网页判断内核是否重新解析;先对照新的查询记录,必要时重新发起该应用的请求,不同时修改多组 DNS 参数。

在 v0.9.2 的「工具 → DNS查询」中清理

手动清理并立即复查

  1. 打开 DNS 查询页

    进入「工具」,选择「DNS查询」,核对当前页面确实是查询记录。顶部扫帚按钮的提示为「清除DNS缓存」;导航布局可能随窗口宽度改变。

  2. 只执行一次清理

    点击扫帚,等待结果。成功提示为「DNS缓存已清除」,失败为「清除DNS缓存失败」。成功只表示此次内核操作返回成功,不能代替网站访问验证。

  3. 重新发起原请求

    保留同一网络、Profile、节点及 DNS 设置,重新请求同一域名,并核对同一记录类型的新时间、来源、响应码和答复,再确认真实 HTTPS 页面或业务请求。

出现失败提示时,先保留日志并核对内核运行状态,不连续点击或删除全部配置。若没有这个入口,先备份并核对项目正式 v0.9.2 与系统支持情况,通过正常更新渠道取得对应版本,不擅自覆盖应用内部核心。

换网自动清理,为什么仍需手动验证?

网络变化清理是该版本的内置行为,源码没有提供一个需要用户开启的自动清理开关。不能据此承诺每一次 Wi-Fi 状态提示、每次网页刷新或所有平台事件都会执行同一套操作。

桌面侧网络回调仅在核心已连接且 VPN 存在状态未发生改变的相应路径中,经约 200ms 聚合后清 DNS;它本身不直接关闭全部活动连接。

Android 使用原生网络观察。首选网络的 DNS 列表变化会更新内核使用的系统 DNS;已有首选网络从 A 切到 B 的路径会经 resetNetwork 先关闭活动连接再清 DNS。自动清理不代表旧连接一定无中断,也不能用桌面行为推断 Android。

如果换网后仍异常,保持相同目标做一次手动清理对照即可。只有新的查询和实际访问支持结果,才记录为本机恢复;不要为强行触发回调反复断开网络。

怎样确认结果,而不是只看成功提示?

清理后的验证清单

  • 版本、网络、Profile、节点及 DNS 覆写已记录,清理前后没有同时改配置。
  • 对照同一域名及 A 或 AAAA,看到新的查询时间,并记录来源、缓存标记、响应码和答复。
  • 没有要求 IP 必须改变,也没有要求第一条记录必为缓存「否」;并发请求可能先填入缓存,正确 DNS 答复也可以仍是同一个地址。
  • 原 HTTPS 页面或业务请求确实完成,连接记录显示预期出站;节点延迟数字或 VPN 图标不能代替这一步。
  • 后续自然换网时复查相同目标,若问题复发,保留网络、查询和连接记录的时间对应。

新的查询仍报超时、拒绝或解析错误时,应继续核对当前网络、DNS 上游、规则与节点。只有清理前后差异不能证明缓存是唯一根因,本文也不承诺清一次就永久解决换网问题。

仍然失败时,怎样恢复和反馈?

已清掉的缓存不能从按钮撤销,后续查询会重新建立。若本次仅点清理而没有改设置,就保持原 Profile 和 DNS;若做过额外对照,恢复本次改动的原值。清理失败时不需要恢复整份应用备份。

若升级后出现其它兼容问题,先停止受影响操作,通过原支持方式恢复对应版本与独立备份;避免两个版本共用同一数据目录。暂停接管后确认普通网络可用,需要代理的业务继续暂停。

向项目反馈应用和系统版本、换网类型与时间、同域名同记录类型的前后查询、清理成功或失败提示,以及真实请求的出站和错误。公开材料遮盖订阅令牌、密码与私人域名,原始备份留在本机。

参考资料