XTLS 可以说是 Xray 的最大贡献,通过其回落技术,可以有效识别普通 HTTP 请求和 Xray 请求,达到最大程度隐藏代理数据的目的。
与之前代理工具通过 ws 方式由 HTTP 服务器转发请求的方式不同,XTLS 直接由 Xray 处理请求,将非代理数据转发至后端的 HTTP 服务器,这也就是所谓的回落;而 Xray 客户端发送的代理请求则会由 Xray 服务器直接处理。这样做的好处是无论请求是否为代理数据,都可以被正常响应,并且非代理数据的响应由 HTTP 服务器发送,会被侦测工具认为是正常的 HTTP 响应,从而最大程序降低被侦测的风险。
1] 配置 Xray 服务器回落
想要使用 XTLS 的回落功能,首先要使用最新的 VLESS 协议,因为 VLESS 协议取消了之前 VMESS 协议要求的客户端与服务器间的严格对时,这样就让 Xray 转发 HTTPs 请求成为可能。
Xray 服务端配置回落,完整的配置文件如下所示:
{ "log": { "loglevel": "warning" }, "inbounds": [ { "listen": "0.0.0.0", "port": 443, "protocol": "vless", "settings": { "clients": [ { "id": "YOUR_UUID_HERE", "level": 0, "email": "service@rultr.com", "flow": "xtls-rprx-direct" } ], "decryption": "none", "fallbacks": [ { "dest": 8001 }, { "alpn": "h2", "dest": 8002 } ] }, "streamSettings": { "network": "tcp", "security": "xtls", "xtlsSettings": { "serverName": "YOUR_DOMAIN_HERE", "alpn": [ "h2", "http/1.1" ], "certificates": [ { "certificateFile": "YOUR_CERT_KEY_HERE", "keyFile": "YOUR_PRIV_KEY_HERE" } ] } } } ], "outbounds": [ { "protocol": "freedom", "tag": "direct" } ] }
配置文件中:
- YOUR_UUID_HERE:指 VLESS 协议的 uuid 值,需要自行设置
- YOUR_DOMAIN_HERE:指 VPS 主机的域名,与 Nginx 侦听域名相对应,需要自行设置
- YOUR_CERT_KEY_HERE:指域名证书的公钥文件路径,需要自行设置
- YOUR_PRIV_KEY_HERE:指域名证书的私钥文件路径,需要自行设置
同时,配置文件指定了两个回落端口 8001 和 8002,其中 8001 为 HTTP 请求的回落端口;8002 为HTTPS 请求的回落端口。
2] 配置 HTTP 服务器响应 Xray 回落请求
现在配置 HTTP 服务器侦听 Xray 转发的请求,实现回落的完整功能。
Xray 回落的端口分别为 8001(HTTP)和 8002(HTTPS),现在以 Nginx 服务器为例,配置 HTTP 服务器来响应 Xray 转发的请求数据。
在”/etc/nginx/conf.d/”目录添加一个”xray-fallbacks.conf”的配置文件,内容如下:
server { listen 127.0.0.1:8001; server_name YOUR_DOMAIN_HERE; location / { root /usr/share/nginx/html; index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } server { listen 127.0.0.1:8002 http2; server_name YOUR_DOMAIN_HERE; location / { root /usr/share/nginx/html; index index.html index.htm index.php; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } server { listen 80; server_name YOUR_DOMAIN_HERE; return 301 https://YOUR_DOMAIN_HERE$request_uri; }
配置文件中所有的”YOUR_DOMAIN_HERE”均需替换成与之前 Xray 配置文件中设置的一致。配置文件中设置了 80 端口的自动跳转,这样就更加像一个已经启用 HTTPS 的正常网站。
由于在 Xray 的 XTLS 配置中已经设置了域名证书,所以在 Nginx 的 HTTPS 协议中就不需要再指定证书信息了。
3] Xray 客户端配置
Xray 服务器端虽然配置启用了 XTLS,但这对于 VLESS 客户端则没有影响,按 TCP 连接的客户端配置即可。Qv2ray的示例配置如下图所示:
图.1 Qv2ray 连接 Xray XTLS 服务器
客户端只需要保持”YOUR_UUID_HERE”和”YOUR_DOMAIN_HERE”同服务器一致即可。
至此,一个完整的 Xray 服务器及一个响应其回落的 HTTP 服务器组成的系统就搭建完成,相对比较简单,但是其机理却相当的高级。