萝卜小站

要做所有萝卜中最胡的一条

0%

CentOS下基于X-UI搭建Vless + Reality协议

准备工作

我们都知道, 普通的 TLS 代理的一个重要弱点就是各种加密进行套娃,虽然加密包的外观让防火墙无法进行分辨,但是加密套娃无可避免的一个点就在于,它会在每个包都增加一个数据包头,那加密的层数越多,包的头也会越多,这个增量虽然不大,但这个数据可能具有某些统计学的一些特征。

那若是发现这个特征,是的,那 TLS 的代理也就不太安全了。

想当初,RPRX 发布了 XTLS,而 XTLS 其主要原因就是为了减少额外的加密,在 TLS 代理的特征被暴露以后,Xray-core 1.8.0 马上推出了新的流控 —— Vision,至此,当使用 Vision 传输 TLS1.3 的数据时,99% 的数据包,几乎拥有完美的流量特征,因为他是原始数据,没有经过任何的加工。

然而在此之外,2023年3月,Xray-core 1.8.0 又进一步推出了 Reality 协议来取代传统的 TLS 服务,这样可以消除服务端 TLS 的指纹特征,仍然具有前向保密性,而且证书链也是攻击无效,那这样安全性的确就超越了常规的 TLS,关键可以指向别人的网站,所以无须自己购置域名,布置证书等,而且,不必使用 VPS 的 443 端口,所以,的确是方便和安全了不少。甚至,在我自己长达半年的使用过程中 Reality + Vision,没有出现任何问题,延迟、速率也是很不错。

服务端搭建

首先准备一台VPS,配置好CentOS系统。

1
2
yum update -y 
yum install curl wget -y

因为原版的 X-UI 已经很久没有更新和维护了,以下的 X-UI 为改版,来自 GitHub :点击访问

更新频率更高,推荐大家使用。

1
bash <(curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/x-ui/master/install.sh)

根据提示设置好账号密码,端口输入 18650 即可。

设置完成后,根据VPS的IP地址和端口号,在浏览器中打开页面,输入用户名密码登录。

若打不开则排查防火墙,使用命令开放18650端口。

1
firewall-cmd --zone=public --add-port=18650/tcp --permanent

开放后重启防火墙生效

1
firewall-cmd --reload

登录后点击 切换版本 按钮,将X-ray的内核切换为最新版本。只有v1.8.0以上才支持Reality协议。

点击左侧面板设置,会提示根路径为空,点击确定就会为我们自动分配一个根路径,可以自己修改成方便记的路径,后续我们登录面板都需要在端口号后面拼上根路径。

若是忘记了根路径,可以在VPS上使用 x-ui 命令查看

点击 入站列表添加入站 ,备注输入 reality ,协议选择 vless ,端口可以不用动。

点击 添加用户 右边的加号,可以设置到期时间和流量限制,也可以不动保持默认。

然后打开下面的 reality 开关,打开以后回到上面用户那里有个 flow 选项,我们选择 xtls-rprx-vision ,回到下面填写 目标网站 字段。

这里会给我们默认输入了一个网址,我们要换掉。最好换成和我们的VPS的IP相近或者更冷门的网址。

目标网站最低标准:国外网站,支持 TLSv1.3 与 H2,域名非跳转用

加分项:IP 相近(更像,且延迟低),Server Hello 后的握手消息一起加密(如 dl.google.com),有 OCSP Stapling

配置加分项:禁回国流量,TCP/80、UDP/443 也转发(REALITY 对外表现即为端口转发,目标 IP 冷门或许更好)

可以使用 这个网站 来寻找 TLS1.3 / X25519 / H2 的指向站点,打开网站后,点击下面的 SSL Server Test ,可以看到有很多 A+ 的网站,如果没有的话多刷新几次网页。

我们随便点击一个 A+ 的网站,打开后往下翻,查看 TLS 1.3 字段是否为 Yes ,如果不是的话换一个网站。

如果打开后是一个IP地址列表,点击其中的IPv4地址即可。

如果网站支持 TLS 1.3 ,那我们就回到顶部,复制这个网站的网址,在新页面打开。

打开F12开发者工具,点击 安全 选项卡。

没有 安全 选项卡的,点击右侧三个点 → 更多工具 → 安全。

查看该网站的安全连接设置,如果看到 TLS 1.3X25519 字样即可。

还是F12开发者工具,点击 网络 选项卡,然后刷新网页,查看请求的 协议 字段。

没有协议字段的,在表头点击右键可以勾选。

如果看到 h2 字样即可,证明这个网站是符合我们要求的,我们记住这个网站的网址,不带 https:// 的。

回到我们的x-ui面板填写 目标网站 字段,粘贴我们找到的网址,后面的 :443 也要保留,不要删了。

填写 可选域名 字段,也是粘贴我们找到的网址,此处不带 :443 了。

这俩字段都不要带https://

全部填写完毕,点击右下角 添加 按钮,这个节点就搭好了。

点击这个节点左侧的 操作 按钮,选择 二维码 ,然后点击 复制 按钮即可把节点信息复制到剪切板,先粘贴到别处,客户端会用到。

Windows客户端配置

V2rayN

在客户端 V2rayN 首页直接 Ctrl + V 就可以把节点信息粘贴过来。

粘贴过来后,右键点击该节点,点击 编辑服务器 按钮,然后点击下面的 确定 按钮。

下面选择 自动配置系统代理 就翻好了,浏览器打开谷歌测试一下。

Clash Verge Rev

新手不推荐

所有clash系的客户端都需要把配置链接转换为订阅地址,具体转换方式此处不赘述,后续我会专门出一个订阅地址转换的教程。新手别折腾,我在这里只贴一下 Vless+Reality 的 clash 规则文件样式,新手或者看不懂的绕过。

1
2
proxies:
- {name: Reality, server: 192.168.111.111, port: 27563, reality-opts: {public-key: 5gOVGnI5gZfSx0dL4iFXP1f1wLjimLGUVoiepOPJe14}, client-fingerprint: chrome, type: vless, uuid: 3d091f5c-b5cd-4931-00c4-f9ff1d21bbe9, tls: true, tfo: false, flow: xtls-rprx-vision, skip-cert-verify: false, servername: www.domain.com, network: tcp}

此处按照你实际的内容替换对应字段即可。支持X-ray和Vless内核的Clash系客户端都可以使用,包括安卓端的Clash Meta。

此处贴一个 订阅转换的网站 ,使用时请注意,这类网站都有节点信息泄露的风险,想好了再用。

Android客户端配置

v2rayNG

我没用过,应该也是把节点信息粘贴过来就好了。

Clash Meta

和电脑端一样,不推荐新手使用。

导入订阅链接即可使用。

开启 BBR 加速(选修)

1
wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

后记

有了 X-ui 面板,可视化的搭建 Reality ,也是极为方便,而且这种协议也是目前来说比较安全的代理方式之一,不需要自己购买的域名,可以有效的去除普通 TLS 代理过程中的一些特征。

但是互联网没有绝对,无非也就是矛与盾之间的较量,只是在目前来说不容易被封 IP 和端口。

若是你问我,是不是推荐所有人都来使用它,其实我不推荐,这只是一种方法,若是你自创的一种方式能长期稳定的使用,那么我不推荐你进行更换,就像 XTLS 官方所说:“把所有的鸡蛋都放在一个篮子里是十分危险的,我们鼓励大家善用每个工具的特性,分散特征”。

比如:NaiveProxy、魔改的 ShadowsocksMITM 代理 等等。我个人觉得,越少冷门越好。