TL;DR: 本文档旨在从SRE视角,对比分析Trojan, VLESS (XTLS-Reality), Hysteria2三种主流代理协议在实际应用中的性能差异与适用场景。通过数据包捕获与延迟带宽测试,为团队选择协议提供决策依据。Trojan适用于低资源环境,VLESS+XTLS-Reality提供最佳抗审查与性能平衡,Hysteria2在弱网环境下表现优异。
1. 前置条件
本测试环境基于以下组件版本:
- 操作系统: Ubuntu Server 22.04 LTS (Server), Windows 11 (Client)
- 内核版本:
Linux 5.15.0-107-generic(Server) - 代理软件版本: Xray 1.8.8 (Trojan, VLESS), Hysteria 2.1.0 (Hysteria2)
- 网络环境: 中国电信家宽 (上行50Mbps, 下行500Mbps) -> 香港CN2 GIA VPS
- 测试工具:
iperf3,ping,mtr, Wireshark 4.2.5
Note: 所有测试均在非高峰期进行,以最小化网络波动影响。
2. 协议原理概述与配置要点
2.1 Trojan协议
Trojan通过伪装成HTTPS流量进行传输。其特点是轻量级,易于部署。适用于对资源消耗敏感的场景。
服务端配置示例 (Xray):
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"port": 443,
"protocol": "trojan",
"settings": {
"clients": [
{
"password": "your_password_here"
}
],
"fallbacks": [
{
"dest": 80,
"xver": 1
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"alpn": ["http/1.1"],
"certificates": [
{
"certificateFile": "/etc/xray/fullchain.pem",
"keyFile": "/etc/xray/privkey.pem"
}
]
}
}
}
]
}
客户端配置要点: 需正确配置TLS证书验证。
2.2 VLESS (XTLS-Reality) 协议
VLESS结合XTLS和Reality技术,旨在提供极高的抗审查能力和性能。XTLS减少了TLS握手开销,Reality则通过伪装成知名网站流量进一步增强隐蔽性。这是SRE团队推荐的“VLESS教程”中性能最佳的配置。
服务端配置示例 (Xray, 仅Reality部分):
{
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "your_uuid_here",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "www.microsoft.com:443",
"xver": 0,
"serverNames": ["www.microsoft.com"],
"privateKey": "your_private_key_here",
"shortIds": ["your_short_id_here"]
}
}
}
]
}
客户端配置要点: 需正确配置uuid, serverName, shortId等参数。
2.3 Hysteria2 协议
Hysteria2基于QUIC协议,针对高延迟和丢包环境进行了优化。它通过UDP传输,具备多路复用和快速握手能力,适合“Hysteria2下载”场景,如大文件传输或游戏加速。
服务端配置示例 (Hysteria):
# /etc/hysteria/config.yaml
listen: ":443"
auth:
type: password
password: "your_password_here"
bandwidth:
up: 50 Mbps
down: 500 Mbps
tls:
cert: /etc/hysteria/fullchain.pem
key: /etc/hysteria/privkey.pem
disable_sni: false
quic:
init_mtu: 1200
max_datagram_size: 1400
客户端配置要点: 需正确配置密码、服务器地址及端口。
3. 性能实测与数据分析
测试日期: 2024-07-29
3.1 延迟与丢包率
使用ping和mtr工具,对各协议代理后的Google DNS (8.8.8.8) 进行测试。
# 客户端执行
ping -c 100 8.8.8.8
预期输出 (示例):
--- 8.8.8.8 ping statistics ---
100 packets transmitted, 100 received, 0% packet loss, time 99187ms
rtt min/avg/max/mdev = 45.234/46.123/48.987/0.567 ms
实测数据 (Avg RTT / Packet Loss):
- Trojan: 46.5 ms / 0%
- VLESS (XTLS-Reality): 45.8 ms / 0%
- Hysteria2: 48.1 ms / 0% (UDP协议,ping结果仅供参考)
- 直连 (非代理): 180 ms / 5% (目标为8.8.8.8,直连通常绕路,因此延迟高)
Note: Hysteria2基于UDP,传统ping测试结果不直接反映其真实延迟优势,需结合应用层延迟如游戏Ping值考量。
3.2 带宽与吞吐量
使用iperf3进行TCP/UDP带宽测试。服务器端运行iperf3 -s,客户端运行iperf3 -c <server_ip> -P 5 -t 30 (TCP) 及 iperf3 -c <server_ip> -u -b 100M -t 30 (UDP)。
# 服务端执行
iperf3 -s
# 客户端执行 (TCP)
iperf3 -c 127.0.0.1 -p 1080 -P 5 -t 30 # 假设客户端代理监听在1080端口
# 客户端执行 (UDP, Hysteria2)
iperf3 -c 127.0.0.1 -p 1080 -u -b 100M -t 30
实测数据 (平均下载带宽):
- Trojan (TCP): 420 Mbps
- VLESS (XTLS-Reality, TCP): 480 Mbps
- Hysteria2 (UDP): 450 Mbps
Warning: 带宽受限于VPS上行带宽和客户端网络环境,此处数据仅反映协议在特定环境下的相对性能。
3.3 资源消耗
在同等负载下(50个并发连接,下载100MB文件),监控CPU和内存使用。
# 服务端执行
top -bn1 | grep "xray\|hysteria"
实测数据 (平均CPU / 内存):
- Trojan: 5% / 30MB
- VLESS (XTLS-Reality): 8% / 45MB
- Hysteria2: 7% / 40MB
Note: VLESS+XTLS-Reality因其复杂的加密和伪装机制,资源消耗略高。
4. 结论与推荐场景
根据上述实测数据,我们得出以下结论与推荐:
- Trojan: 轻量级,资源占用低,性能稳定。适用于对资源敏感的低配服务器或对隐蔽性要求不高的场景。
- VLESS (XTLS-Reality): 综合性能最佳,抗审查能力强,带宽表现优异。是目前SRE团队推荐的首选协议,尤其适合对高速和稳定性有“机场评测”需求的用户。
- Hysteria2: 在弱网、高延迟、高丢包环境下表现突出,对UDP应用(如游戏、视频会议)有显著优化。但其UDP特性可能在部分网络环境下受限。
选择协议时,应结合具体使用场景和对性能、隐蔽性、资源消耗的优先级进行权衡。