V2Ray
项目状态: ✅ 维护中 | 推荐度: ⭐⭐⭐⭐ | 世代: 第四代 | 继任者: Xray
快速概览
V2Ray(Project V)是一个功能强大的多协议代理平台,诞生于 2015 年。它不仅是一个代理工具,更是一个完整的网络工具平台,支持多种传输协议和混淆方式,具有强大的路由功能。
💡 重要提示: V2Ray 和 Xray 的关系类似于 Linux 内核的分支。Xray 是 V2Ray 的超集,完全兼容 V2Ray 配置,但增加了 XTLS 等新特性。新用户建议直接使用 Xray。
核心特性
- 🔄 多协议支持: VMess、VLESS、Trojan、Shadowsocks 等
- 🚦 强大路由: 基于域名、IP、协议的灵活路由
- 🌐 多种传输: TCP、WebSocket、HTTP/2、gRPC 等
- 🔧 高度可定制: 几乎所有参数都可配置
- 📊 流量统计: 内置流量统计功能
关键指标
| 指标 | 评分 | 说明 |
|---|---|---|
| 性能 | ⭐⭐⭐⭐ | 性能良好,但不如 Xray |
| 安全性 | ⭐⭐⭐⭐⭐ | 多层加密,安全可靠 |
| 稳定性 | ⭐⭐⭐⭐⭐ | 经过长期验证,非常稳定 |
| 隐蔽性 | ⭐⭐⭐⭐ | 取决于配置,可以很隐蔽 |
| 易用性 | ⭐⭐⭐ | 配置复杂,需要学习 |
| 文档 | ⭐⭐⭐⭐ | 官方文档详细 |
| 社区 | ⭐⭐⭐⭐⭐ | 社区非常活跃 |
V2Ray vs Xray
为什么有两个项目
2020 年 11 月,V2Ray 核心开发者 RPRX 因为技术路线分歧,从 V2Ray 分叉创建了 Xray。
分歧点: XTLS 技术
- RPRX 开发了 XTLS,希望合并到 V2Ray
- V2Ray 维护者担心安全性,拒绝合并
- RPRX 创建 Xray,独立发展
主要区别
| 特性 | V2Ray | Xray |
|---|---|---|
| XTLS | ❌ | ✅ 核心特性 |
| Reality | ❌ | ✅ 革命性创新 |
| 性能 | 良好 | 优秀(XTLS 提升 2-3 倍) |
| 兼容性 | V2Ray 配置 | 完全兼容 V2Ray |
| 开发速度 | 稳健 | 更激进 |
| 新特性 | 保守 | 积极 |
| 社区 | 传统社区 | 新兴社区 |
选择建议
选择 V2Ray 的理由:
- 追求稳定保守
- 不需要 XTLS/Reality
- 已有成熟的 V2Ray 部署
选择 Xray 的理由 (推荐):
- 追求性能和新特性
- 需要 XTLS 或 Reality
- 新部署
结论: 两者配置完全兼容,新用户建议直接使用 Xray。
核心概念
1. VMess 协议
V2Ray 的原创协议,特点:
- 动态端口: 服务端可以动态更改端口
- 时间戳验证: 防止重放攻击(但要求时钟同步)
- alterId: 额外 ID 机制(已废弃,建议设为 0)
- 加密: AES-128-GCM, ChaCha20-Poly1305
基本配置:
json
{
"vnext": [{
"address": "server.com",
"port": 10086,
"users": [{
"id": "UUID",
"alterId": 0, // 必须设为 0
"security": "auto"
}]
}]
}2. 路由功能
V2Ray 的杀手级功能,支持复杂的流量分流:
json
{
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"domain": ["geosite:cn"],
"outboundTag": "direct"
},
{
"type": "field",
"ip": ["geoip:cn", "geoip:private"],
"outboundTag": "direct"
},
{
"type": "field",
"domain": ["geosite:category-ads-all"],
"outboundTag": "block"
}
]
}
}路由规则支持:
- 域名匹配(完整、子串、正则)
- IP 匹配(CIDR、GeoIP)
- 端口匹配
- 协议匹配
- 入站标签匹配
3. 传输层协议
V2Ray 支持多种传输方式:
| 传输方式 | 特点 | 适用场景 |
|---|---|---|
| TCP | 标准 TCP | 默认选择 |
| mKCP | 基于 UDP 的 KCP | 高丢包环境 |
| WebSocket | HTTP 升级协议 | CDN 友好 |
| HTTP/2 | 多路复用 | 高性能 |
| QUIC | UDP 的可靠传输 | 现代网络 |
| gRPC | Google RPC | 云原生 |
基本配置
服务端配置
json
{
"log": {
"loglevel": "warning"
},
"inbounds": [{
"port": 10086,
"protocol": "vmess",
"settings": {
"clients": [{
"id": "b831381d-6324-4d53-ad4f-8cda48b30811",
"alterId": 0
}]
},
"streamSettings": {
"network": "tcp"
}
}],
"outbounds": [{
"protocol": "freedom"
}]
}客户端配置
json
{
"log": {
"loglevel": "warning"
},
"inbounds": [{
"port": 1080,
"protocol": "socks",
"settings": {
"auth": "noauth"
}
}],
"outbounds": [{
"protocol": "vmess",
"settings": {
"vnext": [{
"address": "server.com",
"port": 10086,
"users": [{
"id": "b831381d-6324-4d53-ad4f-8cda48b30811",
"alterId": 0,
"security": "auto"
}]
}]
}
}]
}常用配置方案
方案 1: VMess + WebSocket + TLS + CDN
适用场景: CDN 中转,隐藏真实 IP
服务端:
json
{
"inbounds": [{
"port": 10086,
"listen": "127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [{"id": "UUID", "alterId": 0}]
},
"streamSettings": {
"network": "ws",
"wsSettings": {"path": "/ray"}
}
}],
"outbounds": [{"protocol": "freedom"}]
}Nginx 前置:
nginx
location /ray {
proxy_pass http://127.0.0.1:10086;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}方案 2: VMess + mKCP + header 伪装
适用场景: UDP 不受 QoS 限制,高丢包环境
json
{
"streamSettings": {
"network": "mkcp",
"kcpSettings": {
"mtu": 1350,
"tti": 20,
"uplinkCapacity": 5,
"downlinkCapacity": 20,
"congestion": true,
"readBufferSize": 2,
"writeBufferSize": 2,
"header": {
"type": "wechat-video" // 伪装成微信视频通话
}
}
}
}客户端使用
v2rayN (Windows)
- 下载 v2rayN 和 v2ray-core
- 解压并运行 v2rayN.exe
- 添加服务器(手动或导入链接)
- 右键托盘图标选择系统代理模式
v2rayNG (Android)
- Google Play 或 GitHub 下载
- 点击 "+" 添加配置
- 扫描二维码或手动输入
- 点击连接
进阶功能
1. 透明代理
将 V2Ray 作为网关,实现全局代理:
json
{
"inbounds": [{
"port": 12345,
"protocol": "dokodemo-door",
"settings": {
"network": "tcp,udp",
"followRedirect": true
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls"]
}
}]
}2. API 接口
用于流量统计和管理:
json
{
"api": {
"tag": "api",
"services": ["HandlerService", "LoggerService", "StatsService"]
},
"stats": {},
"policy": {
"levels": {
"0": {
"statsUserUplink": true,
"statsUserDownlink": true
}
},
"system": {
"statsInboundUplink": true,
"statsInboundDownlink": true,
"statsOutboundUplink": true,
"statsOutboundDownlink": true
}
}
}3. 多出站负载均衡
json
{
"outbounds": [
{"tag": "proxy1", "protocol": "vmess", "settings": {}},
{"tag": "proxy2", "protocol": "vmess", "settings": {}},
{
"tag": "balancer",
"protocol": "freedom",
"settings": {},
"balancerTag": "lb"
}
],
"balancers": [{
"tag": "lb",
"selector": ["proxy1", "proxy2"]
}]
}与 Xray 的迁移
V2Ray 配置可以直接用于 Xray:
bash
# 替换二进制文件
wget https://github.com/XTLS/Xray-core/releases/latest/download/Xray-linux-64.zip
unzip Xray-linux-64.zip
sudo mv v2ray /usr/local/bin/xray
# 配置文件无需修改
sudo systemctl restart v2ray性能优化
系统层面
bash
# BBR 拥塞控制
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -pV2Ray 配置
json
{
"policy": {
"levels": {
"0": {
"handshake": 4,
"connIdle": 300,
"uplinkOnly": 2,
"downlinkOnly": 5,
"bufferSize": 10240
}
},
"system": {
"statsInboundUplink": false,
"statsInboundDownlink": false
}
}
}总结
V2Ray 的优势
- ✅ 功能最完善的代理平台
- ✅ 强大的路由功能
- ✅ 稳定性经过验证
- ✅ 社区资源丰富
V2Ray 的局限
- ⚠️ 性能不如 Xray
- ⚠️ 缺少 XTLS/Reality
- ⚠️ 配置复杂度高
最终建议
- 现有 V2Ray 用户:可继续使用,稳定可靠
- 新用户:建议直接使用 Xray
- 学习目的:V2Ray 是很好的学习材料
相关资源
许可证
V2Ray 采用 MIT 许可证。