年轻人的第一台VPS:Reality 节点搭建
通过 3X-UI 或者 X-UI 搭建节点。
在第一篇自建节点的教程中:年轻人的第一台 VPS 代理服务器,只创建了 vless+xtls+vison 和 hysteria2 的节点。而目前大家普通认为 vless+xtls+vison+reality 是最稳妥的方案,且速度和可靠性也更高。之前因为寻找目标网址比较麻烦,想着 hysteria 和 vless+vison 够用了,也就没有想着搭建 reality。但随着对各种协议的深入了解,hysteria 协议有着明显的特征,在特殊时期会被 Qos 或者暂时封禁、vless+vison 并不是最稳妥的方案。
因此,在前文基础之上,搭建 vless+xtls+vison+reality 方案,提高节点健壮性。
参考:Reality自建教程、【不良林】2024最新保姆级纯小白节点搭建教程、[免费VPN-5]识别CDN节点,自选Reality目标网站、github.com/XTLS/REALITY
目标域名网站
Reality 需要一个符合要求的网站作为伪装,使得在网络连接时,将自己的服务器伪装为该网站。在搭建时,通常称之为目标域名。
目标域名不需要是自己的域名,可以通过其他人的域名来搭建节点。但域名决定了搭建的节点的速度如何,连通性如何,稳定性如何。Reality 节点不通时,首先应该检查伪装名的网站是否正常。
如果按照之前的文章搭建,那么已经获取了域名,并且在其上搭建有 nginx 和 sub-store 服务。如果不需要其他的订阅、伪装面板功能,则可以省略前面的步骤,但仍然强烈建议购买自己的域名,并设置证书。一是避免面板在公网裸奔,这一点在 xray 的作者之前要求所有面板强制开启 https 的讨论中已经能感受到重要性了;二是让 vps 从外部看起来更像是一个正常的网站服务器,也使得伪装更合理些。
目标网站的标准
根据 reality 的官方描述:
目标网站最低标准:国外网站,支持 TLSv1.3 与 H2,域名非跳转用(主域名可能被用于跳转到 www)
加分项:IP 相近(更像,且延迟低),Server Hello 后的握手消息一起加密(如 dl.google.com),有 OCSP Stapling
配置加分项:禁回国流量,TCP/80、UDP/443 也转发(REALITY 对外表现即为端口转发,目标 IP 冷门或许更好)
因此,目标网站必须满足 5 个条件:
-
使用 TLS 1.3 协议
-
使用 X25519 签名算法
-
支持 HTTP/2 协议(H2)
-
不使用 CDN - 如果 Reality 目标网站使用 CDN,数据将转发到 CDN 节点,使你的 Reality 节点成为别人的反向代理加速节点。
原理:Reality 节点对外表现为端口转发,如果接收到非 reality 数据,就会将该数据转发给对应的伪装站。如果伪装站套用了 cdn,那么该数据就会被转发给 cdn,cdn 服务器会转发任何套用了 cdn 服务的流量。因此,别人可以利用这个特点,给自己的节点套上cdn,并把数据转发给 Reality 节点,Reality 节点会转发给 cdn,cdn 又会转发给别人的真实服务器。由于 Reality 节点一般在国外,不存在 cdn 减速,所以能够达到中转加速的目的(也有可能各种原因,导致 Reality 节点和别人的服务器网络速度较快)。
-
中国境内不依赖任何代理可以直接访问的国外网站。
检测目标网站方法
根据不良林的搭建教程,需要在同一个 ASN 提供商中来查找符合要求的网站,这样得到的目标网站的速度最佳。
-
检查 TLS 1.3 支持
- 打开网站,按 F12,在设置中更改显示语言
- 在 “安全” 选项卡下,“连接” 应显示 “TLS 1.3,X25519 和 AES_xxxx”,如下图所示
-
检查 HTTP/2 支持
- 或在控制台中输入
window.chrome.loadTimes()?.npnNegotiatedProtocol
,输出的值应为 “h2”
- 或在控制台中输入
-
检查网站是否使用 CDN,如果在使用,则这个域名不可以使用
-
(只能检测 cf cdn,弃用)在网站 URL 末尾添加
/cdn-cgi/trace
。如:你看上的的域名是https://codepen.io
此时在域名后面加上/cdn-cgi/trace
,即:https://codepen.io/cdn-cgi/trace
,发现网址内容如下图,则表示网站正在使用 Cloudflare CDN,这样的是不能用的
-
上述方法只能检测 cf 的 cdn,像是 Akamai 也是 cdn 提供商,上述方法就无法检测了。
-
建议使用:CDN Planet 检测工具,目前来看,该工具较准确。
-
-
中国境内连通性检测方式
-
输入域名,点「持续测试」
-
等他检测,不用等他 100 个包都发完,大概看看,如果中国境内的任何省份出现如下图这样的 100% 丢包,网络质量全是红色的,则不能使用。因为这样的代表这个省份无法访问这个网站(被墙)
-
当然是所有省份全能够连通最好,但是如果某个省份可以,另一个不行,且你不会在这个省份使用,那也是可以的。
寻找目标网站
目标网站获取有4种方式:
- 偷自己:用自己购买的域名,并在 VPS 上搭建网站,reality 的伪装网址就设置为自己的域名。
- 偷邻居:通过网络空间搜索工具,查找和 VPS 在同一个 ASN 中的合适的网站。
- 偷邻居:通过工具在本地自动获取目标网站。
- 随便偷一个:选取第三方平台测试完的网站
- 偷大厂:大厂网站。
推荐度:1 > 2,3 > 偷服务器所在地图书馆、大学、旅游局 > 4 > 5
官方推荐第 1 种,延迟最低,不过需要购买域名,并自己搭建网站伪装,还需要满足 reality 的条件。有兴趣可以在网上查找教程(手搓Reality | 偷自己 有证书 Nginx Acme 最强抗封锁协议之一 保姆级教程)。这里因为想和 hysteria2 共存,让 hysteria 在 80 和 443 端口上创建了伪装,就不使用这种方式。
第 2 种方式可以自定义查找离自己服务器近的可用网站,操作相对灵活,但操作上比较繁琐,且不好寻找。第3种方式可以快速获得大量目标网站,但需要自行确认。
第 4 种方式简单,网站已经为我们筛选好了,只要符合目标网站的几个特征可拿来直接使用,但无法判断该网站服务器和 VPS 的延迟,对访问速度会有影响。
第 5 种虽然简单,不需要任何操作,但是不够稳定。之前大部分的节点都采用微软的域名伪装,但后面微软突然将网站的 TLS 1.3 降低到 TLS 1.2,导致大量的节点失效。目前网上的节点,大部分使用 www.yahoo.com 作为目标域名,但不保证能够一直满足条件。
下面主要介绍 2-4。
偷邻居:FOFA手动搜索获取
也是不良林视频中的方式。需要先查询 VPS 的 IP 所在的 ASN,然后在 fofa 中搜索在该 ASN 中建立的符合要求的网站。
ASN查询工具: https://tools.ipip.net/as.php
目标网站查询工具: https://fofa.info
fofa 查询命令:
1asn=="18540" && country=="US" && port=="443" && cert!="Let's Encrypt" && cert.issuer!="ZeroSSL" && status_code="200"
这句话的意思是查询自己vps自治域美国区域,端口为443,不是由临时证书颁发机构颁发的证书,且http请求成功的网站。Let’s Encrypt与ZeroSSL都是免费证书,有效期都是90天
asn: (自治域号码)
port==“443” (端口)
cert!=“Let’s Encrypt” (不是Let’s Encrypt类型的证书)
cert.issuer!=“ZeroSSL” (证书颁发者不是ZeroSSL)
status_code=“200” (HTTP 响应状态码,200的意思是Http请求成功)
需要注意:上述命令排除了 Let’s Encrypt 和 ZeroSSL 证书认证的网站,但是这样排除后,可能能免费查询的正常的网站会很少,有一些正常网站仍然采用的是这两个机构颁发的证书。所以,如果你搜索出来正常网站很少,就去掉这两个。
偷邻居:通过工具在本地自动获取
RealiTLScanner: https://github.com/XTLS/RealiTLScanner/releases
需要关闭本地代理,用本地网络进行扫描。如果在 VPS 中运行扫描工具,可能会导致 VPS 被标记。
Windows Linux 可用。windows 可按照 【免费科学上网-5】自选Reality目标网站、识别CDN节点、避免成为他人的免费加速节点 中的步骤扫描。
Linux 可以下载或者安装完后,输入下面的命令搜索,注意将 -addr 后参数替换为自己的 VPS 的 ip 地址。
1realitlscanner -addr your_vps_ip_addr -port 443 -thread 100 -timeout 5
运行完成后,会在当前文件夹下,出现 out.csv 文件,用 excel 表格打开,筛选出正常网址。
一般包含有 api、xyz顶级域名、纯数字域名等域名的直接跳过,尽可能的选取非 Let’s Encrypt 和 ZeroSSL 机构的网站,如果实在找不到,也可以用这两个证书机构颁发证书的网站。
打开https://bgp.tools/
输入你的VPS IP,回车
然后点DNS选项卡,选Show Forward DNS
下面有你同网段一堆域名给你选,然后挑几个域名,点进去,然后用浏览器的开发者工具看看是不是TLS 1.3以及X25519证书的。
好处是:同网段、网站都够冷门、延迟都在1ms内偷证书速度飞快。
随便偷一个
可以参考:无敌的Xray - Reality协议!无须域名和证书的Reality协议+Vision流控,是否能够摆平一切顾虑!Reality指向网站寻找,Reality客户端推荐(关联节点搭建/科学上网)
在网站 https://www.ssllabs.com/ssltest/index.html 中查询需要的目标网站。
这种方式随机获取,不一定可以找到一个延迟较低,速度比较好的目标网站。
节点搭建
当获取到一个全部满足要求的目标网站后,就可以在 x-ui 上搭建节点了。
参照:【不良林】2024最新保姆级纯小白节点搭建教程 中的教程,只需要开启 reality 传输,并将伪装域名更改为自选的即可。
例如:
我这里的示例是 3X-UI 的面板,和 X-UI 实际上差不多,但要注意在客户端中,需要将流控 Flow 改为 xtls-rprx-vision。如果已经安装过 x-ui,再安装 3X-UI,所有的数据配置都会被继承,且启动命令也会被自动覆盖。啥都不用改,就能直接用。
我这里换成 3X-UI 是因为 x-ui 又一次停更了,3X-UI 可能能长久一些,但之前 3X-UI 被爆出在程序里放了一个统计有多少人安装面板的代码,可能有一点安全性问题,这个就看自己抉择了。