前言
Reality,这个协议你可能早就听说过。免域名、免证书、部署简单、成本低,不少人说它“低调、安全、难识别”。但为啥你用起来总是测速为零、秒断、或是握手失败?又为什么到了 2025 ,还是有很多人推荐这个协议?握手失败、测速为零的真正原因你知道吗?
视频演示
准备工作
1、VPS 一台,重置好主流的操作系统,推荐 Debian12(本视频演示 VPS 来自 搬瓦工 CN2 GIA ECOMMERCE )
2、RealiTLScanner
目标网站扫描工具 Releases 页面
- 嫌麻烦懒得编译的
- MacOS M 芯片的用户:点击下载 v0.2.1
- Intel 芯片的用户:点击下载 v0.2.1
- Windows、Linux 请自行下载
3、Reality 协议目标网站检测工具 Releases 页面
- 项目地址:点击访问
搭建 Reality 节点
项目地址:点击访问
寻找目标域名
目标域名的条件
基础条件:
- 不要使用跳转域名(使用跳转完成的域名)
- 目标网站必须支持 TLS1.3
- 目标网站必须支持 X25519
- 目标网站必须支持HTTP/2 (H2)
- 目标域名必须和 SNI 匹配
加分项:
- 尽量别用带 CDN 的网站当目标站
- 尽量不要使用热门网站
- 尽量选择 TLS 握手延迟小的网站
- IP 相近 (使用 RealiTLScanner 扫描即可)
如何寻找目标域名
首先使用 RealiTLScanner
工具,扫描 VPS,导出结果 file.csv 文件,命令如下:
# MacOS、Linux 命令 # 若是提示文件损坏请 执行 sudo xattr -r -d com.apple.quarantine (app地址) ./RealiTLScanner -addr VPSIP -port 443 -thread 100 -timeout 5 -out file.csv # Windows 命令(程序在桌面): cd "%USERPROFILE%\Desktop" RealiTLScanner-windows-64.exe -addr VPSIP -port 443 -thread 100 -timeout 5 -out file.csv
重要提示:
- RealiTLScanner 尽量在本地运行,不要在远端
- 多次运行RealiTLScanner时,请更改输出文件名,如:
file1.csv
、file2.csv
、file3.csv
等 - 如果使用相同的文件名,可能会导致文件导出失败或覆盖之前的扫描结果
批量检测目标域名
使用 Reality 协议目标网站检测工具 对之前导出的结果进行检测
该工具会自动判断目标域名的基本条件以及加分项
# centos 把 apt 换为 yum apt update apt install unzip curl wget -y # 根据自己的系统架构下载相对应的版本 以下为 X86 机型 wget https://github.com/V2RaySSR/RealityChecker/releases/latest/download/reality-checker-linux-amd64.zip unzip reality-checker-linux-amd64.zip chmod +x reality-checker # 开始检测 ./reality-checker check apple.com # 基础单域名检测 ./reality-checker batch apple.com tesla.com microsoft.com # 批量检测多个域名(空格分隔) ./reality-checker csv file.csv # 从CSV文件批量检测域名
部署 S-UI 面板
项目地址:点击访问
部署命令
# 安装最新版命令 bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh) # 要安装所需的旧版本,请将版本添加到安装命令的末尾。例如,ver 1.0.0: VERSION=1.0.0 && bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/$VERSION/install.sh) $VERSION
重要提示:安装完毕以后,若你没有 申请域名,没有 申请证书,在面板没有开启 SSL 登录之前,不要访问面板,更不要登录面板进行操作,这样会使你的面板信息乃至节点信息暴露!
在面板没有开启 SSL 登录之前,我们需要在本地建立加密隧道,来访问面板并部署节点(以后皆是如此)
ssh -L <本地端口>:127.0.0.1:<远程面板端口> <服务器用户名>@<服务器IP> # 例:ssh -L 54321:127.0.0.1:55555 [email protected] # 若 SSH 用非默认端口(如 2222),加 -p 2222: ssh -fN -p 2222 -L <本地端口>:127.0.0.1:<远程面板端口> <服务器用户名>@<服务器IP> # 例:ssh -fN -p 2222 -L 54321:127.0.0.1:55555 [email protected]
看见回显是 VPS 的回显了,有 # 号,证明我们的加密隧道建立成功
我们现在可以在本地访问 http://127.0.0.1:54321/55555,来进行 Reality 节点的搭建了,在节点部署完成之前,不要关闭刚才的加密隧道的窗口,不然就无法在本地通过加密隧道连接了。(在开启面板的 SSL 登录之前,后续访问面板修改节点 都应如此建立加密隧道来访问)
面板 TLS 模版设置
很简单,若是有问题可以 观看视频
添加入站协议
很简单,若是有问题可以 观看视频
添加用户
很简单,若是有问题可以 观看视频
客户端使用
MacOS、Windows 推荐使用 V2rayN,发布页面:点击打开
Android(NekoBox),发布页面:点击打开
IOS/Mac(Shadowrocket),请使用外区 AppleID 进行下载使用,如何申请
测速图片
后记
Reality 这个协议,说简单也简单,说细节也这的是挺多的,它最大的优势就是免域名、免证书、配置干净、部署方便。
尤其是现在 TLS 流量封锁越来越精细的情况下,Reality 借用目标站 TLS 回应的方式,确实比传统伪装更有迷惑性。但若是目标站点选不好,或是服务端时间不准,哪怕你配置一切都是对的,也可能握手失败,测速为零,白忙一场。
所以,我的建议是,目标网站一定要小众、干净、不带 CDN,部署的面板没有开启 HTTPS 的情况下,不要直连,别让面板以及节点信息被探测。