VLESS 是 V2ray 工具支持的最新传输协议,具有轻量化、无状态特性。相较之前的 VMESS 协议,VLESS 协议最大的优势在于不依赖系统时间,也不需要 AlterID 配置项。
V2ray 在 4.27.0 内核中加入了 VLESS 协议支持,而一些可视化的 V2ray 客户端也同样加入了 VLESS 支持。
1] V2ray 服务器配置
VLESS 协议目前还没有支持加密,所以需要使用可靠的加密信道,以免传输的信息被侦测到。
以下是完整的基于 TLS 加密的服务端配置示例:
{ "inbounds": [{ "port": 8000, "listen":"0.0.0.0", "protocol": "vless", "settings": { "clients": [ { "id": "YOUR-UUID-HERE", "level": 0, "email": "service@rultr.com" } ], "fallback": { "addr": "127.0.0.1", "port": 8001, "xver": 1 }, "fallback_h2": { "addr": "127.0.0.1", "port": 8002, "xver": 1 }, "decryption": "none" }, "streamSettings": { "network": "tcp", "security": "tls", "tlsSettings": { "serverName": "YOUR-SERVER-NAME", "alpn": [ "h2", "http/1.1" ], "certificates": [{ "certificateFile": "PATH_TO_YOUR-PUBLIC-KEY", "keyFile": "PATH_TO_YOUR-PRIVATE-KEY" } ] } } }], "outbounds": [{ "protocol": "freedom", "settings": {} },{ "protocol": "blackhole", "settings": {}, "tag": "blocked" }], "routing": { "rules": [ { "type": "field", "ip": ["geoip:private"], "outboundTag": "blocked" } ] }
其中需要根据应用场景修改的内容包括:
- “port”:是 V2ray 侦听的端口,根据情况自行设置,启用了防火墙的主机需要放行本端口
- “id”:是与客户端对应的 UUID 值,可自行设置,一般使用”cat /proc/sys/kernel/random/uuid”命令生成
- “email”:可自行设置,可能将来会有其他用途
- “serverName”:代理服务器域名或 IP 地址,由于采用了 tls 加密,一般使用域名,当然域名证书自签名为 IP 地址也可以
- “certificateFile”:域名公钥的存放路径
- “keyFile”:域名私钥的存放路径
其他内容不需要修改,使用示例中的内容即可。
需要特别说明的是,示例中对 fallback 和 fallback_h2 都进行了设置,这两个配置项是可选配置,不使用的话留空即可。虽然不太明白回落的具体含义,但是官方强烈建议使用,就配置起相应的回落地址。配置了回落,则需要进一步配置 Web 服务器响应回落流量,否则 V2ray 工作不正常。
2] Web 服务器配置
既然设置了回落,则需要配置 Web 服务器响应 V2ray 转发来的内容。以 Nginx 服务器为例,添加两个服务器分别响应 fallbak 和 fallbak_h2 的请求:
server { listen 127.0.0.1:8001 proxy_protocol; server_name localhost; set_real_ip_from 192.168.1.0/24; charset utf-8; # access_log logs/yourserver_8001.access.log proxy; location / { root /var/www/html; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; } server { listen 127.0.0.1:8002 http2 proxy_protocol; server_name localhost; charset utf-8; # access_log logs/yourserver_8002.access.log proxy; location / { root /dataroot/webroot/html; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; }
配置文件中的”root”配置项可以根据实际情况进行修改,侦听端口要与之前 V2ray 的 fallback 配置内容相对应。
如果配置文件有错,可以在 Nginx 的 http 配置块中加入如下内容解决:
proxy_set_header X-Real-IP $proxy_protocol_addr; proxy_set_header X-Forwarded-For $proxy_protocol_addr;
以上就完成了 V2ray 服务端的所有配置,重新启动 V2ray 和 Nginx 服务器,以使用配置生效。
3] V2ray 客户端配置
V2ray 客户端配置使用 VLESS 协议同使用 VMESS 协议区别不大,方便起见使用 V2rayN 进行演示。
首先手动添加一个 VLESS 服务器,会弹出如下窗口:
图.1 V2rayN 添加 VLESS 服务器
输入与 V2ray 服务器对应的地址、端口、用户ID 和服务器别名后,在底层传输安全中选择”tls”,并将跳过证书验证设置为”true”,就完成了客户端的全部设置。
配置完成后,点击确定保存配置。
全部完成后,就可以启动客户端,并进行扶墙验证了。
总体来说,VLESS 协议任然采用 TCP 连接,同时支持 tls 数据加密,不再需要使用 VMESS 协议的 ws 方式由 Web 服务器转发请求,性能上势必有提升。
通过使用情况来看,VLESS 协议工作比较稳定,性能上也不错,建议有条件的朋友可以尝试一下。