搭建Xray最新Reality协议,解决TLS指纹问题

XRAY REALITY官方脚本安装教程,可以消除服务端TLS指纹特征,无需购买域名也不用部署TLS服务端,安全稳定。

介绍

通常我们使用v2ray需要购买一个域名来生成tls免费证书,虽然有各种伪装,但现在v2ray 的协议已经被识别,经常会被封vps的443端口。现在xray新开发出了REALITY 来取代TLS,可消除服务端 TLS 指纹特征,仍有前向保密性等,且证书链攻击无效,安全性超越常规 TLS。可以指向别人的网站,无需自己买域名、配置 TLS 服务端更方便,实现向中间人呈现指定 SNI 的全程真实 TLS。

和原先的v2ray代理相比,之前TLS或者XTLS已经被墙识别,所以Xray端口经常被封或阻断,Xray1.8.0版本推出了最新的Reality协议,再配合之前的Vision协议,组合成了目前最新的协议“VLESS-Vision-uTLS-REALITY”,它们能够有效地隐藏和保护流量的特征,提高安全性和稳定性。据说用了Reality后sni阻断消失了。

使用REALITY 你只需一台vps,无需购买域名。服务端、客户端Xray都需要升级到Xray1.8.0版本以上。Reality不支持CDN。

Xray REALITY 官方github地址:https://github.com/XTLS/REALITY

搭建

这里我们使用官方代码进行搭建,服务器使用的系统是debian11,注意不要有其他程序占用443端口,如Nginx,Caddy等。

首先xshell登录vps,安装下列官方代码

cd
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install --version 1.8.0

上段--version 1.8.0是安装的版本,有新版本自行更改。

安装完成后使用下列命令生成uuid,Xray可执行文件xray在/usr/local/bin/目录下。

cd /usr/local/bin/
./xray uuid > uuid

使用下列命令生成公、私密钥到key文件。

#cd /usr/local/bin/
./xray x25519 > key

uuid、key文件均在/usr/local/bin/目录下,先查看uuid 和key ,一会直接复制到配置文件。

cat uuid
cat key
查看uuid、私钥、公钥
查看uuid、私钥、公钥

配置文件示例如下,复制到电脑文本文件里修改。注意回落网站必须支持 TLSv1.3,国外大站基本都是TLSv1.3。本例用的是亚马逊购物网站www.amazon.com

{
    "inbounds": [ // 服务端入站配置
        {
            "listen": "0.0.0.0",
            "port": 443,
            "protocol": "vless",
            "settings": {
                "clients": [
                    {
                        "id": "94b60beb-a0fd-4aff-9c7c-9a36f74022db", // 必填,改成自己的uuid,或 1-30 字节的字符串
                        "flow": "xtls-rprx-vision" // 选填,使用tcp就用这个;使用H2协议则为空
                    }
                ],
                "decryption": "none"
            },
            "streamSettings": {
                "network": "tcp",
                "security": "reality",
                "realitySettings": {
                    "show": false, // 选填,若为 true,输出调试信息
                    "dest": "www.amazon.com:443", // 必填,国外的真正存在的网站,后面必须带有443
                    "xver": 0, // 选填,格式同 VLESS fallbacks 的 xver
                    "serverNames": [ // 必填,客户端可用的 serverName 列表,暂不支持 * 通配符,和dest相配
                        "amazon.com",
                        "www.amazon.com"
                    ],
                    "privateKey": "UCWnsGnHIqsCgb10JzaL7TaC9pZKJSSax9vW-QbaVkM", // 必填,刚才生成的私钥Private key
                    "minClientVer": "", // 选填,客户端 Xray 最低版本,格式为 x.y.z
                    "maxClientVer": "", // 选填,客户端 Xray 最高版本,格式为 x.y.z
                    "maxTimeDiff": 0, // 选填,允许的最大时间差,单位为毫秒,0为不限制,可以改为10000-60000之间。
                    "shortIds": [ // 必填,客户端可用的 shortId 列表,可用于区分不同的客户端
                        "88", // 客户端ID之一
                        "888888" // 0 到 f,长度为 2 的倍数,长度上限为 16
                    ]
                }
            }
        }
    ],
    "outbounds": [
        {
            "protocol": "freedom",
            "tag": "direct"
        },
        {
            "protocol": "blackhole",
            "tag": "blocked"
        }
    ]	
}

下面配置Xray REALITY:

nano /usr/local/etc/xray/config.json

把刚才的配置文件黏贴进去,Ctrl X 退出,按y确认。

配置完成后,运行下列命令执行

service xray start

查看状态

service xray status

重启Xray

service xray restart

不报错即表示正常运行。如果出错,可以把配置文件中的"show": false,改为"show": true,,运行/usr/local/bin/xray -c /usr/local/etc/xray/config.json查看详细出错信息。

VPS到国内线路不好的话,可以安装BBR加速,提高tcp发包,让网速更快。

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

安装完成后按要求重启即可。

客户端配置

电脑端下载地址https://github.com/2dust/v2rayN/releases

电脑端需要下载最新V2rayN版本,看项目的介绍。其中Xray-Core需要1.8.0以上,如果不是需要打开V2rayN设置,打开检查Pre-Release更新。然后服务器添加[VLESS]服务器。详细配置见下图:

V2rayN配置Reality协议图
V2rayN配置Reality协议界面图

安卓端下载地址https://github.com/2dust/v2rayNG/releases

2023年4月份后编译的最新路由器固件也可以使用Reality协议,路由端配置见下图:

ShadowSocksR Plus+配置Reality协议图
路由器Lean大的ShadowSocksR Plus+配置Reality协议界面

答疑

REALITY 作为 TLS 有前向安全,也不依赖 CA证书,比常规 TLS 更安全。有人疑惑为什么 REALITY 没有直接用 VLESS UUID 来做认证,而是加了一套公私钥机制?解答如下:若使用对称密钥,GFW 拿到客户端配置就可以进行中间人攻击。若使用 X25519 公私钥结合 TLSv1.3 key_share,即使 GFW 拿到了客户端的公钥,它也无法用来验证某一条连接是不是 REALITY,更无法进行有效的中间人攻击。REALITY 开发原则是默认认为用户客户端配置已经泄露,所以把安全性拉满了。只要保护好 REALITY 服务端的私钥,你的流量就非常安全(若私钥泄露,GFW 无法拿它直接解密流量,但可以进行中间人攻击)。有条件定期更换公私钥就更好了。此外用户可以放心地在多个客户端之间共享公钥。

关于 TLS in TLS 问题,它指的是内层 TLS 握手特征,以及加密套娃特征。REALITY 是 TLS,所以我们可以直接用现成的 XTLS Vision 成熟解决方案,这也是 REALITY 的优点之一,即 TLS 上的东西都可以直接平移过来。包括 HTTP/2 与 gRPC,它们自带多路复用,可以缓解网速问题。REALITY +vision是如何做到在自身是tls时同时又消除tls套tls特征的,REALITY 是对内层TLS握手包进行了填充,不加密内层tls 直接发送。

技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/net/994.html

回复 Milano

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(5条)

  • 西木头
    西木头 2023年11月13日 15:33

    用的楼主的办法 创建的主机 用了有一段时间了
    昨天开始不能访问了 用同样的办法 创建其他ip的机器 结果都不能访问
    是不是该协议也被攻克了呢..
    010 电信线路

  • Milano
    Milano 2023年5月16日 17:26

    請問 80 與 433 端口是搭建時還是任何時間均不可被佔用?謝謝。

    • BandWh.com
      BandWh.com 2023年5月17日 08:58

      @MilanoV2ray Reality监听443端口,使用期间不能有其他程序占用VPS 443端口。80端口没有要求。

  • 马哈
    马哈 2023年4月15日 12:43

    非常好使。目前最好 的教程。感谢。

  • dlsf
    dlsf 2023年4月13日 20:59

    你好,请问能有偿提供技术支持嘛?