去年我发布了一篇关于 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 天后失效,取决于这个帖子的回复情况延长或缩短。
关于 proxy chain 的优点,可以查看下面这篇文章
https://luxirty.com/article/01815b7d-073d-48ef-9528-7b4ad033f8d0
这里主要讲讲 grpc ,众所周知,连接复用可以节省握手时间,http/2 就拥有连接复用的特性。
然而 clash 只为 grpc 实现了连接复用,http/2 在 clash 中并不具备连接复用。
在实际测试中,我们(@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 的各位来说并不难。
如何更方便地为 clash 自定义规则
你可以看到在上面的测试配置中,我们修改了配置并添加了节点,并且没有依赖任何自建服务,一个公开的 subconverter+gist 足够了
使用订阅转换时,如何把来自不同订阅的 proxy 分别放到不同的 group
唔…好啦,大概就这些!……希望这贴不要沉🥹
1
GabrielleBellamy 2023-06-14 00:22:31 +08:00
好厉害👍🏻
|
2
Janyd 2023-06-14 00:43:53 +08:00 via iPhone
希望写个完整教程
|
3
sickoo 2023-06-14 00:46:13 +08:00
想问一下,开了 Tun ,右下角图标就会显示断网。
|
4
dethan 2023-06-14 01:12:58 +08:00 via Android
这个文章感觉是机翻的…
|
6
LzNOHentai 2023-06-14 01:37:01 +08:00 via Android
极端需要隐私+自定义的值得折腾,不然体验上想超越机场还得找个流媒体等解锁能力优秀的出口节点。
|
7
israinbow 2023-06-14 01:46:04 +08:00
赞👍, 虽赞但是借楼抛砖引玉:
web 浏览随便一个网站动辄数兆大小的初次加载, 或者流媒体播放, 低延迟握手已经没有那么激动了. 当今最大的问题是 tcp 长链接被 reset 或者限速 128 kbps; 有没有网友知道怎么写脚本监听链接的传输速度, 长期低于阈值后断开所有链接, 急求, 在线等急 qqqxx. |
8
lpfzmmlhhlhy 2023-06-14 02:07:41 +08:00
加速应该是 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 ============================ |
9
popzuk 2023-06-14 02:40:08 +08:00 via iPhone
意思是使用 tunnel ,机场节点去连自建 grpc ,获得连接复用的特性吧。
不知道 clash meta 的 dialer-proxy 有没有类似的特性? surge 在前不久修复了 snell v4 的复用,类似的,用机场节点去连 snell ,有的请求会提示: [Connector] Reuse existing connector 虽然我没感觉有什么明显变化。 |
10
CuteKitten 2023-06-14 02:54:21 +08:00 via Android
不打游戏的话延迟没那么敏感,还是多端口轮询拉满带宽比较实在
|
11
Jirajine 2023-06-14 03:40:45 +08:00 1
“clash 所有特性运用到极致”
几年前我也尝试做过这种事情,在仔细阅读 clash 的代码后,放弃了使用这个东西。 |
14
studyingss OP @israinbow 即便有连接复用也节省不了实际浏览网页的那个握手。
这里节省掉的是代理线路上的握手,这个依然是非常长的。 举个例子来说,如果使用 ws+tls ,那么每个连接都需要两次 tls 握手+1 次 ws upgrade ,把代理线路的握手省掉之后相当于每个连接都只要网站本身的握手,还是可以减少不少的。 当然你说的带宽在视频场景下确实影响也不小,这套方案我实际使用下来起速挺快的,不过这个就因线路而异了。 |
15
totoro625 2023-06-14 08:52:34 +08:00
非常感谢介绍 tunnels
之前一直在用 Meta 内核以解决 UDP 的 relay 问题 |
16
M5tuA 2023-06-14 09:01:47 +08:00
谢谢分享👍
希望可以继续讲下去 |
17
0o0O0o0O0o 2023-06-14 09:03:03 +08:00
OP 下一步可以探索总结下各个平台同步修改规则、各个平台多场景一致体验吗?多平台包括 PC (三个)移动(两个)路由器(就默认 openwrt 吧),多场景主要是流量或者宽带、ipv4 或者双栈等等
|
18
Cursor1st 2023-06-14 09:19:42 +08:00
学习一下,不过感觉太深入的比较晦涩,没有网络工程基础知识的话,理解很有困难,还是感谢 op ,(能继续探索大家都能用的方式当然更好,哈哈
|
19
A01514035 2023-06-14 09:25:34 +08:00
感谢,已经用起来了。
不过每次访问一个请求,log 里会出现两条日志,被访问的网址+访问我自建节点的请求。 不过问题不大。 |
20
crazychang 2023-06-14 09:26:14 +08:00
请问下 op ,画这个示意图用的是什么工具?我看 github 很多人图片都是这种风格。
|
21
zcf0508 2023-06-14 09:29:07 +08:00 via Android 1
@crazychang excalidraw
|
22
crazychang 2023-06-14 09:32:31 +08:00
@zcf0508 多谢
|
23
studyingss OP @totoro625 是的,tunnels 的一大好处就是解决了原版内核 relay 不支持 udp 的痛点,并且如果是使用支持 uot 的协议的话,就算外层不支持 udp 也可以实现 fullcone 。
实际上 relay 还有很多奇奇怪怪的问题,比如说如 grpc 和 relay 搭配会造成延迟变高,还有内层协议是 http ,tls ,socks 的话有可能会无法连接(我收到不少人询问这个事)。 tunnel 目前看起来没有这些问题,兼容性最佳,又支持 udp 。 (上面这段话与 t.me/R_A_D_E 共同编写) |
24
studyingss OP @A01514035 可以考虑使用 grpc ,就像示例一样,这样就会只有一条 tunnel 连接。
grpc 的主要缺点是在高丢包线路上表现不佳,tunnel 基本上解决了这个问题,因此可以无成本享受 grpc 连接复用的好处。 |
25
Cursor1st 2023-06-14 09:47:06 +08:00
反馈,系统代理和 tun 模式均无法使用,延迟测试 READY BOOST 超时,原因未知
|
26
Anybfans 2023-06-14 09:57:57 +08:00
请问一下。自己搭建的番茄。怎么做成订阅链接呢。。每次换配置 要所有地方都同步一下
|
27
676529483 2023-06-14 09:58:53 +08:00
厉害,确实快了些
|
28
toan 2023-06-14 10:02:28 +08:00
@lpfzmmlhhlhy 这是 OP 的 trojan 节点?
|
31
zpaeng 2023-06-14 10:27:21 +08:00
好评
|
33
aptupdate 2023-06-14 10:51:02 +08:00 1
|
37
StevenQAQ 2023-06-14 10:58:51 +08:00
请问体验配置中我该替换哪些参数?仅替换 Url 吗?
|
38
molezznet 2023-06-14 11:01:12 +08:00
使用自己的番茄节点怎么导入这个能完善下教程呗,不是订阅链接,而是单独的几个链接?
|
39
tcpdump 2023-06-14 11:05:24 +08:00 1
这不是可以收集一波机场链接了?
|
40
studyingss OP @Anybfans 使用 secret gist ,然后自建一个 ghproxy 。
|
41
studyingss OP @tcpdump 猜到会有这个质疑,为了避嫌这里用的是公共服务,你可以自行 google 搜索 sublink.dev 了解一下这个转换服务哪些人在用,也可以自己替换成别的。
|
42
renyijiu 2023-06-14 11:38:45 +08:00
感觉使用确实快了,厉害了
|
44
aptupdate 2023-06-14 12:38:35 +08:00 via iPhone
|
45
studyingss OP @aptupdate 首先变快只是附带的,最初始的目的是你说的落地,隐私,避免 ip 变化这些。
其次,变快的原因是省去了握手,即便是 ss 协议的机场,在跨境段可能也使用了 tls ,相当于每条连接都要多花一倍的时间在握手上,这还只算了应用层,没算传输层。 连接复用之后,你透过代理访问网站的握手次数实际上等于直接访问,自然就快了。 更详细的信息你可以 google 协议名称+rtt 。 |
46
yanyumihuang 2023-06-14 12:47:27 +08:00 via Android
跟 warp 的 wireguard 共用连不通,流程都是按照写的走的单独的用可以联通,配一起就不行。
|
47
molezznet 2023-06-14 13:13:17 +08:00
shellclash 里尝试好像不能识别 ready boost
|
48
Anybfans 2023-06-14 13:17:07 +08:00
@studyingss #45 看了半天没看太懂。老哥能给一个模板嘛😰
|
49
pC0oc4EbCSsJUy4W 2023-06-14 13:20:53 +08:00
来学习学习
|
50
dragontx4g 2023-06-14 13:33:19 +08:00 2
怀疑是诈骗贴,订阅 url 发给你不就 g 了
|
51
jamosLi 2023-06-14 13:34:17 +08:00
好奇那个图是用什么画的
|
52
superzzy 2023-06-14 13:39:00 +08:00
哇哇哇哇-用了! 确实牛逼~
我想问的是不是一天之后就失效了? 想继续使用怎么办 |
53
hang333 2023-06-14 13:43:10 +08:00 via Android
@dragontx4g 建议看看 41 楼
|
54
Peikon 2023-06-14 13:45:57 +08:00
@dragontx4g 你可以试用后重置订阅 url ,问题不大吧?
|
55
Robertwhite 2023-06-14 13:46:19 +08:00
我想问一下,clash 配置有些域名代理或者不代理有没有什么简单的办法,我网上搜了一下都挺麻烦的,不知道是不是没找到正确的,不像 V2ray ,改个配置文件就可以了
|
56
KaliZ 2023-06-14 13:50:42 +08:00
那么有没有推荐的自建节点的平台呢。。
|
57
cat9life 2023-06-14 13:54:48 +08:00
看起来灰常高大上,但是不明白了。。。
请教 OP ,能否直接使用机场的多线路做隧道,两端都是我自己的 VPN 呢 |
58
Huelse 2023-06-14 13:58:53 +08:00
看起来挺不错,但我这 cfw 选的 READY BOOST 老是 timeout ,实际是可用的。
|
59
theprimone 2023-06-14 13:59:09 +08:00
Clash for Windows 报错:HTTP Response Status Code(400) 是我使用方式有问题吗?直接访问导入文件也不可用,提示 READY BOOST not found 。
|
60
Hilong 2023-06-14 14:00:37 +08:00
我照着楼主的步骤走下来,到最后一步,clash 提示下载配置失败会是什么原因呢
|
61
taylorsellie 2023-06-14 14:03:17 +08:00
@Hilong 我一开始是替换后面的 url 使用点击的时候会失败,后面我直接拼到后面可以成功但是好像默认是那个新加坡的节点,感觉是死的不能用自己的节点加上延迟
|
62
qinfengge 2023-06-14 14:03:20 +08:00
|
63
taylorsellie 2023-06-14 14:07:06 +08:00
@qinfengge 直接加上链接吧,不要去掉原来的,我去掉替换自己的也这样
|
65
ncepuzs 2023-06-14 14:08:49 +08:00 1
@Robertwhite 在托管平台(如 GitHub )上建两个文件(一个代理一个不代理),然后通过像上面的 rule-set 之类的远程引用,建好相应的策略组
|
67
qinfengge 2023-06-14 14:11:08 +08:00
@taylorsellie #63 确实是要直接拼接,我以为要替换 url🧐
|
68
studyingss OP |
69
Caratpine 2023-06-14 14:15:14 +08:00
示意图是用什么工具制作的呀?
|
70
superzzy 2023-06-14 14:18:43 +08:00
@studyingss OP 你好 如果想继续使用该如何做呢
|
71
SmiteChow 2023-06-14 14:21:38 +08:00
ss 又不是不能用
|
72
TrembleBeforeMe 2023-06-14 14:24:33 +08:00
试了下确实反应变快了,等楼主详解文章自建了
|
73
theohateonion 2023-06-14 14:24:55 +08:00
|
74
Smilencer 2023-06-14 14:26:47 +08:00
不知所云,感觉很吊的样子
|
75
shalingye 2023-06-14 14:29:59 +08:00 via Android
用不了呢,使用 ready boost 只能谷歌搜索,其他页面全部 reset 。
|
76
StevenQAQ 2023-06-14 14:41:30 +08:00
想得到楼主的回复,关于"把编码后的内容拼接到下面这一大串链接的末尾"这段话下面的 url ,我可以替换成我 encode 后的链接吗?需要替换哪几个请求参数? config+url?还是仅 url
|
77
jiekeop 2023-06-14 14:42:33 +08:00
感谢感谢,继续输出
|
78
totoro625 2023-06-14 14:44:51 +08:00
测试后发现 Clash for Android 不能使用 tunnels 功能
tunnels 功能只支持一个一个配置自建节点,不支持订阅组 我还是用回了 relay |
79
lqfxz520 2023-06-14 14:53:08 +08:00 via iPhone
不知道怎么用但感觉很厉害👍
|
80
Bichat 2023-06-14 14:55:19 +08:00
试了几个订阅链接,READY BOOST 都超时了。不知道为啥
|
81
RageBubble 2023-06-14 14:57:04 +08:00
有没有专门的详细讲解的网站,这样我就可以喂给 ai ,让它帮我解释解释你的神奇操作。
|
82
cubarco 2023-06-14 15:03:55 +08:00
这个配置的目的就是用机场节点 proxychain 自建节点是吧?
保护隐私可以说得通,但是机场落地的解锁没了也难受呀 |
83
27149 2023-06-14 15:04:57 +08:00
QX 的能不能优化下
|
84
20210610204811 2023-06-14 15:08:56 +08:00 2
|
85
20210610204811 2023-06-14 15:12:38 +08:00 1
@20210610204811 #84 @Nile20 兄弟,搞定了,延迟我这边 180ms 。
|
86
gabkfivyfbst 2023-06-14 15:21:24 +08:00
所以一天之后你给的配置过期了,该怎么继续使用这个功能呀
|
87
Nile20 2023-06-14 15:25:58 +08:00
@20210610204811 感谢提醒,感谢 OP studyingss 的分享。我周末再继续学习一下~
|
88
wangccddaa 2023-06-14 15:34:10 +08:00 1
@Robertwhite 在配置文件同层级 加个 proxyIgnoreList 文件,具体格式可以搜索这个关键字,新版的在配置-更多配置里面直接设置
|
89
gabkfivyfbst 2023-06-14 15:34:30 +08:00
我把转换后的 URL 直接加在了 OP 给出的这个链接的末尾( Fraw%7C 后面,中间没加东西),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 |
90
Giftina 2023-06-14 15:43:39 +08:00
@gabkfivyfbst 可以按教程自建,需要 1 个自建节点,和 1 个订阅: https://luxirty.com/article/chain-proxy-powered-by-clash-tunnels
|
91
Cursor1st 2023-06-14 15:49:36 +08:00
有几个疑问:1 、拼接 op 的链接获取的配置文件 READY BOOST 超时;
2 、如果使用机场节点怎么使用? |
92
AltairT 2023-06-14 15:50:08 +08:00
@theprimone 我也有这个问题。我的 clash for windows 已经是最新的了。
|
93
Giftina 2023-06-14 15:54:18 +08:00 1
简单理解了一下,其实可以总结为 `复用连接的 2 级跳板` 吧
|
95
f6x 2023-06-14 16:24:38 +08:00
那个, 订阅链接不应该随便公开的吧.
|
96
Liniretus 2023-06-14 16:35:54 +08:00 2
补充说明一下:
1. 前面几楼有人说 Clash For Android 不能用,因为 CFA 停更了,最后一个版本的 clash core 尚未支持 Tunnels. 2. Stash (iOS/MacOS) 也有相同的问题,尚未支持 Tunnels ,因此无法用于 Stash Core. 3. Clash Meta for Android 支持 Tunnels. 4. Clash for Windows(clash or clash premium core) / Clash Verge(meta or clash core),均支持 Tunnels. |
97
stonefaker11 2023-06-14 16:41:25 +08:00 via iPhone
不明觉历
|
98
Jirajine 2023-06-14 16:50:08 +08:00
@vitovan 看了代码你就知道了,我举个例子,Match,final 文档说一个 catch-all 的兜底规则,而实际上呢,你去看代码。
|
99
Cambra1n 2023-06-14 16:59:42 +08:00
想问下 v2ray 和 clash 有什么不一样,clash 一直没用明白,这次学习下。
|
100
vitovan 2023-06-14 17:38:36 +08:00
@Jirajine #98
我不是很懂 Go 语言,翻了一下代码,您的意思是他 MATCH 的兜底最后没兜住,给了个 DIRECT 么? 不知道下面的链接对不对: https://github.com/Dreamacro/clash/blob/4d66da2277ddaf41f83bd889b064c0a584f7a8ad/tunnel/tunnel.go#L430 |