我花了一周准备,想和你分享 Clash 所有特性运用到极致之后的体验

330 天前
 studyingss

前言

去年我发布了一篇关于 clash relay 的教程,在 V2EX 引发了一些讨论。

比如 https://www.v2ex.com/t/894700 还有一些其他的帖子。

当初随便拿来放临时配置的 gist 也有了 50 多个 star https://gist.github.com/miaomiaoclub/6947f7cb93846301f1658da0edcd61bf

时隔半年多,这套方案在和朋友 @ RADE 的共同学习中有了不少改进,tunnels 功能的加入更是让整套方案如虎添翼,不少体验让我自己都有种“wow”的感觉,例如 延迟降低 100%

最终的效果让我到现在都非常兴奋,所以我花了一周时间再来写一篇文章和大家分享。

快速体验

这是我目前使用的配置的示意图,为了美观简化了不少内容。

因为所有东西要讲完真的很复杂,为了让大家快点感受我的激动,我花了一周时间写了一个模版让你可以在 30 秒内开始体验这一切。

你只需要去 https://www.urlencoder.org/ 或者其他什么网站把你的订阅链接进行 url 编码。

然后把编码后的内容拼接到下面这一大串链接的末尾,再把它放到 Clash 里面订阅就可以了。

https://api.sublink.dev/sub?target=clash&insert=false&config=https%3A%2F%2Fgist.githubusercontent.com%2Fmiaomiaoclub%2F2178a7dd7fbbf4b7774ad6f7ad2000c5%2Fraw&emoji=true&list=false&tfo=false&scv=true&fdn=false&sort=false&new_name=true&url=https%3A%2F%2Fgist.githubusercontent.com%2Fmiaomiaoclub%2F92fc5af76ede047810a7a51af86089ee%2Fraw%7C

完成之后你应该可以看到这样的分组,其中的 READY BOOST 就是使用了 tunnel + grpc 的连接,你可以把左右两边的延迟进行对比。

然后你可以在节点选择列表的末尾找到 READY BOOST ,选中它,然后打开几个网页,另外,它应该是可以解锁 ChatGPT 的。

顺带一提,当你自行实现的时候,它是 udp fullcone 的,我在这里禁用了 udp 。

这套体验配置会在 1 天后失效,取决于这个帖子的回复情况延长或缩短。

实现原理是什么?

基于 grpc 的连接复用。

关于 proxy chain 的优点,可以查看下面这篇文章

https://luxirty.com/article/01815b7d-073d-48ef-9528-7b4ad033f8d0

这里主要讲讲 grpc ,众所周知,连接复用可以节省握手时间,http/2 就拥有连接复用的特性。

然而 clash 只为 grpc 实现了连接复用,http/2 在 clash 中并不具备连接复用。

基于 tunnel 的 proxy chain

在实际测试中,我们(@RADE )发现 relay 实际上导致了非常多的问题,例如 udp 无法通过、grpc 奇怪的高延迟等。

因此我们使用 tunnels 替换了 relay ,它的表现相比于 relay 优秀了很多。

你可以到 clash 的官方 wiki 来学习 tunnel 的用法 https://dreamacro.github.io/clash/configuration/configuration-reference.html

也可以看看我的博客,有稍微容易看懂的讲解 https://luxirty.com/article/chain-proxy-powered-by-clash-tunnels

负载均衡、故障转移、最短延迟

在上面的体验配置中我并没有把所有这些特性都加上。因为写起来太麻烦了。但我相信对 V2EX 的各位来说并不难。

实际上还有更多的内容可以讲:

唔…好啦,大概就这些!……希望这贴不要沉🥹

32625 次点击
所在节点    分享创造
162 条回复
GabrielleBellamy
330 天前
好厉害👍🏻
Janyd
330 天前
希望写个完整教程
sickoo
330 天前
想问一下,开了 Tun ,右下角图标就会显示断网。
dethan
330 天前
这个文章感觉是机翻的…
vislins
330 天前
@dethan 你的感觉是错误的。看一下上下文,仔细看。
LzNOHentai
330 天前
极端需要隐私+自定义的值得折腾,不然体验上想超越机场还得找个流媒体等解锁能力优秀的出口节点。
israinbow
330 天前
赞👍, 虽赞但是借楼抛砖引玉:

web 浏览随便一个网站动辄数兆大小的初次加载, 或者流媒体播放, 低延迟握手已经没有那么激动了.
当今最大的问题是 tcp 长链接被 reset 或者限速 128 kbps;

有没有网友知道怎么写脚本监听链接的传输速度, 长期低于阈值后断开所有链接, 急求, 在线等急 qqqxx.
lpfzmmlhhlhy
330 天前
加速应该是 trojan 的 tls 起了作用。
从我生成的配置来看好像是这样的,“READY BOOST, server: 127.0.0.1, port: 7777, type: trojan”
============================
tunnels:
- network: [tcp, udp]
address: 127.0.0.1:7777
target: 138.2.68.200:19902
proxy: 新加坡
proxies:
- {name: ⚡️ READY BOOST, server: 127.0.0.1, port: 7777, type: trojan, password: Awck3sDdX0n796nb7OWCyz9x9AHdSe1pBaRcECmG/fqgJw==, sni: www.icloud.com, skip-cert-verify: true, network: grpc, grpc-opts: {grpc-service-name: socurnx}, udp: true}
proxy-groups:
- name: 🤩 LOOKING GLASS
type: select
proxies:
- 新加坡
- ⚡️ READY BOOST
============================
popzuk
330 天前
意思是使用 tunnel ,机场节点去连自建 grpc ,获得连接复用的特性吧。

不知道 clash meta 的 dialer-proxy 有没有类似的特性?

surge 在前不久修复了 snell v4 的复用,类似的,用机场节点去连 snell ,有的请求会提示:
[Connector] Reuse existing connector
虽然我没感觉有什么明显变化。
CuteKitten
330 天前
不打游戏的话延迟没那么敏感,还是多端口轮询拉满带宽比较实在
Jirajine
330 天前
“clash 所有特性运用到极致”
几年前我也尝试做过这种事情,在仔细阅读 clash 的代码后,放弃了使用这个东西。
leo97
330 天前
@Jirajine 为啥放弃?
Kinnice
330 天前
@Jirajine #11 几年前,现在都不知道变了多少了
studyingss
330 天前
@israinbow 即便有连接复用也节省不了实际浏览网页的那个握手。
这里节省掉的是代理线路上的握手,这个依然是非常长的。
举个例子来说,如果使用 ws+tls ,那么每个连接都需要两次 tls 握手+1 次 ws upgrade ,把代理线路的握手省掉之后相当于每个连接都只要网站本身的握手,还是可以减少不少的。

当然你说的带宽在视频场景下确实影响也不小,这套方案我实际使用下来起速挺快的,不过这个就因线路而异了。
totoro625
330 天前
非常感谢介绍 tunnels
之前一直在用 Meta 内核以解决 UDP 的 relay 问题
M5tuA
330 天前
谢谢分享👍
希望可以继续讲下去
0o0O0o0O0o
330 天前
OP 下一步可以探索总结下各个平台同步修改规则、各个平台多场景一致体验吗?多平台包括 PC (三个)移动(两个)路由器(就默认 openwrt 吧),多场景主要是流量或者宽带、ipv4 或者双栈等等
Cursor1st
330 天前
学习一下,不过感觉太深入的比较晦涩,没有网络工程基础知识的话,理解很有困难,还是感谢 op ,(能继续探索大家都能用的方式当然更好,哈哈
A01514035
330 天前
感谢,已经用起来了。
不过每次访问一个请求,log 里会出现两条日志,被访问的网址+访问我自建节点的请求。
不过问题不大。
crazychang
330 天前
请问下 op ,画这个示意图用的是什么工具?我看 github 很多人图片都是这种风格。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/948499

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX