一个基于 Rust + Tokio 实现的轻量级、高性能 Trojan 协议服务端,面向低资源 VPS 场景(如 2C2G)。
- 严格的 Trojan 协议头解析(密码哈希、CRLF、TCP/UDP 指令、目标地址)
- TLS 终止(
rustls+tokio-rustls) - TCP 双向流式转发(
copy_bidirectional) - UDP Associate 转发(含超时控制、域名解析、异常处理)
- 强化错误处理与配置校验(避免运行时 panic)
- 云原生交付:多阶段构建 +
scratch运行时镜像 - CI 工作流(fmt / clippy / test / docker build-push)
.
├── src/
├── tests/
├── benches/
├── config/
├── Dockerfile
├── docker-compose.yml
└── .github/workflows/docker-publish.yml
测试环境可使用自签证书:
bash scripts/gen-certs.sh生产环境建议改用可信证书(例如 Let’s Encrypt),并更新配置中的证书路径。
Linux/macOS/WSL:
echo -n "your_password" | sha224sumOpenSSL(跨平台可用,需安装 OpenSSL):
echo -n "your_password" | openssl dgst -sha224Python(跨平台):
python -c "import hashlib; print(hashlib.sha224(b'your_password').hexdigest())"注:配置中
passwords字段必须是 56 位十六进制 SHA-224 字符串。
编辑 config/config.toml,至少确认以下字段:
bind_addrtls_certtls_keypasswords(56位十六进制 SHA-224)udp_timeoutudp_bind_addr
cargo run --release -- -c config/config.tomldocker build -t trojan-rust:test .docker run -d --name trojan-rust \
-p 443:443/tcp -p 443:443/udp \
-v $(pwd)/config/config.toml:/etc/trojan-rust/config.toml:ro \
-v $(pwd)/certs:/etc/trojan-rust/certs:ro \
trojan-rust:test或使用:
docker compose up -dcargo fmt -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-targets --verbose
cargo bench --bench throughput- Clash
- v2rayN
- Shadowrocket
客户端需配置为 Trojan 协议,并与服务端证书/域名、端口、密码哈希对应。
MIT OR Apache-2.0
本项目仅用于合法合规的网络安全与隐私保护用途。使用者应自行确保遵守所在地区法律法规。