[经验分享] 理清思路,写出最适合自己的分流规则其实很简单

3 月 30 日
 madsword
很多人在配置代理时,总觉得分组策略是门玄学,习惯去各大论坛找一份现成的“完美配置”。现在很多人在用 smart 内核确实越来越智能,自带了很多强大的功能,但客观来说,这种内核很重,而且再聪明的智能内核,也很难做到完全了解每个人的具体网络环境和使用习惯。
​分流这东西其实并不复杂。授人以鱼不如授人以渔,今天就简单梳理一下分流的底层逻辑,分享一下怎么根据自己的实际痛点,写出一套真正“一劳永逸”的规则。
​一、 核心痛点拆解
​首先,大前提很明确:墙内默认直连( DIRECT )。
对于墙外的普通网站,我们的核心诉求无非两个:既要 IP 稳定不乱跳,又要低延迟。 理清了这点,节点分组的思路就出来了:所有节点直接按地区分(比如香港、日本、韩国、新加坡、美国、英国等),然后按需分配策略。
​二、 策略组怎么选?看你重“求稳”还是重“速度”
​1. 忌讳 IP 乱跳的用户
如果你对 IP 稳定性要求很高(比如容易被风控的网站),每个地区分组可以使用 load-balance (负载均衡),并配合以下两个参数:
​consistent-hashing:将相同“目标地址”的请求,分配给策略组内的同一个节点。
​sticky-sessions:将相同“来源地址+目标地址”的请求分配给同一个节点,并设置个 10 分钟缓存过期。
这样一来,就能有效避免访问同一个网站时 IP 反复切换的问题。
​2. 追求极致速度的用户
如果你无所谓 IP 乱跳,只要快就行,那直接设置成 url-test (自动测速选择)。
建议把测速间隔 interval 设为 300 秒。如果你的节点太多,怕测速太频繁导致连接数爆炸,记得加上 lazy: true (懒惰状态)。默认为 true 时,只要没选中当前策略组,它就不进行测试,非常节省资源。
​三、 默认 Proxy 组的兜底逻辑
​各地区分好了,默认的 Proxy 分组怎么设置?推荐用 fallback (可用性测试)。
按节点的物理延迟,把地区组从低到高排个序。比如:香港节点延迟 30ms 排第一,新加坡 60ms 排第二,美国 160ms 排第三。
​划重点: 排序的最后一个,一定要加一个 DIRECT 兜底!万一哪天节点失效了,那些墙外但其实能直连的“漏网之鱼”也不至于跟着彻底断网。
​其实,一般人折腾到这一步就已经完全够用了。在你的 rules: 底下,只需要保留这两条极简的兜底规则:
​- GEOIP,CN,DIRECT
​- MATCH,Proxy
就能舒舒服服地实现国内外最快速的自动分流,日常上网毫无压力。
​四、 进阶定制:AI 、流媒体与特殊 App
​如果有更高阶的需求,可以在基础架构上继续添加特定分组:
​AI 专属组: 比如某些 AI 服务不能用香港节点,那就新建个“AI 分组”,把不可用的地区剔除。剩下的节点依然用 fallback ,按延迟从低到高排序。
​流媒体分组: 奈飞不想看日区,只想看美区?同理,建个分组,把不能用的地区全剔除,剩下的按喜好或者按延迟排序。
​特殊应用专治: 比如 The Weather Channel 的 App ,一检测到非美国 IP 就直接闪退。这种完全不需要搞复杂的分组,直接在 rules: 下方单独写死一条规则,分配给美国组就行。
​:warning: 防翻车提示: 配置文件里的规则是自上而下匹配的,匹配到了就不再往下看。所以你自定义的 App 规则一定要写在最前面。而列表的最底下,永远是刚刚提到的那两个雷打不动的兜底规则( GEOIP 和 MATCH )。
​五、 测速专属分组 (Speedtest)
​最后单独说下测速。你可以把所有国内外测速网站的规则集,全指定到一个名为 Speedtest 的特殊分组里。
这个组不需要 url-test ,也不要 fallback ,直接用 select (手动选择)。
选项列表里依次放入:第一条 DIRECT ,然后 Proxy ,接着是各个地区分组,或者你想单独测速的特定节点名称。平时不用管,想测谁的速度就手动选谁,干脆利落。
​按照这套逻辑去设置,只要你的节点没有全部失效,平时基本是不需要去手动切节点的,真正做到一劳永逸。
2751 次点击
所在节点    宽带症候群
9 条回复
Essaim
3 月 30 日
说的挺好,捧个场,但是问题就是,大多数人对于翻墙的作用就是临时工具,涉及生产力的都很少,虽然我所有东西都扔在外网账号上,但除了 email ,其他的断个几天对我也不会有太大影响,用别人花精力维护的,基本上都会比自己临时写的好,然后如果有特殊需求,现在的软件几乎都能解决。
surge 、shadowrocket 等等有 modules, loon:plugin, clash 系:parsers ,等等,均允许订阅后添加自己的特殊规则,掌握这些功能可能是一个学习成本、个性化定制更折中的方案。
mangmaimu
3 月 30 日
只要你知道每个规则的作用就是最适合自己的分流规则
MYDB
3 月 30 日
对于大部分人来说,超纲了,他们连文档都找不到,什么分流规则,在他们眼里就是机场提供的一串英文乱码,能看懂的估计只有 password 了,如果是 rule set 规则集,他们甚至看不懂“集”这个中文汉字
WizardLeo
3 月 30 日
我的分流:
1.要 ban 的
2.特殊需求(比如 openai 、特殊国家分流)
3.特殊代理(比如手动设置走代理)
4.国内直连
5.全走代理兜底
anonymity
3 月 31 日
@mangmaimu #2 adguard mitm 这个有相关资料吗?
mangmaimu
3 月 31 日
@anonymity 许多域名禁止 mitm, 不喜欢排查最好不要用
Sunyy
4 月 2 日
1.会的人你不说他也会 2.不会的连基本 direct 都不知道是啥。3.一知半解的能看懂一点但是懒得折腾。
综合以上现在 ai 强大,让 ai 写规则就 ok 了基本上适合自己
Moofish
4 月 5 日
Github 上面很多现成规则,很好用
madsword
4 月 16 日
@Sunyy 其实还是要自己懂自己的需求让 ai 去做, 不然做出来跟机场默认配置也没啥区别

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

https://v2ex.xtra.eu.org/t/1202187

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

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

© 2021 V2EX