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

发表评论

您的电子邮箱地址不会被公开。