FlClash 是 Flutter 写的 Clash/Mihomo 图形客户端,跨 Android、Windows、macOS、Linux。跨平台虽然方便,排查时也带来一个问题:同一个订阅 URL,不同系统可能拿到不同的响应。
##看返回内容
| 返回内容 | 判断 |
|---|---|
proxies: 开头 | 大概率是 Clash YAML |
{ "outbounds": ... } | 更像 sing-box JSON |
| 一长串 base64 | 需要确认转换结果 |
<html> | 登录页、错误页或防护页 |
| 空白 | token 失效、订阅端限流或路径错误 |
不要在 App 里反复删除重导。把 URL 复制到浏览器,或用命令行保存成 profile.yaml,再检查顶部字段。
FlClash 需要什么结构
最小可用配置通常要有三块:
proxies或proxy-providers:代理条目来源。proxy-groups:选择器、自动测试或规则组。rules:最后至少有MATCH或等价兜底规则。
如果只有 proxy-groups,但 provider 地址返回 404,FlClash 可能仍创建了空 profile。provider 是二次请求,不能只检查主订阅 URL。
User-Agent 导致格式不同
不少订阅面板会按 User-Agent 输出不同格式。桌面 Clash、移动 Clash、sing-box、浏览器可能拿到四份内容。FlClash 导入为空时,后台应明确选择 Clash/Mihomo 格式。如果你在更换来源,可用配套订阅线路做对照,但仍要选对导出格式。
平台差异排查表
| 平台 | 常见问题 |
|---|---|
| Android | 私有 DNS、证书链、后台网络权限 |
| Windows | 安全软件拦截首次请求、代理环境变量污染 |
| macOS | 首次联网权限、系统证书信任 |
| Linux | 缺少 CA 证书包、AppImage 沙箱路径 |
修复清单
- 用浏览器确认订阅不是 HTML 或空文本。
- YAML 内有
proxies或可访问的proxy-providers。 - 订阅端导出格式选择 Clash/Mihomo。
- provider 地址单独打开也能返回内容。
- App 更新到最新 release 后再重试。
如果这些都通过,仍然为空,再去 FlClash GitHub issue 搜索同版本问题;提交反馈时附上脱敏后的 YAML 顶层结构,不要贴完整 token。
排查顺序
备份当前配置和启动日志,然后一次只动一个变量:内核、订阅、DNS、规则集、端口,不要同时改。
| 步骤 | 要确认什么 |
|---|---|
| 现象 | 是报错、限速、空白页还是权限不足 |
| 范围 | 只影响一个账号/设备,还是同一批都失败 |
| 变更 | 最近是否改过版本、地区、套餐、密钥或规则 |
| 回滚 | 能否回到上一个正常状态并复测 |
如果同一问题连续试了三种方案仍无改善,先停手整理证据。把本地配置、远程订阅响应和错误日志对应起来,确认是哪一层失败后再决定升级还是回滚。