Chimera_Client

当前支持的协议与传输

  • Trojan + WS
  • Hysteria2
  • Reality + TCP
  • SOCKS5
  • HTTP
  • Xhttp

未来支持

  • gRPC
  • VMess
  • WireGuard
  • SSH

角色与目标

chimera_client 是 Chimera 生态中的 Clash 兼容客户端运行时。它的设计目标是在兼容现有 Clash/Mihomo 配置的同时,利用 Rust 的类型安全与异步生态构建一个可维护的代码库。

对运维人员而言,这意味着:

  • 保留熟悉的配置与策略心智模型。
  • 通过明确的 schema 与模块边界提升实现清晰度。
  • 支持渐进式对齐:从稳定的基础能力(如 SOCKS 入站 + rules)开始,再逐步补齐与 clash-rs 和 Mihomo 之间的特性差距。

与 Clash-rs 和 Mihomo 的关系

chimera_client 文档将 clash-rs 和 Mihomo 视为两个最重要的参考实现:

  • clash-rs:用于解析器 / 运行时行为和配置语义的 Rust 原生参考实现。
  • Mihomo:广泛生态兼容性和高级运维特性的事实生产参考。

在本章中,每个模块页面都会明确标注:

  1. chimera_client 当前已可用的内容,
  2. 什么是与 Clash/Mihomo 兼容的目标行为,
  3. 以及当前应采取哪些迁移注意事项。

架构概览

在内部,客户端被组织为四层:

  1. 配置层
    • 将 Clash 风格 YAML 解析为类型化的 Rust 结构。
    • 处理默认值、校验与热重载边界。
  2. 入站 / 控制层
    • 负责本地监听器(SOCKS/HTTP/mixed/TUN,随对齐进展逐步完善)。
    • 暴露用于状态查询、切换与诊断的管理 API。
  3. 策略与 DNS 层
    • 以首条命中语义执行规则链。
    • 提供 DNS 策略原语(当前为系统解析器,目标是 Clash 风格 DNS)。
  4. 出站传输层
    • 执行协议握手与流转发。
    • 封装协议特定参数,同时复用通用 TLS / socket 工具。

这种划分与常见的 Clash 家族架构一致,并降低了解析器、运行时与协议引擎之间的耦合。

模块指南

每个功能区域都独立成文:

  • 端口与监听器:键名映射与当前入站支持情况。参见端口与监听器
  • DNS 模块:fake-IP 与 real-IP 模型、解析器策略,以及当前实现状态。参见DNS 模块
  • TUN 模块:route-all / split-route 语义与 Linux 策略路由说明。参见Tun 模块
  • 规则模块:规则分类、排序策略与基于 provider 的策略组合。参见规则类型及其作用

兼容性概览(英文文档,当前)

区域chimera_client(当前)clash-rs / Mihomo 参考
入站监听器socks_port 可用;其他项部分实现 / 开发中完整的 Clash 家族监听器矩阵
DNS主要走系统解析器路径;Clash 风格配置块作为目标形态记录成熟的 fake-IP / real-IP / 分流解析工作流
TUN已记录目标模型;主线尚未完全启用成熟的跨平台实现
规则核心 Clash 规则语言已有文档并完成对齐完整的规则 / provider 生态

可将此表作为阅读索引:各模块页面会进一步说明示例与注意事项。

部署模式

当前推荐的类生产使用模式:

  • 从基于 SOCKS 的本地代理开始。
  • 除非你正在验证开发中的 DNS 分支,否则应对 DNS 配置保持保守。
  • 先使用显式规则顺序和较小的 provider 集,再逐步扩展。
  • 仅在对齐分支和环境前置条件都验证完成后再启用 TUN。

对于 CI / 测试,建议同时保留一个最小配置和一个 Clash/Mihomo 对齐配置,以尽早发现解析器 / 运行时偏差。

性能与运维重点

长期性能策略与 Clash 家族工作负载保持一致:

  • 可预测、低开销的规则匹配,
  • 长生命周期会话下受控的内存行为,
  • 以及面向策略调试的高可观测性。

在引入对齐特性(DNS/TUN/监听器)时,应优先保证确定性行为和可调试性,而不是依赖隐式的“魔法”默认值。

参考仓库