Lyndra's Blog

年轻人的第一台VPS:Reality 节点搭建

2025-01-11
工具教程网络安全 VPSProxy
14分钟
2795字
温馨提示:本文最后更新于 2025-03-11 ,部分信息可能因时间推移而不再适用,欢迎反馈。

年轻人的第一台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 个条件:

  1. 使用 TLS 1.3 协议

  2. 使用 X25519 签名算法

  3. 支持 HTTP/2 协议(H2)

  4. 不使用 CDN - 如果 Reality 目标网站使用 CDN,数据将转发到 CDN 节点,使你的 Reality 节点成为别人的反向代理加速节点。

    原理:Reality 节点对外表现为端口转发,如果接收到非 reality 数据,就会将该数据转发给对应的伪装站。如果伪装站套用了 cdn,那么该数据就会被转发给 cdn,cdn 服务器会转发任何套用了 cdn 服务的流量。因此,别人可以利用这个特点,给自己的节点套上cdn,并把数据转发给 Reality 节点,Reality 节点会转发给 cdn,cdn 又会转发给别人的真实服务器。由于 Reality 节点一般在国外,不存在 cdn 减速,所以能够达到中转加速的目的(也有可能各种原因,导致 Reality 节点和别人的服务器网络速度较快)。

  5. 中国境内不依赖任何代理可以直接访问的国外网站

检测目标网站方法

  根据不良林的搭建教程,需要在同一个 ASN 提供商中来查找符合要求的网站,这样得到的目标网站的速度最佳。

  1. 检查 TLS 1.3 支持

    • 打开网站,按 F12,在设置中更改显示语言
    • 在 “安全” 选项卡下,“连接” 应显示 “TLS 1.3,X25519 和 AES_xxxx”,如下图所示
      default
  2. 检查 HTTP/2 支持

    • 或在控制台中输入window.chrome.loadTimes()?.npnNegotiatedProtocol​,输出的值应为 “h2”
      default
  3. 检查网站是否使用 CDN,如果在使用,则这个域名不可以使用

    • 只能检测 cf cdn,弃用)在网站 URL 末尾添加 /cdn-cgi/trace​ 。如:你看上的的域名是https://codepen.io​此时在域名后面加上/cdn-cgi/trace​ ,即:https://codepen.io/cdn-cgi/trace​ ,发现网址内容如下图,则表示网站正在使用 Cloudflare CDN,这样的是不能用的
      default

    • 上述方法只能检测 cf 的 cdn,像是 Akamai 也是 cdn 提供商,上述方法就无法检测了。

    • 建议使用CDN Planet 检测工具,目前来看,该工具较准确。

      default

      default

  4. 中国境内连通性检测方式

    • 打开https://www.itdog.cn/ping/

    • 输入域名,点「持续测试」

    • 等他检测,不用等他 100 个包都发完,大概看看,如果中国境内的任何省份出现如下图这样的 100% 丢包,网络质量全是红色的,则不能使用。因为这样的代表这个省份无法访问这个网站(被墙)
      default

      default

    • 当然是所有省份全能够连通最好,但是如果某个省份可以,另一个不行,且你不会在这个省份使用,那也是可以的。

      default

寻找目标网站

  目标网站获取有4种方式:

  1. 偷自己:用自己购买的域名,并在 VPS 上搭建网站,reality 的伪装网址就设置为自己的域名。
  2. 偷邻居:通过网络空间搜索工具,查找和 VPS 在同一个 ASN 中的合适的网站。
  3. 偷邻居:通过工具在本地自动获取目标网站。
  4. 随便偷一个:选取第三方平台测试完的网站
  5. 偷大厂:大厂网站。

  推荐度: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 查询命令:

1
asn=="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 EncryptZeroSSL 证书认证的网站,但是这样排除后,可能能免费查询的正常的网站会很少,有一些正常网站仍然采用的是这两个机构颁发的证书。所以,如果你搜索出来正常网站很少,就去掉这两个。

偷邻居:通过工具在本地自动获取

  RealiTLScanner:https://github.com/XTLS/RealiTLScanner/releases

  需要关闭本地代理,用本地网络进行扫描。如果在 VPS 中运行扫描工具,可能会导致 VPS 被标记。

  Windows Linux 可用。windows 可按照 【免费科学上网-5】自选Reality目标网站、识别CDN节点、避免成为他人的免费加速节点 中的步骤扫描。

  Linux 可以下载或者安装完后,输入下面的命令搜索,注意将 -addr 后参数替换为自己的 VPS 的 ip 地址。

1
realitlscanner -addr your_vps_ip_addr -port 443 -thread 100 -timeout 5

  运行完成后,会在当前文件夹下,出现 out.csv 文件,用 excel 表格打开,筛选出正常网址。

  一般包含有 api、xyz顶级域名、纯数字域名等域名的直接跳过,尽可能的选取非 Let’s EncryptZeroSSL 机构的网站,如果实在找不到,也可以用这两个证书机构颁发证书的网站。

  补充:如何找到一个适合 REALITY 配置的目标网站?

打开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 传输,并将伪装域名更改为自选的即可。

  例如:

default

  我这里的示例是 3X-UI 的面板,和 X-UI 实际上差不多,但要注意在客户端中,需要将流控 Flow 改为 xtls-rprx-vision。如果已经安装过 x-ui,再安装 3X-UI,所有的数据配置都会被继承,且启动命令也会被自动覆盖。啥都不用改,就能直接用。

  我这里换成 3X-UI 是因为 x-ui 又一次停更了,3X-UI 可能能长久一些,但之前 3X-UI 被爆出在程序里放了一个统计有多少人安装面板的代码,可能有一点安全性问题,这个就看自己抉择了。

本文标题:年轻人的第一台VPS:Reality 节点搭建
文章作者:Lyndra
发布时间:2025-01-11
总访问量
总访客数人次
Copyright 2025
站点地图