Trojan
项目状态: ✅ 活跃开发中 | 推荐度: ⭐⭐⭐⭐⭐ | 世代: 第四代
快速概览
Trojan 是一个专注于"不可识别性"的代理协议,核心理念是将代理流量伪装成完全符合标准的 HTTPS 流量。与其他工具不同,Trojan 的设计哲学是"看起来完全像 HTTPS",而不是"试图躲避检测"。
核心特性
- 🎭 完美伪装: 流量与标准 HTTPS 无法区分
- 🛡️ 抗探测: 验证失败的连接会被重定向到真实网站
- 🚀 高性能: 基于成熟的 TLS 协议,性能优秀
- 🔒 安全可靠: 使用标准 TLS 1.3 加密
- 📝 配置简单: 相比多协议框架配置更简单直观
关键指标
| 指标 | 评分 | 说明 |
|---|---|---|
| 性能 | ⭐⭐⭐⭐⭐ | 基于 TLS,性能优秀 |
| 安全性 | ⭐⭐⭐⭐⭐ | TLS 1.3 标准加密 |
| 稳定性 | ⭐⭐⭐⭐⭐ | 长期使用验证,极其稳定 |
| 隐蔽性 | ⭐⭐⭐⭐⭐ | 完全像 HTTPS,难以识别 |
| 易用性 | ⭐⭐⭐⭐ | 配置相对简单,需要基础知识 |
| 文档 | ⭐⭐⭐⭐⭐ | 官方文档详细清晰 |
| 社区 | ⭐⭐⭐⭐ | 社区活跃,资源丰富 |
推荐配置
🥇 标准方案: Trojan + 真实网站
- 需要域名和证书
- 部署简单
- 稳定可靠
🥈 CDN 方案: Trojan + Cloudflare CDN
- 隐藏真实服务器 IP
- 提高可用性
- 适合高风险环境
🥉 增强方案: Trojan-Go + WebSocket
- 支持多路复用
- CDN 友好
- 功能更丰富
设计理念
"不可识别" vs "难以检测"
大多数代理工具的思路是混淆流量特征,让 GFW 难以检测。Trojan 采用了完全不同的思路:
传统工具的思路:
尝试让流量看起来"正常" → 但总会有细微特征 → 最终被机器学习识别Trojan 的思路:
直接使用标准 HTTPS 协议 → 流量完全符合规范 → 无法区分真假工作原理
┌─────────┐ ┌──────────────┐
│ 客户端 │ ─── TLS 1.3 握手 ────────> │ Trojan 服务器 │
└─────────┘ └──────────────┘
看起来完全像 HTTPS ↓
验证密码
↓
┌─────────────┴─────────────┐
↓ ↓
密码正确 密码错误
↓ ↓
转发代理流量 重定向到真实网站
↓ ↓
访问被墙网站 返回正常网页内容关键设计:
- 使用真实的 TLS 证书: 不是自签名,而是 Let's Encrypt 等 CA 签发的真实证书
- 标准 TLS 握手: 完全符合 RFC 标准,与普通 HTTPS 无差别
- 密码验证: 在 TLS 连接建立后,通过密码哈希验证客户端
- fallback 机制: 验证失败则将连接回退到真实网站,探测者看到的是正常网站
为什么难以被封锁
- 流量特征: 与真实 HTTPS 完全一致,无法通过 DPI 识别
- 服务器指纹: 返回的是真实网站的内容,无法区分
- 主动探测: 没有正确密码的探测会得到真实网站响应
- 封锁成本: 封锁 Trojan 意味着可能误杀大量合法 HTTPS 服务
技术亮点
1. TLS 1.3 加密
Trojan 完全依赖 TLS 1.3 提供加密和安全性:
- 加密算法: AES-256-GCM, ChaCha20-Poly1305
- 密钥交换: X25519, P-256
- 前向保密: 支持 PFS (Perfect Forward Secrecy)
- 0-RTT: 支持快速恢复连接
2. 密码认证机制
客户端密码 → SHA224 哈希 → 56 字节哈希值 → 发送给服务器
服务器验证:
- 正确: 建立代理连接
- 错误: 将连接转发到本地 80 端口(真实网站)3. 双层应用
典型部署:
443 端口: Trojan (监听)
↓
验证成功 → 转发到代理
↓
验证失败 → 转发到 127.0.0.1:80 (Nginx/Apache)这样,主动探测看到的是一个正常运行的 HTTPS 网站。
快速开始
服务端部署
方法 1: 一键脚本(推荐新手)
bash
# 使用 Trojan 一键安装脚本
bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"
# 或使用 Trojan-Go 一键脚本
bash <(curl -s -L https://git.io/trojan-install.sh)方法 2: 手动安装
1. 安装 Trojan
bash
# Debian/Ubuntu
sudo apt update
sudo apt install -y trojan
# 或编译安装
git clone https://github.com/trojan-gfw/trojan.git
cd trojan
cmake .
make
sudo make install2. 申请 SSL 证书
bash
# 安装 acme.sh
curl https://get.acme.sh | sh
source ~/.bashrc
# 使用 DNS API 申请证书(以 Cloudflare 为例)
export CF_Token="你的 Cloudflare API Token"
acme.sh --issue --dns dns_cf -d yourdomain.com -d www.yourdomain.com
# 安装证书
acme.sh --install-cert -d yourdomain.com \
--key-file /usr/local/etc/trojan/key.pem \
--fullchain-file /usr/local/etc/trojan/cert.pem \
--reloadcmd "systemctl restart trojan"3. 配置 Trojan
编辑 /usr/local/etc/trojan/config.json:
json
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": [
"你的强密码"
],
"log_level": 1,
"ssl": {
"cert": "/usr/local/etc/trojan/cert.pem",
"key": "/usr/local/etc/trojan/key.pem",
"key_password": "",
"cipher": "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256",
"cipher_tls13": "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256",
"prefer_server_cipher": true,
"alpn": [
"http/1.1"
],
"reuse_session": true,
"session_ticket": false,
"session_timeout": 600,
"plain_http_response": "",
"curves": "",
"dhparam": ""
},
"tcp": {
"prefer_ipv4": false,
"no_delay": true,
"keep_alive": true,
"reuse_port": false,
"fast_open": false,
"fast_open_qlen": 20
},
"mysql": {
"enabled": false
}
}4. 部署伪装网站
bash
# 安装 Nginx
sudo apt install -y nginx
# 配置 Nginx(监听 80 端口)
sudo vim /etc/nginx/sites-available/defaultNginx 配置示例:
nginx
server {
listen 127.0.0.1:80;
server_name yourdomain.com;
root /var/www/html;
index index.html;
}5. 启动服务
bash
# 启动 Nginx
sudo systemctl start nginx
sudo systemctl enable nginx
# 启动 Trojan
sudo systemctl start trojan
sudo systemctl enable trojan
# 检查状态
sudo systemctl status trojan
sudo systemctl status nginx客户端配置
配置文件
创建客户端 config.json:
json
{
"run_type": "client",
"local_addr": "127.0.0.1",
"local_port": 1080,
"remote_addr": "yourdomain.com",
"remote_port": 443,
"password": [
"与服务端相同的密码"
],
"log_level": 1,
"ssl": {
"verify": true,
"verify_hostname": true,
"cert": "",
"cipher": "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256",
"cipher_tls13": "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256",
"sni": "yourdomain.com",
"alpn": [
"http/1.1"
],
"reuse_session": true,
"session_ticket": false,
"curves": ""
},
"tcp": {
"no_delay": true,
"keep_alive": true,
"reuse_port": false,
"fast_open": false,
"fast_open_qlen": 20
}
}分享链接格式
trojan://password@domain:443?sni=domain#备注示例:
trojan://mypassword@example.com:443?sni=example.com#MyTrojanTrojan vs Trojan-Go
Trojan-Go 的增强
Trojan-Go 是 Trojan 的 Go 语言重写版本,增加了许多功能:
| 特性 | Trojan | Trojan-Go |
|---|---|---|
| 语言 | C++ | Go |
| 多路复用 | ❌ | ✅ Smux |
| WebSocket | ❌ | ✅ |
| CDN 支持 | 有限 | ✅ 优秀 |
| 路由功能 | ❌ | ✅ GeoIP |
| 性能 | 优秀 | 优秀 |
| 内存占用 | 低 | 中等 |
选择建议:
- 追求极致性能和稳定性 → Trojan 原版
- 需要 CDN、WebSocket、多路复用 → Trojan-Go
- 新手用户 → Trojan-Go(功能更丰富)
最佳实践
1. 服务器选择
- 地理位置: 日本、新加坡、美国西海岸(延迟低)
- 带宽: 至少 100Mbps
- 提供商: Vultr, DigitalOcean, Linode, AWS Lightsail
2. 域名配置
- 使用 Cloudflare DNS(支持 CDN)
- 开启 DNSSEC
- 配置 CAA 记录
3. 安全加固
bash
# 配置防火墙
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
# 禁用 SSH 密码登录
sudo vim /etc/ssh/sshd_config
# PasswordAuthentication no
# 启用 fail2ban
sudo apt install fail2ban4. 性能优化
在 config.json 中启用:
json
"tcp": {
"no_delay": true, // 禁用 Nagle 算法
"keep_alive": true, // 保持连接
"fast_open": true, // TCP Fast Open
"fast_open_qlen": 20
}系统层面优化(/etc/sysctl.conf):
bash
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
net.ipv4.tcp_fastopen = 35. 监控和维护
bash
# 查看日志
journalctl -u trojan -f
# 查看连接数
ss -ant | grep :443 | wc -l
# 证书自动续期
# acme.sh 会自动续期,确保 crontab 正常
crontab -l | grep acme故障排查
常见问题
1. 连接失败
bash
# 检查服务状态
systemctl status trojan
# 检查端口监听
netstat -tlnp | grep :443
# 测试 TLS
openssl s_client -connect yourdomain.com:4432. 证书问题
bash
# 检查证书有效期
openssl x509 -in /usr/local/etc/trojan/cert.pem -noout -dates
# 手动续期
acme.sh --renew -d yourdomain.com --force3. 性能问题
- 检查服务器带宽占用
- 检查 CPU 使用率
- 尝试启用 BBR 拥塞控制
- 检查是否被 QoS 限速
相关资源
社区与支持
- 官方网站: https://trojan-gfw.github.io/trojan/
- GitHub: https://github.com/trojan-gfw/trojan
- 协议文档: https://trojan-gfw.github.io/trojan/protocol
- Trojan-Go: https://github.com/p4gefau1t/trojan-go
许可证
Trojan 采用 GPL v3 许可证,完全开源免费。
💡 小贴士: Trojan 的核心优势在于"简单即是美",不需要复杂的混淆配置,只需要一个域名和证书,就能获得极佳的隐蔽性和稳定性。