01 · DECISION MODEL
协议选型先看约束,不看名称新旧
协议、传输与客户端是三层对象
在 Clash 客户端里看到一个节点名称时,名称通常不能直接说明技术条件。真正决定连接行为的是协议类型、承载方式、加密或认证参数,以及服务器端实现。SS、VMess、Trojan、VLESS、Hysteria2 和 TUIC 属于协议层;TCP、WebSocket、gRPC、HTTP/2、QUIC 等属于传输或承载层;Clash Plus、Clash Verge Rev、FlClash、Clash Nyanpasu、Clash Meta for Android 等是图形客户端。图形客户端负责导入配置、切换策略和调用内核,最终能否识别某种协议,取决于客户端内置的内核及其配置解析能力。
因此,不能把“某客户端支持订阅导入”等同于“订阅里的每一种节点都能运行”。订阅可能被成功下载和解析,但其中某些节点使用了当前内核不认识的传输参数;也可能节点能建立 TCP 连接,却因认证字段、TLS 主机名或 UDP 设置不一致而无法完成握手。选型时应从服务器提供的完整参数出发,再确认客户端和内核是否覆盖这些字段,而不是只比较节点名称中的协议缩写。
五个维度构成可复用的判断框架
第一项是网络路径。稳定的有线或 Wi-Fi 环境通常不需要过度追求复杂的拥塞控制,结构简单的 TCP 协议更容易排查。高抖动、随机丢包或频繁切换基站的移动网络,才更能体现基于 QUIC 的协议在连接迁移和丢包恢复方面的设计价值。第二项是设备资源。桌面电脑更关注吞吐与兼容性,手机还要考虑持续唤醒、后台保活、健康检查和发热。路由器与小型服务器则受 CPU 架构、内存和并发连接数约束。
第三项是业务类型。网页浏览由大量短连接和 DNS 查询组成;视频和大文件更重视持续吞吐;语音、实时协作和游戏会产生 UDP 流量,对抖动比峰值带宽更敏感。第四项是服务端可控程度。如果只能使用现成订阅,应优先选择订阅中参数完整、客户端已经稳定识别的节点。如果可以同时调整服务端与客户端,才适合比较拥塞控制、证书、ALPN、UDP 中继等更细的选项。第五项是维护成本。参数越多,升级、迁移和跨客户端复用时越容易出现字段差异;可观测、可回退的配置往往比理论上更快但难定位的组合更适合日常使用。
| 判断维度 | 优先确认的问题 | 常见误区 |
|---|---|---|
| 网络路径 | 丢包、抖动、NAT 变化是否频繁 | 只凭一次测速决定长期协议 |
| 设备资源 | 是否长期后台运行,CPU 与电量是否受限 | 把桌面端结果直接套到手机 |
| 流量类型 | 主要是短连接、持续下载还是实时 UDP | 只比较峰值吞吐 |
| 兼容范围 | 内核、订阅转换和服务端字段是否一致 | 导入成功就认为全部节点可用 |
| 维护成本 | 是否有稳定回退项和明确错误日志 | 一次叠加过多实验参数 |
先建立基线,再比较替代方案
可靠的选型不从六种协议同时测速开始。先挑一个参数完整、运行稳定的节点作为基线,固定客户端、内核、网络、DNS 与测试目标,只替换协议节点。观察连接建立时间、持续传输、切换网络后的恢复、后台重连和日志错误,而不是只记录测速页面的瞬时数字。移动端至少要分别测试前台连续使用、锁屏后台保持和 Wi-Fi 与蜂窝网络切换,因为这三种状态的调度策略不同。
还应保留规则模式与直连结果作为对照。某个网站变慢,可能是规则将资源分配到不同策略组,也可能是 DNS 返回不同地址,不一定来自协议本身。先确认同一目标确实经过待测节点,再做结论。选型的目标不是找出抽象意义上的“最快协议”,而是找到在当前路径、设备和维护条件下错误最少、恢复明确、长期波动可接受的组合。
02 · TCP FAMILIES
SS、VMess、Trojan 与 VLESS 的设计取舍
SS:结构紧凑,依赖明确的加密方法
Shadowsocks 通常简称 SS。它的核心思路是以较轻的协议结构承载代理流量,由预共享密码和指定加密方法完成数据保护。现代配置应使用受当前内核支持的 AEAD 方法,并保证服务端与客户端的加密方法、密码和端口完全一致。SS 本身字段较少,导入订阅和跨客户端迁移相对直接,日志中的失败原因也较容易沿着端口、密码、加密方法和网络可达性逐项排查。
字段少不代表所有 SS 节点表现相同。服务端实现、加密算法的硬件加速、UDP 中继、插件参数和底层网络都会影响结果。部分订阅还会附带 plugin 与 plugin-opts,用于增加额外承载层;如果当前内核不支持指定插件,即使基础的 server、port、cipher 和 password 均正确,节点仍无法使用。面对资源有限的路由器,SS 经常是易于理解的起点,但应在目标架构上测试加密开销,不能仅按桌面处理器的结果推断。
VMess:身份、时间与传输选项较多
VMess 来自 V2Ray 生态,配置常包含用户标识、alterId、加密选项、网络传输和 TLS 等字段。历史配置中常能看到不同的 alterId 取值,较新的服务端部署通常采用更简化的组合,但客户端仍可能为了兼容旧订阅保留解析字段。VMess 的认证过程对时间状态较敏感,设备时间明显偏差时可能出现认证失败,因此排查时除检查地址和用户标识,还应确认系统时间同步正常。
VMess 的实际复杂度主要来自可搭配多种传输。TCP、WebSocket、HTTP 和 gRPC 对路径、反向代理与服务端配置有不同要求。WebSocket 配置需要核对 path 与 Host;gRPC 需要核对 service-name;启用 TLS 时还要检查 servername、证书验证和 ALPN。订阅转换工具有时会遗漏较少见的传输字段,表现为节点名称存在、基础信息正确,但握手始终失败。处理这类问题时,应将转换前后的单节点配置逐字段比较,而不是不断切换代理模式。
Trojan:使用 TLS 承载,证书参数是关键
Trojan 通常通过标准 TLS 连接承载数据,认证核心是密码。其配置表面上不复杂,但 TLS 相关字段决定了连接能否建立。server 是实际连接地址,servername 或 SNI 用于 TLS 握手中的主机名,两者可以相同,也可能不同。若使用域名连接,DNS 解析、证书有效性与主机名匹配都需要成立。若订阅将域名替换为 IP,却没有保留正确的 servername,常见结果是 TCP 可达但 TLS 验证失败。
部分用户会直接打开 skip-cert-verify 绕过证书错误,这会掩盖域名、证书链或系统时间问题。更稳妥的顺序是先确认设备时间,再检查 servername 是否对应证书名称,然后确认服务端证书链和网络路径。只有明确知道证书验证为何失败并接受相应风险时,才应调整验证策略。Trojan 也可以使用 WebSocket 或 gRPC 等承载,排查逻辑与 VMess 类似:先确认 TLS,再核对 path、Host 或 service-name,最后检查 UDP 与策略组行为。
VLESS:减少协议层负担,安全依赖传输层
VLESS 同样来自 V2Ray 体系,但设计上不在协议层提供与 VMess 相同的加密机制,通常依赖 TLS 或其他安全传输提供机密性和身份校验。它使用用户标识进行认证,常见配置包括 uuid、flow、network、tls、servername,以及与传输对应的附加字段。由于协议层处理更直接,VLESS 经常被用于需要灵活传输组合的部署,但“字段更轻”不等于可以省略安全传输。
VLESS 配置的兼容问题集中在扩展能力。不同内核对 flow、Reality、客户端指纹、传输细节和 UDP 行为的支持时间并不一致。mihomo 对多种 VLESS 扩展提供支持,但具体可用字段仍应以当前内核文档和运行日志为准。订阅中出现未知字段时,解析器可能忽略它,也可能拒绝整个节点;忽略比报错更难发现,因为节点看起来已经导入,却在运行阶段失败。迁移到另一客户端前,应确认关键扩展没有在转换中消失。
proxies:
- name: "SS baseline"
type: ss
server: example.com
port: 443
cipher: aes-128-gcm
password: "your-password"
udp: true
上例只展示 SS 节点的最小结构,用于识别字段关系。实际地址、端口、密码和加密方法必须来自服务端配置。YAML 对缩进敏感,列表项下的字段需要保持同一层级;密码中含有冒号、井号或其他特殊字符时应使用引号。配置加载失败与连接失败是两类问题:前者先检查 YAML 语法和字段名,后者再检查网络、认证与服务端状态。
03 · QUIC TRANSPORT
Hysteria2 与 TUIC:面向不稳定路径的 QUIC 方案
为什么选择 QUIC 作为基础
传统 TCP 连接由操作系统维护拥塞控制和重传状态,代理协议再在其上承载应用数据。QUIC 建立在 UDP 之上,将可靠传输、加密握手和多路流管理放到用户态实现。它可以减少不同逻辑流之间的相互阻塞,并能更灵活地处理连接迁移。当手机从 Wi-Fi 切换到蜂窝网络、出口地址变化或链路出现短时丢包时,设计良好的 QUIC 实现有机会比重新建立整套 TCP 与 TLS 连接更快恢复。
这种能力不是无条件收益。部分网络会限制或整形 UDP,企业网络、防火墙和公共热点也可能直接阻断相关端口。QUIC 的用户态处理会占用 CPU,并产生定时器、确认和保活活动;在低端设备或长期后台运行的手机上,资源代价可能高于简单的 TCP 节点。判断 Hysteria2 或 TUIC 是否合适,首先要确认 UDP 路径稳定,再比较真实业务中的恢复和波动,不能只看理想网络中的单次大文件速度。
Hysteria2:吞吐导向与拥塞控制
Hysteria2 使用 QUIC,并围绕高丢包、高时延路径设计传输控制。配置通常包含服务器地址、认证信息、TLS 主机名,以及可选的带宽、混淆或证书验证设置。mihomo 中常见的节点类型为 hysteria2。认证字段可能由订阅表达为 password 或 auth,不同配置来源的命名需要由解析器正确映射。连接失败时应先区分 UDP 不可达、TLS 失败与认证失败,因为三者的修复方向完全不同。
Hysteria2 的带宽相关参数不应随意填成设备测速上限。拥塞控制需要依据路径能力调节发送节奏,声明值过大可能导致排队、丢包和抖动增加,过小则限制可用吞吐。如果服务提供方已经生成完整订阅,通常先保留其参数;只有在自管两端并有持续测试条件时才调整。对于视频下载等持续流量,可观察一段时间内的平均速度和缓冲稳定性;对于语音或交互业务,应优先观察抖动、重传和切网恢复,而不是峰值。
TUIC:低时延连接与 UDP 承载
TUIC 同样构建在 QUIC 上,配置中常见 uuid、password、server、port、sni、alpn、udp-relay-mode 与拥塞控制选项。不同服务端代际和内核实现对字段组合可能有差异,导入旧订阅时尤其需要关注认证结构。若 uuid 与 password 只保留其中一项,或者 ALPN 与服务端不一致,连接会在握手或认证阶段终止。日志里若出现证书主机名问题,应先检查 sni;若直接超时,则优先验证 UDP 端口和网络路径。
TUIC 对 UDP 业务具有直接吸引力,但并不意味着所有应用都应强制经过 TUN。系统代理通常覆盖支持 HTTP 或 SOCKS 的应用,TUN 则接管更广的 IP 流量。若只为浏览器和常见桌面应用使用代理,系统代理的资源与排错成本通常更低;需要处理游戏、命令行程序或不读取系统代理的应用时,再考虑 TUN。协议选择与接管方式是两个独立变量,不应因选择 TUIC 就默认开启所有网络接管功能。
| 项目 | Hysteria2 | TUIC | 检查重点 |
|---|---|---|---|
| 基础传输 | QUIC / UDP | QUIC / UDP | 网络是否允许目标 UDP 端口 |
| 认证 | 常见为密码或认证字符串 | 常见为 UUID 与密码 | 订阅转换是否保留全部字段 |
| TLS | SNI、证书验证、ALPN | SNI、证书验证、ALPN | 主机名与系统时间是否正确 |
| 调优 | 带宽声明与拥塞控制 | 拥塞控制与 UDP 中继方式 | 先保持默认,再做单变量测试 |
QUIC 节点的标准排查路径
第一步用同一网络测试一个已知可用的 TCP 节点,确认 DNS、规则和客户端整体正常。第二步检查目标 UDP 端口是否可能被当前网络限制,可换到另一条 Wi-Fi 或蜂窝网络对比,但不要同时修改节点参数。第三步读取内核日志:超时通常指向网络可达性,TLS 报错指向 SNI、证书或时间,认证失败则检查密码与用户标识。第四步确认客户端内置的是支持该节点类型的 mihomo 内核,并检查订阅转换是否保留 ALPN、拥塞控制与 UDP 字段。
如果 Hysteria2 或 TUIC 在某条网络上持续失败,而 TCP 协议稳定,不必强行调参。保留一个 SS、Trojan 或 VLESS over TCP 节点作为回退策略更实用。协议选型应允许不同网络使用不同策略组:家庭 Wi-Fi 可以选择经验证的 QUIC 节点,受限公共网络自动或手动切回 TCP 节点。这样能够把网络路径差异显式纳入配置,而不是试图用一套参数覆盖所有环境。
04 · PERFORMANCE
连接速度、资源占用与移动端电量
连接建立时间与持续吞吐不是同一个指标
网页打开速度受 DNS、TCP 或 QUIC 握手、TLS、服务器处理和页面资源数量共同影响。协议握手较轻,只能减少其中一部分时间;如果 DNS 缓慢或页面需要连接多个域名,节点的单连接优势未必能转化为明显体验。持续下载则更依赖路径容量、拥塞控制和服务端出口。短连接测试应重复访问多个目标并清理缓存影响,持续传输测试应保持足够时间,观察速度是否稳定、是否周期性归零以及切换网络后的恢复。
多路复用也需要谨慎理解。将多个逻辑连接放到较少的底层连接中,可以减少重复握手,但底层连接出现拥塞或中断时,影响范围也会扩大。TCP 上的多路复用仍可能受单条 TCP 连接丢包恢复影响;QUIC 的多流设计能减少流之间的阻塞,但会增加用户态状态管理。对于大量短请求,多路复用可能有效;对于少量长期大流量连接,收益不一定明显。默认关闭或开启都不应被视为绝对结论,应依据应用类型测试。
CPU、内存与加密开销
SS 的资源消耗与加密方法、处理器指令集和并发数相关。支持硬件加速的桌面处理器可以高效处理常见 AEAD 算法,而某些低功耗架构对另一类算法更友好。Trojan、VMess over TLS 和 VLESS over TLS 都要承担 TLS 处理,实际开销还取决于传输层是否使用 WebSocket、gRPC 或额外多路复用。Hysteria2 与 TUIC 除加密外,还要在用户态维护 QUIC 的确认、重传、拥塞和流状态。
内存占用通常不由协议名称单独决定。连接数量、规则规模、DNS 缓存、TUN 路由、日志级别和 provider 数量都可能比单节点差异更明显。路由器上出现内存压力时,应先减少不必要的规则集、缩短过多的 provider 链路、限制详细日志持续写入,再比较协议。桌面端则应观察长时间运行后是否持续增长,而不是只记录刚启动的数值。发生异常增长时,保存配置结构和触发步骤,比简单判断某协议“更吃内存”更有定位价值。
移动端耗电由唤醒频率主导
手机电量表现不仅取决于加密计算,更取决于无线模块和 CPU 被唤醒的频率。频繁的节点健康检查、较短的 DNS 缓存、持续日志、后台测速和过于积极的保活都会增加唤醒。即使每次处理量很小,长时间累积也会明显影响待机。基于 QUIC 的节点可能为了保持 NAT 映射发送保活,TUN 模式还要处理更多系统流量;如果设备上有大量后台应用,这些因素会叠加。
优化顺序应先处理全局行为,再换协议。将健康检查间隔设置为满足故障发现需要的合理值,不要让多个 provider 同时高频探测;只保留实际使用的策略组;调试结束后恢复常规日志级别;不需要接管全部流量时优先使用系统代理;确认局域网连接开关与实际需求一致。完成这些调整后,再在同一时间段比较 TCP 与 QUIC 节点。测试期间应保持屏幕亮度、应用活动和网络类型接近,否则系统调度差异会掩盖协议差异。
| 使用状态 | 主要开销来源 | 建议观察项 | 优先调整 |
|---|---|---|---|
| 前台浏览 | DNS、短连接、规则匹配 | 首包时间与失败重试 | DNS 与规则命中 |
| 视频或下载 | 持续加密、拥塞控制 | 平均吞吐与缓冲稳定 | 节点路径与协议基线 |
| 锁屏后台 | 保活、健康检查、应用唤醒 | 待机耗电与重连频率 | 检查间隔和日志级别 |
| TUN 接管 | 系统全流量处理、DNS 映射 | CPU 唤醒与异常应用流量 | 路由范围和排除项 |
建立可重复的测试记录
测试表应至少记录设备、操作系统、客户端、内核、网络类型、接管方式、DNS 模式、节点协议和测试时段。一次只修改一个变量,例如先固定规则模式与系统代理,仅替换 SS 和 Hysteria2 节点;下一轮再固定节点,比较系统代理与 TUN。每轮同时记录成功率和错误类型。若五次连接中两次超时,即使成功时速度很高,也不适合作为自动选择组的唯一节点。
移动端电量至少观察一个完整的日常使用周期,并查看系统电量页面中客户端的前台与后台活动。短时间运行几分钟无法代表待机保活成本。出现耗电异常时,可以先停止所有主动健康检查并关闭详细日志,再逐项恢复,以定位唤醒来源。关于后台运行与省电策略的进一步步骤,可阅读Clash 手机耗电快怎么办。
05 · CORE FAMILY
原版 Clash、Clash Meta 与 mihomo 的家族关系
原版 Clash 奠定配置结构
原版 Clash 建立了广泛使用的 YAML 配置模型:proxies 定义节点,proxy-groups 组织选择、自动测试与回退,rules 按顺序匹配流量,proxy-providers 和 rule-providers 从外部来源加载内容。系统代理、mixed-port、DNS 与规则模式等概念也由此成为多种客户端的共同界面基础。大量订阅和教程沿用这套结构,因此即使原版内核已经停止维护,其配置语义仍然是理解生态兼容性的起点。
原版支持的协议和扩展范围有限。后续出现的 VLESS、Reality、Hysteria2、TUIC,以及更丰富的 DNS、TUN 和规则能力,不应默认能在原版内核运行。某份配置只使用 SS、VMess、Trojan 和基础规则时,可能看起来具有较高兼容性;一旦加入 Meta 扩展字段,就需要明确内核。判断配置归属时,应查看节点 type、DNS 增强选项、TUN 字段与规则类型,而不是只看文件名是否叫 config.yaml。
Clash Meta 扩展协议与网络能力
Clash Meta 在 Clash 配置模型上扩展协议、传输、DNS、TUN 和规则能力,目标之一是保持常见配置的迁移成本可控。它支持更多来自不同生态的节点类型,使一个内核可以处理 SS、VMess、Trojan、VLESS、Hysteria2、TUIC 等多种配置。对用户而言,最明显的变化是订阅中的新协议不再需要为每种协议单独安装不同核心;对客户端开发者而言,则可以围绕较统一的控制接口构建策略、连接和日志界面。
兼容仍然是有方向的。基础 Clash 配置通常更容易迁入 Meta 系内核,而使用 Meta 扩展的配置无法反向保证在原版内核运行。即使字段名称相同,默认值和边界行为也可能随实现演进。跨内核迁移时,应先验证配置能否加载,再检查 DNS、规则和 UDP 行为,最后测试每类节点。不要在迁移前同时改写规则集和节点格式,否则出现问题时无法确定是内核差异还是配置改动。
mihomo 是当前延续名称
mihomo 是 Clash Meta 项目后续采用的名称。很多图形客户端界面仍会使用 Clash、Meta 或 Clash Meta 作为生态称呼,但内置核心可能显示为 mihomo。看到这些名称时,需要区分项目历史名称、客户端品牌和实际核心文件。Clash Plus、Clash Verge Rev、FlClash、Clash Nyanpasu 等客户端可围绕 mihomo 提供界面;Clash Meta for Android 则在名称中保留 Meta。名称不同不代表配置体系完全分裂,关键仍是内核构建与支持字段。
安装包选择应从设备平台和维护状态出发。本站下载页首推 Clash Plus,并同时列出 Windows、macOS、Android、iOS 与 Linux 上可用的客户端。熟悉命令行、服务器或路由器环境的用户可以直接使用 mihomo 内核,但需要自行管理配置、服务启动、日志和升级。普通桌面与手机用户使用图形客户端更容易处理系统代理、TUN 权限、配置更新和策略切换。具体客户端组合见客户端对比与安装包页面。
| 内核分支 | 定位 | 协议范围 | 配置迁移注意点 |
|---|---|---|---|
| 原版 Clash | 基础配置模型与规则体系 | 传统协议与基础代理能力 | 不能假设支持 Meta 扩展字段 |
| Clash Meta | 扩展协议、DNS、TUN 与规则能力 | 覆盖 VLESS、Hysteria2、TUIC 等扩展 | 基础配置迁入较直接,反向迁移需删减 |
| mihomo | Meta 系项目的当前延续 | 持续承接多协议与扩展能力 | 按当前文档确认字段与默认行为 |
客户端版本与内核能力不能混为一谈
图形客户端更新可能只改变界面、配置管理或系统集成,也可能同时更换内核;内核更新则可能增加协议字段、修复连接问题或调整默认值。排查兼容性时应记录两者,而不是只说“Clash 不能用”。日志通常会显示核心名称或启动信息,客户端的关于页面也可能提供内核信息。若同一订阅在两个客户端表现不同,应先比较内核类型和配置解析结果,再比较系统代理、TUN 权限与 DNS 设置。
手动替换内核文件需要谨慎。图形客户端可能对核心文件名、启动参数、控制端口和权限有固定约定,直接覆盖可能导致无法启动或界面无法连接核心。更稳妥的方法是使用客户端提供的内核更新机制,或者在独立目录运行 mihomo 做对照测试。服务器上部署独立内核时,则应使用服务管理器控制启动顺序和自动恢复,并将配置检查放在重载之前,避免语法错误导致现有连接中断。
mihomo -t -f config.yaml
mihomo -d ./profile
第一条命令用于检查指定配置文件,第二条示意以独立工作目录启动。实际可执行文件名称和路径取决于平台与安装方式。配置检查通过只说明语法与已知字段可以被读取,不代表所有远端节点都可连接;启动后仍需通过日志、策略组和实际请求验证网络行为。
06 · SUBSCRIPTIONS
订阅格式、配置兼容与字段保真
节点链接、节点列表与完整配置
“订阅”可能指三种不同内容。第一种是若干协议链接组成的节点列表,例如 ss、vmess、trojan 或 vless 链接;客户端或转换服务负责将链接解析为 Clash 节点。第二种是已经转换好的 proxies 列表,只包含节点,不含完整规则和 DNS。第三种是完整 Clash 或 mihomo 配置,除节点外还包含 proxy-groups、rules、rule-providers、dns、tun 等部分。导入前先判断类型,可以避免把完整配置当节点 provider,或用订阅更新覆盖本地规则。
节点链接适合跨工具传递,但并非所有扩展参数都有统一表达。VLESS 的 flow、Reality 字段,Hysteria2 的带宽与混淆参数,TUIC 的认证和拥塞控制选项,都可能因链接规范、生成端或转换端不同而丢失。完整 YAML 能表达更多字段,但对目标内核的依赖更明确。需要在多个 mihomo 客户端之间迁移复杂配置时,保留 YAML 通常比反复转成分享链接更可靠。
proxy-providers 负责来源,不等于协议转换
proxy-providers 可以让 mihomo 从文件或 URL 加载节点集合,并按 interval 更新。它适合把节点来源与主配置分离,再由多个策略组引用同一个 provider。provider 的 health-check 可以定期访问测试地址,用于判断节点是否可用,但检查频率会影响网络请求和移动端耗电。provider 读取的是目标内核能够解析的内容;如果远端返回的是不兼容格式,单纯放入 provider 并不会自动完成任意协议转换。
proxy-providers:
primary:
type: http
url: "https://example.com/subscription.yaml"
path: ./providers/primary.yaml
interval: 21600
health-check:
enable: true
interval: 1800
url: "https://www.example.com/"
示例中的域名仅表示结构。url 应替换为实际订阅地址,并避免将带访问凭据的链接公开分享。path 指向内核工作目录下的缓存文件;interval 是更新周期;health-check 的 interval 是健康检查周期,两者含义不同。测试地址应稳定、响应较小,并与实际网络目标具有可比性。若多个 provider 都设置很短的检查周期,客户端会持续产生后台连接,移动端尤其需要控制频率。
转换过程最容易损失扩展字段
订阅转换通常经历解析源格式、映射字段、生成目标 YAML 三步。传统 SS、VMess 和 Trojan 的常见字段映射较成熟,但插件、gRPC、Reality、客户端指纹、Hysteria2 与 TUIC 的扩展项更容易受转换器能力限制。转换后应抽查每种协议至少一个节点,比较 server、port、uuid 或 password、network、tls、servername、alpn、flow、udp 等关键字段。不要只比较节点数量;数量相同也可能存在字段缺失。
节点名称也可能影响管理。转换器为了去重会重命名节点,而 proxy-groups 中若直接写旧名称,加载时会出现找不到代理的错误。使用 providers 引用节点集合可以减少名称耦合,但规则目标与策略组名称仍必须存在。完整配置迁移时,先检查所有规则最后指向的策略组,再检查策略组引用的节点或 provider,形成从 rules 到 proxy-groups 再到 proxies 的引用链。
YAML 语法正确仍可能语义错误
YAML 检查能够发现缩进、重复结构和类型问题,却无法确认远端地址、密码、SNI 或规则目标是否正确。常见语义错误包括端口被写成字符串后由某些解析器拒绝、布尔值使用不一致、同名策略组重复、规则指向不存在的组、provider 路径没有写入权限,以及节点启用了服务端不支持的 UDP。应先运行内核配置检查,再启动并观察第一轮 provider 更新、DNS 初始化和节点握手日志。
当完整订阅由服务方维护时,本地修改可能在下一次更新时被覆盖。需要长期保留的规则应放在客户端支持的覆写、合并或本地配置层,而不是直接编辑远端缓存文件。不同客户端对覆写机制的名称和能力不同,迁移前应导出本地规则。Clash Plus 等客户端可以简化配置管理,但依然需要区分远端订阅、生成后的运行配置和本地覆写三层,排查时确认实际生效的是哪一份。
| 内容形态 | 适合用途 | 主要风险 | 迁移建议 |
|---|---|---|---|
| 协议分享链接 | 传递单个或少量节点 | 扩展字段表达不完整 | 导入后核对关键参数 |
| 节点 YAML | 作为 proxy-provider 来源 | 不含策略组与规则 | 保留独立主配置 |
| 完整配置 | 复制完整运行环境 | 依赖特定内核扩展 | 先检查内核,再分层迁移 |
| 转换后的订阅 | 连接不同格式生态 | 字段、名称或类型丢失 | 逐协议抽查,不只看数量 |
07 · USE CASES
按设备与网络场景选择协议
桌面办公与日常网页
Windows、macOS 与 Linux 桌面环境通常具备较充足的处理能力,协议选择应优先考虑稳定性和配置可维护性。已有 SS、Trojan、VMess 或 VLESS 节点稳定运行时,没有必要仅因出现更新的协议名称就更换。网页和协作软件以短连接、DNS 和 TLS 请求为主,规则准确、DNS 响应稳定、系统代理端口正确,往往比协议之间的小幅性能差异更重要。
客户端方面,本站在各平台首推 Clash Plus,同时提供 Clash Verge Rev、FlClash、Clash Nyanpasu 等选择。选择 GUI 后先用规则模式和系统代理建立基线;只有应用不读取系统代理或需要处理更广泛流量时,再启用 TUN。协议节点可以设置一个手动选择组和一个自动回退组,日常固定使用已验证节点,故障时再切换,避免频繁自动测速造成连接波动。
移动网络与频繁切换接入点
Android 与 iOS 设备会经历锁屏、后台限制、Wi-Fi 与蜂窝网络切换、NAT 映射变化等状态。若当前网络对 UDP 友好,Hysteria2 或 TUIC 可以作为切网恢复和实时 UDP 的候选;若公共网络经常限制 UDP,应保留 Trojan、VLESS over TCP、VMess 或 SS 作为回退。移动端不宜把大量节点放入高频自动测试组,节点越多、检查越密集,后台唤醒越明显。
测试时应分别观察前台浏览、即时通信、锁屏恢复和网络切换。若 QUIC 节点切网后恢复快,但锁屏待机耗电增加,可延长健康检查、减少策略组并检查保活设置;若仍不合适,默认使用 TCP 节点,把 QUIC 节点留给实时业务或特定网络。协议不是永久绑定设备的选择,可以通过策略组按使用状态切换。
视频、大文件与持续传输
持续传输关注平均吞吐、速度波动和长连接稳定。高丢包路径上,Hysteria2 的拥塞控制可能更容易维持吞吐;TUIC 也可以利用 QUIC 的多流与恢复能力。但服务端出口、线路容量和目标站点限制仍是上限。稳定低丢包网络中,经过良好配置的 SS、Trojan 或 VLESS 同样可以获得可靠结果,并且资源开销和排错路径更直接。
不要通过同时开启多路复用、修改带宽声明、切换 TUN 和更换 DNS 来追求速度。先固定接管方式和 DNS,比较协议节点;确定节点后再测试多路复用;最后才调整拥塞参数。每一步保留前一项结果,出现速度周期性下降时查看是否伴随丢包、重连、策略组切换或 DNS 更新。只有单变量记录才能说明优化来自哪里。
实时语音、游戏与 UDP 应用
实时业务对抖动和丢包恢复敏感,峰值带宽通常不是主要指标。首先确认应用流量确实经过 Clash:部分应用不使用系统代理,需要 TUN 或应用自身代理设置。然后确认节点声明 udp: true,并且服务端支持 UDP 中继。Hysteria2 与 TUIC 以 QUIC 为基础,适合纳入候选,但若 UDP 路径质量差,它们自身也会受影响。SS、Trojan、VMess 与 VLESS 的 UDP 支持则取决于内核、节点配置和服务端实现。
游戏场景不应仅使用网页测速选择节点。应观察实际会话中的连接保持、切换地图或重新匹配时是否断开,以及 NAT 变化后的恢复。TUN 接管后若局域网设备发现、打印或投屏异常,需要检查私有地址规则和路由排除项,而不是更换协议。实时业务的策略组最好使用少量经过验证的节点,避免自动选择在会话期间切换出口。
路由器、服务器与低资源设备
这类设备首先受 CPU 架构、内存、存储写入和服务管理约束。基础 SS 配置通常便于建立资源基线,Trojan 或 VLESS over TLS 可作为需要 TLS 承载的候选;Hysteria2 与 TUIC 应在目标硬件上实际测试用户态 QUIC 开销。不要仅凭协议文档推断低端 ARM 或其他架构上的性能。规则集体积、DNS 缓存和连接并发同样会占用资源,必要时精简规则与 provider。
直接运行 mihomo 时,应将配置检查、启动、日志轮转和故障恢复纳入服务管理。路由器作为局域网网关还要正确处理转发、防火墙和 DNS,问题范围比桌面系统代理更大。若只需要让同一 Wi-Fi 下少量设备使用代理,可以先阅读局域网共享代理设置,评估 mixed-port 与 allow-lan 是否已经满足需求,再决定是否部署透明接管。
| 场景 | 优先候选 | 备用方向 | 关键验证 |
|---|---|---|---|
| 桌面网页与办公 | 参数完整的 SS、Trojan、VMess、VLESS | Hysteria2 或 TUIC | DNS、短连接成功率、系统代理 |
| 移动网络 | 经验证的 Hysteria2、TUIC 或稳定 TCP 节点 | 保留跨网络可用的 TCP 回退 | 切网恢复、后台耗电、UDP 可达 |
| 持续下载 | 路径稳定且平均吞吐高的节点 | 调整拥塞参数前先换路径 | 长时间波动、重连与服务端容量 |
| 实时 UDP | Hysteria2、TUIC 或确认支持 UDP 的节点 | 少量固定回退节点 | 抖动、会话保持、TUN 路由 |
| 低资源设备 | 简单配置与精简规则 | 按硬件实测 QUIC | CPU、内存、并发与日志写入 |
08 · MIGRATION
协议测试、配置迁移与故障定位
迁移前建立可恢复的最小配置
从旧客户端迁移到 Clash Plus、Clash Verge Rev、FlClash 或其他 mihomo 客户端时,先保留旧客户端可工作的配置,不要立即删除。新客户端中只导入一个节点或一个 provider,建立包含 DIRECT、单个代理和 MATCH 的最小规则,确认核心启动、DNS 和系统代理正常。基线通过后,再加入完整策略组、规则集和 TUN。这样可以把客户端安装问题、内核兼容问题和复杂配置问题分开。
若从原版 Clash 配置迁入 mihomo,多数基础字段可以继续使用,但仍应检查 DNS 和 TUN 默认行为。若反向迁移,则需要删除 VLESS、Hysteria2、TUIC 等原版不支持的节点及 Meta 扩展规则。策略组引用必须同步更新,否则配置会因目标不存在而失败。任何批量修改都应先复制文件,并用内核检查命令确认语法,再替换正在运行的配置。
按阶段读取日志
启动阶段日志回答“配置能否加载”。重点查看 YAML 解析、未知字段、provider 文件、监听端口和 TUN 权限。更新阶段日志回答“远端内容能否获取并解析”,重点查看订阅请求、返回格式、缓存路径和节点数量。连接阶段日志回答“目标流量是否命中规则并完成握手”,重点查看规则目标、节点名称、DNS、超时、TLS 和认证信息。将不同阶段混在一起会导致错误判断,例如订阅更新成功并不能证明节点握手成功。
常见的 dial tcp timeout 表示在规定时间内没有完成 TCP 连接,可能来自地址不可达、端口受阻、DNS 结果异常或服务端未监听;connection refused 表示目标明确拒绝连接,优先检查端口与服务状态;TLS 错误应检查系统时间、servername 和证书;authentication failed 指向密码、UUID 或认证字符串。QUIC 节点若持续超时,应先换网络判断 UDP 路径,再检查协议参数。更多日志文本和定位顺序见Clash 运行日志怎么看。
端口、系统代理与 TUN 的分层检查
mixed-port 常用于同时提供 HTTP 与 SOCKS 入口。系统代理开启后,操作系统应指向客户端实际监听的地址与端口;如果端口被其他程序占用,内核可能启动失败,界面开关仍不代表监听已经成功。可以先关闭其他代理工具,再查看日志中的监听错误。局域网共享还需要 allow-lan、防火墙和正确的监听地址,不能只把本机地址填写到另一台设备。
TUN 模式位于更低的接管层,需要系统权限、虚拟网卡或相应网络扩展。启用后无网络时,先关闭 TUN 回到系统代理基线。如果系统代理正常,说明节点、订阅和基本 DNS 大体可用,问题更可能在 TUN 权限、路由或 DNS 劫持。然后重新启用 TUN,逐项检查自动路由、接口选择、私有地址排除和 DNS 模式。不要在 TUN 故障时同时更换协议节点,否则会失去有效对照。
协议替换采用单变量顺序
从 VMess 切换到 VLESS,或从 Trojan 切换到 Hysteria2 时,应保持目标服务、客户端、规则、DNS 和接管方式尽量一致。先确认新节点能在手动选择组中单独连接,再加入自动测试或回退组。测试网页、持续下载、UDP 应用和切网恢复四类行为,并记录错误。若新协议只在某类业务中表现更好,可以建立专用策略组,而不是把全局默认一次性替换。
复杂协议的调优应分层:第一轮使用订阅默认参数;第二轮只调整传输相关选项;第三轮再考虑多路复用、带宽或拥塞控制;最后处理 TUN 与 DNS。每轮都应能回到上一步。调参后若性能下降,应撤销最近一个变化,而不是继续叠加设置。可恢复性是生产配置的重要属性,它让升级内核、切换客户端和更换网络时都有明确退路。
mode: rule
mixed-port: 7890
allow-lan: false
log-level: info
rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- GEOIP,LAN,DIRECT
- MATCH,PROXY
这份片段展示用于排查的基础结构:规则模式、混合端口、局域网开关、常规日志级别和三条规则。实际配置还需要定义名为 PROXY 的策略组或代理。规则按顺序匹配,明确域名应放在更通用的 GEOIP 与 MATCH 之前。若日志显示目标命中 DIRECT,就不应继续排查代理协议握手,而应先修正规则目标。
形成最终选型记录
完成测试后,为每个默认节点记录协议、传输、TLS 主机名、适用网络、是否支持 UDP、对应 provider 和回退节点。不需要保存密码等敏感内容,只记录定位所需的结构信息。移动端额外记录是否启用 TUN、健康检查间隔和后台限制;路由器记录核心架构、服务启动方式和规则集来源。下一次客户端或内核更新后,按同一记录复测,比重新凭感觉选择更可靠。
最终配置通常不需要覆盖所有协议。保留一到两个稳定 TCP 节点、一个经过验证的 QUIC 节点,再通过清晰的策略组组织,已经能应对多数桌面与移动场景。节点数量过多会增加健康检查、名称管理和故障定位成本。协议手册的作用不是要求同时启用所有技术,而是帮助识别每种方案解决的问题、依赖的条件和失败时的回退路径。
提交默认配置前的检查清单
- 内核明确为 mihomo,客户端与设备平台匹配。
- 订阅中的关键协议字段在导入和转换后仍然存在。
- 至少保留一个经不同网络验证的 TCP 回退节点。
- Hysteria2 或 TUIC 已确认目标 UDP 端口可达。
- 系统代理基线正常后,才启用并排查 TUN。
- 健康检查间隔符合移动端电量和故障发现需求。
- 规则目标、策略组、节点与 provider 引用均能对应。
- 配置检查通过,并完成网页、持续传输、UDP 与切网测试。