tcp-concurrent 在做什么:不是魔法「加速带宽」
在 Mihomo(常被称为 Clash Meta 系内核)里,官方示例注释把这一选项描述为:对一次解析得到的地址集合并发建立 TCP,并使用最快完成握手的那条 TCP。换句话说,它优化的是建连阶段谁先到,而不是 magically 放大带宽上限,也不会替换你在 proxy-groups 里手动挑节点的那份逻辑。
当你的上游域名背后挂着多个 A/AAAA 记录、CDN Anycast 在不同城市弹出不同弹出点,或者 IPv4/IPv6 双栈同时返回时,「先试第一个再超时重试第二个」的瀑布式拨号会把首包时间拉得很像他汀类药物说明书里的脚注——看起来没问题,体感却钝。打开 tcp-concurrent: true 的意义,是把这一串尝试改成并行赛跑:谁先完成三次握手里你关心的那段,就先拿走这条连接。
反过来,它也意味着更多的并行 SYN、更多的半开尝试会在短窗口内打到不同上游。对绝大多数内容站点这不是问题;但对一小撮风控极严的业务,它可能被统计成「同一客户端异常多地触边」。这就是为什么「怎么开」的另一半必须是「什么时候该关」——下面会单独给对照表。
更值得尝试打开的典型场景
- 你已经确认节点与规则没有明显错误,但浏览器首屏「等连接」的阶段偶发飘忽,尤其在多地域 CDN 的海外 SaaS 上。
- DNS 返回多地址且你曾经看到过某条记录超时后才换到另一条(可在日志或抓包中观察到瀑布重试)。
- 你在桌面客户端里同时开了很多标签页或服务,批量短连接频繁建立,希望减少排队感——在保证兼容的前提下,这一开关往往比盲加节点数更便宜。
- 你已经按 Meta 内核 DNS 防泄漏与 Fake-IP 实践(2026)理顺了解析链,想继续榨一点建连层面的余量。
更应该关闭或保持 false 的信号
- 访问网银、支付、电子政务等站点时,一开代理就频繁验证码、直接断连或仅在内核开启某些特性后才出现——请优先把
tcp-concurrent设回false做单向对照。 - 公司 SSL 检查设备、全局 MITM 网关或「只允许单 TCP 会话」的零信任客户端与并行握手同时存在时,日志里若出现大量握手失败或被 RST,也值得先关。
- 你还在同时调试别的实验项(例如复杂 smux、自定义延迟测试、嗅探全开),请先把并发握手固定为一侧,避免出现「九个旋钮一起转」的不可复盘状态。
变量控制:一次只改 tcp-concurrent 与干净的重载,别顺手改节点组测速间隔、DNS 模式与 TUN 栈——否则你无法判断首连变软究竟来自并发握手还是 Fake-IP 漂移。
1配置写在哪:根级布尔值
在官方文档附带的示例配置里,这一键与端口、模式等常规字段处在同一抽象层级:直接向合并后的 Profile 顶层写入即可。下面是一段结构示意,键名与注释请以你所安装的内核小版本说明为准;若客户端把 YAML 拆成「基础/覆写」,请确认最终生效的是合并结果而非某个被遗忘的片段。
# Illustrative top-level keys — verify against your Mihomo release
mixed-port: 7890
tcp-concurrent: true
# Use false for maximum compatibility with strict single-path sites
使用 Mihomo mixin:不改订阅主体的覆写与合并(2026) 的读者,请记得核对「补丁层是否真正把根级键顶上去了」:有时 GUI 只展示片段,保存时却包在某个嵌套映射里,导致你以为开了并发握手,实际上仍在默认 false。
2图形客户端里怎么找
不同发行版把这一布尔放在「内核通用设置」「实验项」或「仅文本模式可写」里,命名也可能显示成英文 TCP concurrent。若面板里找不到,最稳妥的方式始终是:在「编辑完整配置」里全文搜索 tcp-concurrent。这与搜教程行为一致——很多人并不是缺文档,而是没意识到GUI 覆写层与磁盘上的 config.yaml 并不是同一份真相。
改完后务必执行一次应用/重载;若你在 Windows 服务或 macOS LaunchAgent 里常驻内核,别忘了那是另一个进程的热加载路径,与前台调试窗口未必共享同一报错出口。
3可复现的 A/B 流程(看首连,不看玄学)
- 固定测试目标:选一条HTTPS业务域名,最好是你日常感到「钝」的那一个,避免今天测搜索明天测视频。
- 在
false下用无痕窗口冷启动访问三次,用手机秒表粗略记「从回车到首字出现」的主观区间。 - 切到
true,重载内核后重复同样三次,观察是否稳定缩短;若抖动变大或偶发失败升高,即记录并准备回滚。 - 若只在某一类站点变差,请把该域名走直连或独立策略组,而不是全局否定这一优化——这与 Clash Meta GEOIP/GEOSITE 分流(2026)里强调的「分段收敛」是同一思路。
与 DNS、Fake-IP、规则命中的交界
tcp-concurrent 吃解析结果:若你的 DNS 在先验阶段就把流量导向了意外出口,那么并发握手只是在「几条错误的路」上赛跑——体感不会好。若同时使用 Fake-IP,又要避免嗅探与规则顺序导致「看见的是假的、连的是真的」这类错位,可参考上文 DNS 专题与 HTTPS 嗅探与域名维度分流(2026)把维度补齐。
与 URL-TEST、fallback 等多出局策略组相比:前者挑的是哪颗节点;后者解决的是同一次出局前 TCP 层面对多 IP 的赛跑。两套机制可以并存,但排错时不要混为一谈——否则你会出现在论坛里打出「并发节点」这种让人读不懂的句子,而日志里根本没有任何一组策略在切换。
常见问题(简版)
应该写在 profile 子节里吗?
绝大多数用户手上的模版把它放在根级;如果你见过老版本或二次封装的字段搬家,请以导出后的合并 YAML 为准,不要仅凭记忆抄十年前的gist。
游戏语音还是卡,开了它有用吗?
语音与很多游戏的实战流量在 UDP,请改看 TUN、栈类型与 UDP 规则;若你同时遇到的是「网页登录都慢」,再考虑 TCP 并发握手这一层。
日志里能看出是否生效吗?
实务上更应观察现象层:同样的冷启动是否更快、错误是否消失。不同日志级别的细节差异很大,别为了找一行「magic log」而打开 debug 然后把磁盘写满。
小结
tcp-concurrent 是 Clash Meta/Mihomo 里少数几个「一行布尔就能动到建连路径」的通用开关之一:适合作为你在 2026 年继续微调代理 TCP 体验时的一枚低成本旋钮。把它放在「懂规则、懂 DNS」之后使用,收益更稳定;遇到强风控站点时,也别羞于关掉——优化的前提是业务还能访问。
相比在多个第三方论坛里收集互相矛盾的片段配置,把底层 YAML、图形覆写与日志读到同一个「可验证故事线」里,才是长期省时间的办法。市面上不少工具要么停留在过时字段名上,要么把实验开关藏在二级菜单深处;而一款与Meta 生态同步的桌面客户端,往往能减少「文档写着 true、磁盘仍是 false」的脱节点。
若你希望少手动对字段名、多依赖可视化检视合并结果,可以免费下载 Clash,在保持订阅与规则不变的前提下只 toggling tcp-concurrent,用上面的 A/B 顺序记下自己的最佳默认值。