目录
科普原理

分流是什么?为什么本地网站应该直连

连上加密通道后,并不是所有流量都该绕一圈。分流按目的地逐条比对规则,决定直连、走加密通道还是直接拒绝。本文用邮局分拣台打比方,讲清规则类型、首条命中的顺序,配时序图逐步说明。

最后更新:

分流(Split Tunneling)是指:连上加密通道之后,按每一次访问的目的地决定它的去向——直连、走加密通道,或者直接拒绝。它不是一个开关,而是一张从上往下比对的规则清单:本地网站直连,海外服务走加密通道,广告和追踪域名直接拦掉。

上一篇 系统代理与 TUN 模式 讲了怎么把流量「接管」过来;这一篇讲接管之后,每个数据包是怎么被分到不同道路上的。

插图:家里的信件经传送带送到分拣台,分拣员按清单从上往下核对,海外信件装进密封管道送往远方,本地信件交给自行车快递送到附近小镇,广告传单进了碎纸机,给邻居打印机的信隔着篱笆直接递过去
  1. ① 所有信件先到分拣台TUN 模式接管全部流量
  2. ② 按清单从上往下核对命中第一条就照办
  3. ③ 海外信件装进密封管道,走加密通道
  4. ④ 本地信件自行车快递,直连
  5. ⑤ 广告传单进碎纸机,直接拒绝
  6. ⑥ 给邻居的信局域网直连,强制规则

先打个比方:邮局的分拣台

想象你家所有寄出去的信,都先被送到同一个分拣台:

  1. 所有信件先到分拣台。TUN 模式把设备上所有程序的流量都接管过来,就像所有信件都走同一条传送带。
  2. 分拣员拿着一张清单,从上往下看。清单上每一行写着「什么样的信 → 送去哪里」,看到第一条对得上的就照办,后面的不再看。
  3. 寄往海外的信,装进密封的管道,送到远方的中转站,再由中转站投递。这就是走加密通道。
  4. 寄往本地的信,交给骑自行车的本地快递,几分钟就送到。这就是直连。
  5. 广告传单,直接塞进碎纸机,根本不寄出去。这就是拒绝。
  6. 给隔壁邻居的信(家里的打印机、路由器)隔着篱笆直接递过去。这一条写死在清单最上面,谁也改不了。

如果没有分拣台,你只有两个选择:所有信都绕道海外中转(全局模式),或者所有信都不加密(不开加密通道)。分流让每封信都走最合适的路。

三种去向

去向做法典型用途
直连从你自己的网络直接发往网站,不经过加密服务器本地的购物、视频、银行、地图网站;局域网设备
走加密通道加密后发往服务器,由服务器代为访问本地网络访问不了或很慢的海外服务
拒绝直接丢弃,不发出任何数据广告、追踪、恶意域名

为什么本地网站应该直连

1. 更快:不绕远路

访问本地网站时,直连的数据只在附近跑一趟,往返通常只要 10–30 毫秒。如果走加密通道,数据要先到海外服务器,服务器再回头访问本地网站,结果原路返回,相当于多跑了两趟跨境线路,延迟往往增加 100 毫秒以上。网页上的每一张图片、每一个接口都要多等这么久,打开速度会明显变慢。

很多本地网站还用了 CDN(内容分发网络),会把内容放在离你最近的机房。走加密通道时,网站看到的是海外服务器的地址,会把你分到海外机房,甚至给出更慢的线路。

2. 不浪费流量

视频、下载、系统更新这些大流量,如果是本地网站,直连就够了。直连的流量不经过加密服务器,既不占用套餐的每日流量,也不和其他用户抢服务器带宽。

3. 避免被风控

银行、支付、购物等网站会检查登录地点。如果你一会儿在本地登录、一会儿又从海外 IP 访问,很容易触发「异地登录」验证,甚至被临时冻结。还有一些视频网站的版权内容只对本地 IP 开放,从海外访问会提示「所在地区无法播放」。直连让本地网站看到的始终是你自己的网络,这些问题都不会出现。

规则怎么匹配

分拣员看的那张清单,每一行由类型 + 值 + 去向组成。常见的规则类型有六种:

类型匹配方式例子
域名只匹配完全相同的域名www.example.com
域名后缀匹配这个域名和它所有的子域名example.com 同时匹配 a.example.com
域名关键字域名里包含这段文字就匹配adservice
IP 段(CIDR)匹配一段 IP 地址203.0.113.0/24
GeoIP按 IP 地址的归属地区匹配,数据来自公开的 IP 地址库「本地 IP 直连」
GeoSite按网站分类匹配,是社区维护的域名清单「本地常用网站直连」

前四种是你自己写的「精确规则」;后两种是现成的规则集,一条规则就包含成千上万个域名或 IP 段,「本地网站直连」通常就是靠这两条实现的。

为什么既要域名规则,又要 IP 规则

规则匹配发生在数据包经过客户端的那一刻。这时客户端手里一定有目的 IP,但不一定知道域名,比如有的 App 直接用 IP 连服务器,或者域名已经在别处解析过了。所以:

  • IP 类规则(IP 段、GeoIP)总能用上,适合兜底;
  • 域名类规则(域名、后缀、关键字、GeoSite)更直观,但需要客户端知道这次访问对应哪个域名。客户端一般有两种办法:一是自己接管 DNS 查询,记下「哪个 IP 是哪个域名解析出来的」;二是从 TLS 握手里读出明文的网站名(SNI,见 HTTPS 加密了什么)。

DNS 查询本身该怎么走,也是分流的一部分,下一篇 DNS 污染与 DNS 泄漏 会专门讲。

规则顺序:首条命中

清单是有顺序的,从上往下比对,命中第一条就停。所以同一个网站可能同时符合好几条规则,最后生效的是排在最前面的那条。

举个例子,你想让 docs.example.com 直连,但 example.com 的其他页面都走加密通道:

✅ 正确的顺序

  1. 域名 docs.example.com → 直连
  2. 域名后缀 example.com → 走加密通道

结果:docs.example.com 命中第 1 条,直连;其他子域名命中第 2 条,走加密通道。

❌ 错误的顺序

  1. 域名后缀 example.com → 走加密通道
  2. 域名 docs.example.com → 直连

结果:docs.example.com 先命中第 1 条,第 2 条永远用不上。

经验法则:越具体的规则越往上放,范围大的规则(规则集、IP 大段)放在下面,最后再用一条最终规则兜底:前面都没命中时,默认走加密通道还是直连。

时序图:三次访问,三种去向

程序 客户端 本地网站 加密服务器 海外网站 访问本地网站:直连 发往本地网站 1 命中「本地直连」 2 直接发出 3 直接返回内容 4 访问海外服务:走加密通道 发往海外服务 5 未命中 → 最终规则 6 加密转发 7 访问网站 8 返回内容 9 加密送回 10 请求广告域名:拒绝 请求广告域名 11 命中「拒绝」,不发出 12
粗线表示加密转发的流量。客户端对每一次访问从上往下比对规则,命中第一条就按它的去向处理。
步骤发生了什么
①–②程序访问一个本地网站,数据包被虚拟网卡交给客户端,客户端逐条比对规则,命中「本地网站直连」
③–④客户端从真实网卡直接发出,网站直接返回内容,全程不经过加密服务器
⑤–⑥程序访问一个海外服务,前面的规则都没命中,落到最终规则:走加密通道
⑦–⑩客户端加密后发给服务器,服务器访问网站,再把内容加密送回
⑪–⑫程序请求一个广告域名,命中「拒绝」规则,客户端直接回绝,什么都不发出去

穿山甲的分流是怎么排的

穿山甲默认使用「智能分流」,清单从上往下分为四层:

  1. 系统强制规则:局域网和私有地址直连(路由器管理页、打印机、NAS),DNS 查询交给客户端处理。这一层始终在最上面,不能关闭;
  2. 我的规则:你自己添加的规则,按列表顺序比对;
  3. 本地直连:本地网站和本地 IP 直连(GeoSite + GeoIP 规则集),可以关闭;
  4. 最终规则:以上都没命中,走加密通道。

规则保存在账号里,换设备登录会自动同步;修改后如果正在连接,App 会自动重连一次,新规则立即生效。添加、排序、删除规则的具体操作见 分流规则详解。

相关阅读

常见问题

分流和全局模式该选哪个?

日常使用选分流(穿山甲里叫「智能分流」)。全局模式让所有流量都绕到海外服务器,本地网站会变慢、还可能触发风控,只适合临时排查问题。

直连的流量会被统计到套餐流量里吗?

不会。直连的流量从你的网络直接发往网站,不经过加密服务器,所以不计入每日流量。

我加的域名规则为什么没生效?

最常见的原因是上面已经有一条规则先命中了。规则从上往下比对,第一条匹配的生效,可以把更具体的规则拖到前面。另外确认代理模式是「智能分流」,全局和全部直连模式会忽略自定义规则。

分流会不会让本地网站看到我在用加密通道?

不会。直连的流量和没开加密通道时完全一样,本地网站看到的就是你自己的网络。这也是本地网站应该直连的原因之一。

还没有安装穿山甲?

支持 iPhone / iPad、Mac、Windows 与 Android。新用户注册即送 7 天会员体验。

下载客户端
← 全部文章