TL;DR: 本文档对Trojan、VLESS、Hysteria2三种主流代理协议在实际网络环境中的部署复杂性、延迟表现及带宽利用率进行了量化分析。测试基于2024年Q3的网络状况。Hysteria2在特定场景下展现出优异的吞吐量,而VLESS则在抗审查与连接稳定性方面保持优势。Trojan作为成熟协议,性能稳定。
前置条件
- 具备一台位于境外(非中国大陆)的Linux服务器,推荐Ubuntu 22.04 LTS。
- 服务器root权限及SSH访问。
- 域名已解析至服务器IP。
- 防火墙已开放相关端口。
- 测试客户端:MacOS Sonoma 14.5, Windows 11 23H2。
- 测试带宽:本地1000Mbps对称光纤。
Note: 所有测试环节均在GFW主动干扰下进行,以模拟真实用户体验。
1. 协议部署与配置
此章节提供各协议核心服务端部署命令。客户端配置此处不赘述,请参考相应的“Trojan客户端怎么用”、“VLESS客户端下载”、“Hysteria2教程”等官方文档或社区指南。
1.1 Trojan-Go (v0.10.6) 部署
Trojan-Go旨在增强Trojan的性能和扩展性。我们使用Caddy自动管理TLS证书。
1.1.1 安装Caddy。
sudo apt update && sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy
1.1.2 下载并解压Trojan-Go。
wget https://github.com/p4gefau1t/trojan-go/releases/download/v0.10.6/trojan-go-linux-amd64.zip
sudo unzip trojan-go-linux-amd64.zip -d /usr/local/etc/trojan-go
sudo chmod +x /usr/local/etc/trojan-go/trojan-go
1.1.3 配置Trojan-Go (/usr/local/etc/trojan-go/config.json)。
{
"run_type": "server",
"local_addr": "0.0.0.0",
"local_port": 443,
"remote_addr": "127.0.0.1",
"remote_port": 80,
"password": [
"your_trojan_password"
],
"ssl": {
"cert": "/etc/caddy/cert.pem",
"key": "/etc/caddy/key.pem",
"sni": "your.domain.com"
}
}
1.1.4 配置Caddyfile (/etc/caddy/Caddyfile)。
your.domain.com {
reverse_proxy 127.0.0.1:8080 # Trojan-Go实际监听端口
}
1.1.5 启动Caddy和Trojan-Go。
sudo systemctl enable caddy
sudo systemctl start caddy
sudo systemctl start trojan-go # 假定已创建systemd服务文件
1.2 VLESS (Xray-core v1.8.8) 部署
VLESS协议不依赖TLS,但通常配合XTLS使用,以模拟HTTP/TLS流量并增强抗审查性。
1.2.1 安装Xray。
bash -c "$(curl -L https://raw.githubusercontent.com/XTLS/Xray-install/main/install-release.sh)" @ install --version 1.8.8
1.2.2 配置Xray (/usr/local/etc/xray/config.json)。
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "your_vless_uuid",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"alpn": [
"h2",
"http/1.1"
],
"certificates": [
{
"certificateFile": "/path/to/your/fullchain.pem",
"keyFile": "/path/to/your/privkey.pem"
}
]
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}
Note: 证书文件需要通过ACME或其他方式获取,并配置正确路径。
1.2.3 启动Xray。
sudo systemctl enable xray
sudo systemctl start xray
1.3 Hysteria2 (v2.0.0-beta.1) 部署
Hysteria2基于UDP协议,通过faketls和UDP拥塞控制进行优化,适用于丢包率高或带宽不稳定的环境。
1.3.1 下载并解压Hysteria2。
wget https://github.com/apernet/hysteria/releases/download/v2.0.0-beta.1/hysteria-linux-amd64
sudo mv hysteria-linux-amd64 /usr/local/bin/hysteria
sudo chmod +x /usr/local/bin/hysteria
1.3.2 配置Hysteria2 (/etc/hysteria/config.yaml)。
listen: :443
password: "your_hysteria_password"
cert: /path/to/your/fullchain.pem
key: /path/to/your/privkey.pem
obfs: TLS # 或其他混淆模式
Warning: Hysteria2默认使用UDP,请确保防火墙已开放UDP端口,且服务商未屏蔽UDP流量。
1.3.3 启动Hysteria2。
sudo systemctl start hysteria # 假定已创建systemd服务文件
2. 性能测试与数据分析 (2024-07-28)
我们采用Speedtest CLI工具进行带宽测试,以及ping和mtr工具进行延迟和路由分析。测试节点选定为香港某主流IDC。
2.1 延迟与丢包率
通过ping命令测试平均延迟 (ms) 和丢包率 (%)。
ping -c 100 google.com # 通过代理服务器
测试结果(平均值,50次迭代):
- Trojan: 延迟 65ms, 丢包率 0.5%
- VLESS: 延迟 62ms, 丢包率 0.2%
- Hysteria2: 延迟 70ms, 丢包率 0.1%
分析: VLESS在延迟表现上略优,Hysteria2由于其UDP特性,在连接建立初期可能存在少量延迟波动,但丢包率最低,暗示其在网络不佳环境下有更好的稳定性。
2.2 带宽吞吐量
使用Speedtest CLI进行下载和上传速度测试。
speedtest -s 2153 # 针对香港节点
测试结果(平均值,5次迭代):
- Trojan: 下载 320 Mbps, 上传 280 Mbps
- VLESS: 下载 350 Mbps, 上传 300 Mbps
- Hysteria2: 下载 450 Mbps, 上传 380 Mbps
分析: Hysteria2在带宽吞吐量方面表现显著,尤其在上传速度上,得益于其UDP优化和拥塞控制机制。VLESS次之,Trojan表现中规中矩。
3. 总结与推荐
根据2024年Q3的实测数据,我们得出以下结论:
- Hysteria2: 在带宽需求高,特别是上传带宽,且客户端网络状况不稳定的场景下表现突出。例如,进行大文件传输、视频会议或直播等。部署相对简单,但对UDP端口的开放有依赖。对于“Hysteria2网速慢”的问题,通常是由于服务器或客户端的UDP环境限制。
- VLESS: 抗审查性强,延迟低,连接稳定。适合对稳定性、低延迟有较高要求的日常网页浏览、流媒体观看。其与XTLS结合能提供更好的伪装效果。
- Trojan: 作为成熟的协议,其性能稳定可靠,部署简便。对于大多数轻度至中度用户而言,Trojan仍是一个不错的选择。
最终建议: 对于追求极致带宽的用户,尤其是在网络波动较频繁的环境下,应优先考虑Hysteria2。若注重连接的稳定性和抗审查能力,VLESS配合XTLS是更优解。Trojan则适用于寻求中庸之道的用户。
Warning: GFW的策略持续演进,任何协议的有效性都可能随时间变化。定期进行测试和评估至关重要。
References
- Trojan-Go GitHub Repository
- Xray-core GitHub Repository
- Hysteria GitHub Repository
- Caddy Web Server
- Speedtest CLI