1. 项目定位与用途
Orange 是基于 FlClash v0.8.85 的多平台代理客户端,深度集成 XBoard v20250905-b144770 面板支持。项目采用模块化设计理念,将 XBoard 相关功能封装在独立的 lib/xboard 模块中,最大限度减少与上游 FlClash 的代码冲突,便于后续跟进上游更新。作为 Core 的 FlClash 提供基础代理能力,而 XBoard SDK 则负责面板通信、配置同步、在线客服集成等扩展功能,共同构成一个功能丰富、可维护性高的代理客户端解决方案。适用于需要稳定代理连接、多平台支持及 XBoard 面板集成的用户场景。
2. 解决的问题
Orange 主要解决三大类问题。一是入口域名封锁问题,通过多域名竞速策略、国内中转服务器支持、数据混淆与加密传输、UA 对等密钥验证等多层防护机制,降低主域名被封锁的风险。二是高可用性保障问题,提供域名竞速自动选择最快节点、多源配置自动降级、缓存机制提升响应速度、自动容灾切换等能力,避免单点故障。三是配置管理与更新问题,采用远程 config.json 托管与本地 xboard.config.yaml 结合的方式,支持 GitHub/Gitee 多源配置、客户端加密解密、CDN 加速及灵活降级策略,同时模块化设计确保能顺畅跟进上游 FlClash 更新。
3. 适用场景
Orange 适用于多种场景。个人用户可用来获得稳定、抗封锁的代理连接,满足日常科学上网需求。多平台用户可在 Android、Windows、macOS、Linux 上使用统一客户端,简化管理。已部署 XBoard 面板的用户可通过原生客户端深度集成,享受在线客服、设备上报等扩展功能。生产环境可借助多源备份、自动降级、容灾切换等机制保障服务连续性。此外,需要托管远程配置并支持加密传输的团队或组织也可采用本项目,通过 config.json 集中管理配置,实现灵活分发与安全传输。
4. 安装方式
安装 Orange 需准备以下环境:Flutter SDK (>=3.0)、Dart SDK (Flutter 自带)、Golang (>=1.19) 及 Git。具体步骤:克隆仓库 git clone https://github.com/hakimi-x/Xboard-Mihomo.git 并进入目录;执行 git submodule update --init --recursive 更新子模块(关键步骤);进入 lib/sdk/flutter_xboard_sdk 运行 flutter pub get 和 dart run build_runner build 生成 SDK 代码;使用 dart setup.dart <platform> 执行平台特定构建。详细依赖安装与构建命令请参考 docs/build-guide.md,其中包含 Android、Windows、macOS、Linux 的平台特定说明。
5. 使用方式
使用 Orange 需配置两个核心文件。一是 remote.config.json(可托管于远程),定义 panels(面板地址,必填)、onlineSupport(在线客服地址,必填)、proxy(代理服务器)、ws(WebSocket 服务器)等,支持多源备份。二是本地 xboard.config.yaml,设置 provider(必须与 remote.config.json 中 panels 的键名一致,如 mihomo)、remote_config(配置源、超时、重试)、log 等。最小配置可参考 docs/examples/minimal.md,生产配置参考 docs/examples/production.md。启动应用后,客户端自动并发请求配置源,选择最快响应并解析连接面板,后续功能如订阅同步、设备上报等自动运行。详细配置说明见 docs/configuration.md 与 docs/features.md。
6. 实现特点
Orange 在实现上具有几个显著特点。模块化设计:将 XBoard 功能全部封装于独立 lib/xboard SDK,与 FlClash Core 解耦,减少 git pull 时的合并冲突。混合架构:Flutter 负责跨平台 UI,Go(Clash.Meta)提供高性能代理内核,通过 lib/clash 模块进行 FFI 桥接。配置双通道:远程 config.json 与本地 xboard.config.yaml 结合,前者集中管理,后者本地覆盖,支持多源竞速与自动降级。高可用机制:内置域名竞速、多源备份、缓存与容灾切换策略,确保服务稳定。SDK 化:XBoard SDK 可独立嵌入其他 Flutter 项目,提升复用性。这些特点使 Orange 在功能、维护性和扩展性上更具优势。