搭建最新的Vision和Reality防止VPS端口封禁

一、介绍

为了应对 TLS in TLS 和指纹识别等阻断或封禁的风险,Xray-core 团队推出了 Vision 和 Reality 两种新颖的技术方案。它们能够有效地隐藏保护流量的特征,提高安全性稳定性。如果您想了解更多关于 Vision 和 Reality 的详细信息,请点击上方查看。

协议组合解决 TLS in TLS解决指纹问题自带多路复用
VLESS-Vision-TLS
VLESS-Vision-uTLS-REALITY
VLESS-gRPC-uTLS-REALITY

二、环境

1. 准备一个境外服务器,选择Debain 9 及以上,或者Ubuntu 16 及以上、又或者CentOS 7 及以上,想服务器速度快请参考 搬瓦工VPS购买教程 或从  CN2 GIA VPS商家推荐 选购,想ip被封后免费换请参考:购买vultr服务器超详细图文教程。如果你不知道什么样的vps更适合你请看这里

如果用VMESS+WS+TLS或者VLESS系列协议,则还需一个域名。对域名没有要求,国内/国外注册的都可以,不需要备案,不会影响使用,也不会带来安全/隐私上的问题。购买域名可参考:Namesilo购买域名详细教程

2. 如果vps运营商开启了防火墙(阿里云、Ucloud、腾讯云、AWS、GCP等商家默认有,搬瓦工/hostdare/vultr等商家默认关闭),请先登录vps管理后台放行80和443端口,否则可能会导致获取证书失败

3.(非常必须)域名购买可以参考上文介绍的域名网站,购买成功后在设置DNS时,可以设置将根域名指向服务器IP(解析域名请参考解析namesilo域名教程),也可以设置二级域名。

比如域名是abc.com,那么可以随意设置 abc.com 或者 www.abc.com 又或者 ab.abc.com,以上三种形式都可以。

4. ssh连接到服务器。Windows系统请参考 Bitvise连接Linux服务器教程,mac用户请参考 Mac电脑连接Linux教程

三、搭建步骤

1.ssh登录服务

2.下载脚本

wget -P /root -N --no-check-certificate "https://raw.githubusercontent.com/mack-a/v2ray-agent/master/install.sh" && chmod 700 /root/install.sh && /root/install.sh

3.安装

  • 这里有两种安装方式,第一种需要自己购买域名第二种无需购买域名

1.第一种安装方式(需要域名)

  • 建议选择 2.任意组合安装->7 ,这样的安装会同时安装 Vision_TLSReality+TCP+uTLS+VisionReality+gRPC+uTLS
  • 个性化安装->1->7

第一步,输入域名

Xray

第二步,端口默认443即可,也可选择自定义端口安装

第三步,剩下的一路回车。

当到达配置 配置VLESS+Reality 需要注意一下,这里的端口可以自定义,如果上方使用了自定义端口这里则可以输入 443 。

剩下的回车后会自动展示账号,到这里有域名的情况就搭建完成了

四、客户端配置

  • 需保持客户端与服务端核心版本相同,比如客户端是1.8.0 服务端则也是1.8.0

1.Android

1.v2rayNG[需要最新版本]

  • vasma->6.账号管理->2.查看订阅 拉取即可

2.windows&macOS

1.Clash Verge

  • vasma->6.账号管理->2.查看订阅 拉取即可

2.Clash for Windows

  • vasma->6.账号管理->2.查看订阅 拉取即可
  • 需替换内核为Clash.Meta
  • 需要下载v1.14.3+的core,名字改为【clash-darwin
  • 替换路径如下# macos intel /Applications/Clash\ for\ Windows.app/Contents/Resources/static/files/darwin/x64/ # macosARM(M1、M2) /Applications/Clash\ for\ Windows.app/Contents/Resources/static/files/darwin/arm64/ # windows 替换文件 clash-win64.exe 程序目录->resources/static/files/win/x64/BashCopy

手动配置示例

  • VLESS Reality gRPC uTLS
 - name: reality-grpc
   server: vpsIP
   type: vless
   port: 端口
   uuid: id
   network: grpc
   servername: 允许客户端访问的域名,对应的是服务端 serverNames
   flow: ""
   udp: true
   tls: true
   reality-opts:
     public-key: 服务端的publicKey
   client-fingerprint: chrome
   grpc-opts:
     grpc-service-name: grpc

  • VLESS Reality TCP Vision uTLS
- name: reality-tcp
  server: vpsIP
  type: vless
  port: 端口
  uuid: ip
  network: tcp
  servername: 允许客户端访问的域名,对应的是服务端 serverNames
  flow: xtls-rprx-vision
  udp: true
  tls: true
  reality-opts:
    public-key: publicKey
  client-fingerprint: chrome

  • VLESS TCP TLS Vision uTLS
- name: Vision-tcp
  server: IP
  type: vless
  port: port
  uuid: uuid
  network: tcp
  serviceName: 域名
  flow: xtls-rprx-vision
  udp: true
  tls: true

3.iOS

1.V2BOX

  • 支持RealityVision
  • vasma->6.账号管理->2.查看订阅 拉取即可
  • 客户端配置->Configs->右上角+号->Add Subscription

2.FoXray

  • 支持RealityVision
  • vasma->6.账号管理->2.查看订阅 拉取即可
  • 客户端配置->订阅列表->右上角+号

2.Shadowrocket

4.Windows

1.v2rayN[需下载最新]

1.reality-tcp

2.reality-grpc

五、注意事项

1.Vision被封答疑【以下内容来源

首先,如果你特别不想被封,请先选择一个干净的 IP,并按照 配置正确 去搭建、使用 XTLS Vision。

但是,即使你这样做了,也无法保证 100% 不被封。自去年底始,很多人的未知流量秒封 IP,TLS in TLS 流量隔天封端口。XTLS Vision 不是未知流量,且完整处理了 TLS in TLS 特征,目前看来效果显著。但这并不意味着,用 XTLS Vision 可以 100% 不被封,认识到这一点是非常、非常重要的,不要自己偶然被封就大惊小怪

因为除了协议本身,还有很多角度能封你。以 IP 为例,你无法保证 IP 真的干净,无法避免被邻居波及,无法避免整个 IP 段被重点拉清单。也有可能某些地区的 GFW 有独特的标准,比如某个 IP 只有寥寥数人访问连却能跑那么多流量,封。如果你的 XTLS Vision 被封了,但没有出现去年底 TLS 那样的大规模被封报告,我真心建议你换端口、换 IP、换服务商依次试一遍

排查

  • 打开[ping.pe]
  • 输入 IP 检测ping可用
  • 输入 IP:Port 检查端口是否可用
  • 主要是看最后几个是否为绿色

2.Reality不支持CDN

3.Reality工作原理

一些GitHub issues的零碎信息,完整版本可以等xray-core更新文档

#1734
#1701
#1697
#1697
#1588

4.Xray-core内存问题解答【以下内容来源

Xray 占几百兆内存,并不代表这是最低要求,而是正是因为你有空闲的内存,Xray 才会拿来当缓存、备用,因为不用白不用。

仅此而已,内存完全够用的情况下,却非要追求这个数据的好看,想捂着不让 Xray 用,有什么意义呢?VPS 商家给你退钱?

对于 Xray 这样的代理类软件,内存占用大头在于对被代理数据的缓存,能用的内存多就能多缓存一些数据,麻烦搞清楚状况。

换句话说,内存占用大头取决于你要的缓存数据能力,每个代理软件的默认策略不一样,你调低缓存自然就可以实现数据的好看

5.影响Reality使用体验的几个因素【以下内容来源

目标网站/域名的选择会极大程度地影响 REALITY 代理的延迟、速度、稳定性等:

  1. 至少目前,REALITY 每次都要去拿握手包,需要注意目标网站近不近、稳不稳定(请求多了就把你半拉黑也是一种不稳定)。
  2. 运营商层面可能会给某些域名更高的流量优先级,拥堵时优先保证它们的流量通过。
  3. GFW 层面至少有黑名单(google)和白名单(microsoft),可能还有其它名单,比如偶尔干扰/限速名单(github?)

如果出现今天不可用但是昨天可用的情况,可能出现的原因:

也可能是你们天天逮着 microsoft、apple 之类的偷,GFW 开始测试了,有人说伊朗那边就有运营商在“内测” yahoo 的 IP 白名单。

REALITY 以后会出个缓存模式,提前采集目标网站的特征,就不用每次都去拿了,这也是相对于 ShadowTLS 之类的优势之一。

还有就是 REALITY 隐藏玩法的任意 SNI、无 SNI,对 REALITY 来说,只要服务端 serverNames 写了,客户端 serverName 就能填。
我需要说明一下不是只有 1.1.1.1 和 8.8.8.8,而是绝大多数网站都有“默认证书”。不过不希望这个玩法泛滥,因为特征明显。

发表回复