
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 服务器组成的系统就搭建完成,相对比较简单,但是其机理却相当的高级。