准备工作
我们都知道, 普通的 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 | yum update -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.3
、 X25519
字样即可。
还是F12开发者工具,点击 网络
选项卡,然后刷新网页,查看请求的 协议
字段。
没有协议字段的,在表头点击右键可以勾选。
如果看到 h2
字样即可,证明这个网站是符合我们要求的,我们记住这个网站的网址,不带 https://
的。
回到我们的x-ui面板填写 目标网站
字段,粘贴我们找到的网址,后面的 :443
也要保留,不要删了。
填写 可选域名
字段,也是粘贴我们找到的网址,此处不带 :443
了。
这俩字段都不要带https://
全部填写完毕,点击右下角 添加
按钮,这个节点就搭好了。
点击这个节点左侧的 操作
按钮,选择 二维码
,然后点击 复制
按钮即可把节点信息复制到剪切板,先粘贴到别处,客户端会用到。
Windows客户端配置
V2rayN
在客户端 V2rayN
首页直接 Ctrl + V
就可以把节点信息粘贴过来。
粘贴过来后,右键点击该节点,点击 编辑服务器
按钮,然后点击下面的 确定
按钮。
下面选择 自动配置系统代理
就翻好了,浏览器打开谷歌测试一下。
Clash Verge Rev
新手不推荐
所有clash系的客户端都需要把配置链接转换为订阅地址,具体转换方式此处不赘述,后续我会专门出一个订阅地址转换的教程。新手别折腾,我在这里只贴一下 Vless+Reality 的 clash 规则文件样式,新手或者看不懂的绕过。
1 | proxies: |
此处按照你实际的内容替换对应字段即可。支持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
、魔改的 Shadowsocks
,MITM
代理 等等。我个人觉得,越少冷门越好。