Languages: 简体中文 | English | Русский | فارسی
Chimera_Server 是一个使用 Rust 编写的网络服务核心,目标是尽可能与开源项目 xray-core 保持兼容。当前阶段重点聚焦于 inbound 配置与入站协议行为,尽量对齐上游的字段命名、 默认值、握手流程与运行时语义。
- 入站解析与分发逻辑正在持续完善,当前优先覆盖 VMess、VLESS、Trojan 等常见协议。
- 出站、路由、策略等模块仍在逐步建设中,目前只有基础能力或占位实现。
- 仓库按职责拆分为
chimera_server_app(应用入口)、chimera_server_lib(核心库)和chimera_cli(辅助 CLI 工具)。
为了缩小与 xray-core 的差距,部分入站解析与协议处理逻辑参考了社区项目 shoes。其在握手流程、默认行为与错误处理上的实现思路, 对当前项目有直接参考价值。
- 通过
rustup安装最新稳定版 Rust 工具链。 - 克隆仓库并进入项目目录。
- 使用以下命令启动服务:
cargo run --package chimera_server_app -- --config path/to/config.json5- 如需热重载,可使用仓库中的
start.sh或start_server.ps1;运行前建议先检查脚本中的环境假设。
chimera_cli 提供了一个辅助二进制 chimera-cli,用于对齐 xray x25519 的使用方式。
在工作区根目录执行:
cargo run -p chimera_cli -- x25519 --count 1 --format base64该命令会按与 xray-core 一致的顺序输出私钥 / 公钥对,并支持 base64 与 hex 两种格式。
- 配置文件沿用 xray-core 的整体结构,目前重点支持
inbounds数组及相关协议/传输设置。 - 解析器会尽量对齐上游字段名和默认值,以便已有 xray-core 配置可以较低成本迁移过来。
- 当前更推荐使用
json5配置;仓库中的examples/目录提供了多个可参考示例。
{
"inbounds": [
{
"tag": "vmess-tcp",
"protocol": "vmess",
"listen": "0.0.0.0",
"port": 10086,
"settings": {
"clients": [
{
"id": "YOUR-UUID",
"alterId": 0
}
]
},
"streamSettings": {
"network": "tcp"
}
}
]
}仓库当前包含以下示例配置,可作为起点:
examples/01-api.json5examples/02_trojan_ws_tls_30919.json5examples/03_vless_ws_tls_36050.json5examples/04_vless_tcp_50584.json5examples/05_vless_ws_56321.json5examples/06-hysteria-43210.json5
cargo build --all-features
cargo fmt --all
cargo clippy --all-targets --all-features -- -D warnings
cargo test- 持续对齐最新 xray-core 的已实现入站协议,覆盖更多可选字段与流控行为。
- 建立系统化的单元测试与集成测试,并与 xray-core 行为进行对照验证。
- 在入站能力稳定后,继续完善出站、路由与策略模块,逐步实现端到端兼容。