PROTOCOL REFERENCE / REV.A

Clash 协议与内核技术参考

从协议设计、传输特征、设备资源、内核兼容和订阅格式五个层面,判断 SS、VMess、Trojan、VLESS、Hysteria2 与 TUIC 应该如何选择。

DOC SCOPE / 阅读边界

使用教程负责订阅导入、模式切换和连通验证的快速主线;本页负责解释客户端里各协议类型为什么不同、哪些组合能够被当前内核加载,以及更换协议或客户端时应检查什么。第一次使用可以先完成教程,再把本页作为选型与排错手册。

先给结论:协议名称本身不能决定全部体验。真实结果同时受到服务端实现、传输层、加密方式、往返时延、丢包、客户端内核、DNS 与路由规则影响。选择时应先确认内核支持,再看网络条件,最后才比较协议标签。

R1 / SELECTION MODEL

先拆分协议、传输、内核与规则

客户端里的一个节点其实包含多层参数

在 Clash 客户端中看到一个节点名称时,容易把名称末尾的 SS、Trojan 或 VLESS 当成全部技术信息。实际上,一个可用连接至少包含协议身份层、加密或认证方式、底层传输、可选的 TLS、域名与端口,以及客户端内核对这些字段的解析实现。两个都标记为 VLESS 的节点,可能分别使用 TCP 与 WebSocket,也可能启用不同的 TLS 相关能力;它们的握手次数、数据封装和资源表现会因此不同。反过来,两个协议名称不同的节点,如果都运行在稳定的 TCP 与相近的服务端路径上,日常网页加载感受可能没有名称暗示的差距大。

因此,选型不能只问“哪个协议最快”。更准确的问题应当是:当前客户端内核能否完整识别配置,当前网络更适合可靠传输还是基于 UDP 的快速恢复,设备是否长期在后台运行,以及服务端是否正确实现了对应协议。先拆分这些变量,才能避免把订阅解析失败、DNS 异常或规则误选归因于协议本身。

按照四层顺序作出判断

第一层检查内核能力。原版 Clash 支持的协议与现代 mihomo 并不完全相同,Hysteria2、TUIC 以及部分 VLESS 扩展通常要求较新的 Meta 系内核。客户端界面里出现某个字段,不等于实际运行的内核一定能够处理它。第二层检查配置格式。订阅转换器可能丢失 UDP、TLS、SNI、ALPN 或传输路径字段,结果是协议名称看似正确,但关键参数已经变化。第三层判断网络条件:低丢包固定网络更看重连接建立与服务端响应,波动明显的移动网络则更看重恢复能力和会话迁移。第四层才是设备成本,包括常驻内存、CPU 唤醒、后台保活和电量。

这个顺序能够解释很多常见现象。例如,一条 Hysteria2 节点在支持它的客户端中连接正常,导入旧版 Clash 后却直接报未知类型,这属于内核能力问题;一条 Trojan 节点手工添加可用、通过某个通用订阅导入后不可用,则应优先比较字段是否完整;同一条节点在 Wi-Fi 下平稳、蜂窝网络切换时中断,才适合继续分析传输和会话恢复。

判断层 需要确认的内容 典型错误表现 优先处理方式
内核 协议类型、扩展字段、传输实现 未知代理类型、字段不受支持 核对客户端实际内核与能力
配置 认证、TLS、SNI、UDP、路径 导入成功但连接失败 与原始配置逐字段比较
网络 时延、抖动、丢包、UDP 可达性 固定网络正常,移动网络波动 切换传输类型进行对照
设备 CPU、内存、后台策略、电量 发热、耗电或后台频繁重连 减少并发与不必要的健康检查

速度测试只能回答部分问题

单次测速会把线路容量、服务端负载、测试目标和本地网络同时混入结果,不能单独证明某个协议设计更优。比较时至少要保持同一设备、同一网络、相近时间、同一服务端区域和相同测试目标,并分别观察首次连接、连续请求、大文件传输和网络切换后的恢复。首次连接快,说明握手路径可能更短;持续吞吐稳定,说明拥塞控制与链路匹配较好;切换网络后恢复快,则反映会话与传输实现更适合移动环境。这些指标没有必要被压缩成一个总分。

对于多数用户,合理起点是使用维护活跃、内置 mihomo 或兼容 Meta 能力的图形客户端。本站下载页在各平台首推 Clash Plus,同时列出 Clash Verge Rev、FlClash、Clash Nyanpasu、Clash Meta for Android 等选择。客户端确定后,再根据订阅提供的协议类型和实际网络条件完成下一步判断,而不是为了追逐某个协议名称频繁迁移配置。

U2 / PROTOCOL DESIGN

六类协议的背景与设计取舍

Shadowsocks:结构简洁与实现成熟

Shadowsocks 通常简称 SS,其设计重点是以较简洁的加密代理结构承载 TCP 与 UDP 流量。它的配置核心相对直接:服务端地址、端口、加密方法与密码。因为协议结构清晰、实现历史较长,许多客户端和订阅格式都能识别 SS,跨平台迁移时遇到的字段差异通常也较少。现代配置应使用当前内核支持的 AEAD 加密方法;如果订阅携带已经不被内核接受的旧方法,客户端可能在加载阶段直接拒绝,而不是自动替换。

SS 的优势是封装开销容易理解、客户端实现普遍成熟、低复杂度场景下资源成本可控。它的边界在于扩展能力取决于具体实现与插件组合;一旦加入额外传输插件,实际连接结构就不再只是基础 SS。排查时必须同时记录插件名称、插件参数和传输路径,否则只复制地址、端口和密码无法复现原连接。

VMess:集成身份与传输选项

VMess 诞生于需要在一个协议体系中组合用户身份、时间校验和多种传输方式的背景。常见配置会包含 UUID、alterId 或兼容字段、传输网络、TLS、服务器名称与路径等。它曾经广泛出现在 Clash 配置和通用订阅中,因此多数 Clash 系内核具备较成熟的解析能力。VMess 的灵活性也意味着配置变量较多:TCP、WebSocket、HTTP 类传输的握手和封装并不相同,比较性能时必须注明传输组合。

VMess 对设备时间较敏感的历史印象来自其认证与时间相关机制。现代系统通常会自动同步时间,但如果设备时间明显偏离,仍应在排查清单中检查系统时间与时区。它不是所有连接失败的默认原因,却是“参数完全一致、网络可达、认证仍失败”时值得确认的一项。迁移配置时还要关注旧字段是否被新内核忽略或转换,避免把兼容警告当作网络错误。

Trojan:围绕 TLS 连接组织配置

Trojan 的常见形态以 TLS 连接和密码认证为核心,配置中通常需要服务器名称、证书验证状态以及可选的 ALPN 等信息。对用户而言,它的字段比复杂传输组合更容易核对:地址和端口决定连接目标,密码负责认证,SNI 或 servername 用于 TLS 握手。若直接把地址改为 IP 却没有保留正确的服务器名称,TLS 验证可能失败;关闭证书验证虽然可能让测试继续,却不应作为长期解决方式,因为这会改变原有的身份校验边界。

Trojan 在 TCP 稳定网络上通常表现平衡,连接行为容易通过日志分阶段判断。常见失败点包括域名解析错误、系统时间异常、服务器名称不匹配、证书链问题和密码错误。由于这些问题都发生在协议数据真正传输之前,排查时应先读 TLS 与认证错误,不要直接更换代理模式或路由规则。

VLESS:精简协议核心,能力交给组合层

VLESS 将协议核心保持得较轻,常以 UUID 进行身份标识,并通过不同传输与安全层组合能力。它本身的名称不能说明连接是否使用 TLS,也不能说明采用 TCP、WebSocket、gRPC 类传输或其他扩展。因此,VLESS 是最需要“看完整配置而不是看标签”的类型之一。现代 Meta 与 mihomo 内核支持的 VLESS 能力通常比原版 Clash 更完整,但具体字段仍会随着实现演进,旧客户端可能只识别基础结构。

VLESS 适合需要现代内核扩展、并且服务端与客户端能力明确匹配的配置。它的主要风险不是基础协议难以理解,而是订阅转换过程容易裁掉扩展字段。节点仍然显示为 VLESS,却可能缺失 flow、servername、client-fingerprint 或传输参数。出现这种情况时,节点名称和地址对比没有意义,应直接对照原始分享内容与客户端最终生成的配置。

Hysteria2 与 TUIC:基于 QUIC 的现代传输路线

Hysteria2 与 TUIC 都大量利用 QUIC 与 UDP 的传输能力,但两者并不是同一个协议,也不能互换配置。它们面向的共同问题是:在存在抖动、丢包或带宽变化的网络里,传统单一路径 TCP 可能因重传和队头阻塞放大等待时间,而 QUIC 可以在用户态实现更灵活的拥塞控制、流管理和连接恢复。Hysteria2 的配置通常围绕认证、TLS、带宽或拥塞相关选项组织;TUIC 常见配置则包含 UUID、密码、拥塞控制与 UDP 中继相关选项。

这两类协议的收益依赖 UDP 路径质量。如果本地网络、路由设备或服务端入口对 UDP 支持不稳定,表现可能从“恢复快”变为“连接直接失败或周期性抖动”。它们也需要较新的内核实现,不能假设任何带 Clash 名称的客户端都支持。选择前应先确认客户端实际使用 mihomo 或具备对应 Meta 能力,再通过小流量访问、持续传输和网络切换三组测试判断,而不是仅看一次峰值速度。

协议 核心取向 配置关注点 主要适用边界
SS 简洁加密代理 加密方法、密码、UDP 需确认加密方法受当前内核支持
VMess 身份与多传输组合 UUID、传输、TLS、路径 不同传输组合不能只按协议名比较
Trojan TLS 与密码认证 servername、证书、ALPN TLS 参数必须完整且匹配
VLESS 轻量核心与扩展组合 传输、安全层、扩展字段 现代能力依赖 Meta 系内核
Hysteria2 QUIC 与弱网恢复 认证、TLS、UDP、拥塞参数 依赖稳定可用的 UDP 路径
TUIC QUIC 多路传输 UUID、密码、拥塞控制 客户端与服务端实现需准确对应
J5 / PERFORMANCE PATH

连接速度、吞吐与资源占用

首次连接速度由握手链决定

用户感受到的“打开网页快不快”,往往先由 DNS、TCP 或 QUIC 建连、TLS 握手、协议认证和首个请求响应共同决定。SS 基础连接的协议层较简洁,但如果节点前面还有插件或额外传输,握手链会增加。Trojan 通常需要完成 TCP 与 TLS,再进行协议认证。VMess 和 VLESS 的实际握手取决于所选传输与安全层。Hysteria2、TUIC 基于 QUIC 时,可以利用 QUIC 对加密与传输握手的整合,但首次访问仍会受到 DNS 和 UDP 路径建立影响。

因此不能简单写成“UDP 协议一定连接更快”或“封装少一定更快”。当服务端距离较近、网络低丢包时,各协议的握手差异可能只占整体加载的一小部分;当往返时延较高时,每增加一次串行握手都会更明显。已有会话复用时,首次握手差异又会被摊薄。测试应分别记录冷启动后的第一次请求与保持客户端运行后的连续请求,避免把会话复用效果误认为协议固定优势。

吞吐取决于拥塞控制和线路容量

持续下载或视频传输更依赖拥塞控制、服务端出口、本地接入带宽与中间链路质量。TCP 类连接依靠操作系统或运行时的拥塞控制,在稳定链路上通常能得到可预测的吞吐;但发生丢包时,单个 TCP 连接可能因重传与拥塞窗口收缩出现明显波动。QUIC 类协议在用户态管理拥塞与多路流,可以针对抖动网络采用不同策略,但参数配置不当也可能造成发送过快、排队增加或资源消耗上升。

Hysteria2 配置中的带宽相关信息不是填写得越大越好。它应反映可持续的链路能力,而不是运营商标称峰值或一次测速的最高数字。过高估计可能造成队列积压和丢包,过低估计则限制可用吞吐。TUIC 的拥塞控制选择同样应以客户端与服务端支持为前提。普通用户如果没有明确的服务端说明,保留订阅提供者给出的参数通常比自行套用所谓通用最优值更可靠。

CPU 与内存不能只按协议名称排序

协议本身影响加密、封装、重传和状态维护,但客户端总资源还包括规则数据库、DNS 缓存、连接追踪、TUN 虚拟网卡、流量统计和界面进程。图形客户端的内存占用可能明显高于内核进程,而这不代表协议处理本身占用了同等资源。要比较协议成本,应在同一客户端、同一规则配置和相似流量下观察内核进程,而不是把一个轻量命令行内核与完整桌面客户端直接对比。

SS 使用受硬件与运行时优化良好的 AEAD 方法时,通常具有较稳定的 CPU 成本。Trojan 的 TLS 实现也能利用成熟加密库。VMess、VLESS 的成本会随传输层变化,WebSocket、TLS 和额外封装都可能增加处理。Hysteria2 与 TUIC 在高吞吐、丢包恢复和大量并发流下需要维护更多用户态传输状态,可能换来更好的弱网吞吐,也可能增加 CPU 唤醒。低功耗设备和路由器应先进行持续负载测试,不应只验证“能够连接”。

并发和健康检查会放大资源差异

Clash 配置常包含自动选择、故障转移与负载均衡策略组。若策略组对大量节点进行高频健康检查,每次检查都会产生 DNS、握手和小流量请求。节点数量越多、间隔越短,后台唤醒越频繁。此时看到的耗电、流量与连接数增加,主要来自策略配置,而不是某个协议天然消耗异常。选择节点时应把健康检查范围限制在实际候选集,测试 URL 使用稳定的小响应目标,并采用合理间隔。

同样,TUN 模式会接管更广的系统流量,浏览器、系统服务和后台应用都可能通过内核建立连接;系统代理模式覆盖范围通常较窄。比较两种协议时如果同时切换了 TUN 状态,结果无法归因。建议固定代理模式、DNS 配置、规则集和策略组,仅替换同一服务端条件下的协议节点,然后观察一段完整使用周期。

观察指标 更主要的影响因素 容易产生的误判
首次打开 DNS、往返时延、握手次数、服务端响应 把缓存命中当成协议更快
持续吞吐 线路容量、丢包、拥塞控制、服务端负载 用一次峰值代表长期表现
CPU 加密、传输实现、并发、TUN 与规则处理 把图形界面资源全部算给协议
内存 规则数据库、连接状态、界面与缓存 跨客户端直接比较内存数字
P3 / MOBILE POWER

移动端电量、后台与网络切换

电量消耗来自唤醒次数与传输持续时间

移动端代理的电量表现并不由某个协议名称单独决定。无线芯片从低功耗状态被唤醒、CPU 处理加密与封装、VPN 服务维持、应用后台同步、DNS 查询和健康检查都会消耗电量。短时间内传输得更快,有时能让无线模块更早回到低功耗状态;但高频小请求、持续心跳和反复重连会让设备长期处于活跃状态。判断耗电时应观察数小时或一个完整日常周期,而不是根据几分钟温度变化下结论。

SS 和基础 Trojan 在稳定网络中通常容易保持低复杂度连接。VMess 与 VLESS 的耗电会受传输组合影响,例如持续维持某些连接或频繁重建 TLS 会增加唤醒。Hysteria2 与 TUIC 可以在抖动链路上较快恢复传输,但用户态 QUIC、UDP 保活和拥塞处理也需要计算资源。若移动网络本身稳定,QUIC 路线未必明显节电;若网络频繁切换且传统连接反复超时,快速恢复反而可能缩短无效等待和重连时间。

Android 的 VPN 服务与省电策略

Android 客户端通常通过系统 VPN 接口接管流量。系统可能根据电池优化、后台限制、厂商进程管理和待机策略暂停应用,表现为锁屏一段时间后连接失效、通知消失或唤醒后重新连接。此类现象应先检查客户端是否被允许持续运行、VPN 是否仍处于激活状态,以及系统是否允许必要的后台活动。它与协议认证失败不同:如果解锁后客户端重新启动并迅速恢复,优先处理系统后台策略。

Clash Plus、Clash Meta for Android、FlClash 与 Surfboard 的界面和内核能力不同,导入同一订阅后也可能采用不同的 DNS、分应用代理或后台默认值。跨客户端比较电量时,应统一代理模式、规则、健康检查与应用范围。只让确实需要的应用经过 VPN,可以减少不必要流量;但分应用配置错误也会造成某些应用绕过或无法连接,因此修改后必须逐项验证。

iOS 的系统网络扩展边界

iOS 客户端通过系统提供的网络扩展能力工作,后台生命周期由系统统一管理。Clash Plus 可从 App Store 获取,相关入口与官网 clashplus.io 已列在下载页 iOS 区域。当系统切换 Wi-Fi 与蜂窝网络时,底层地址、默认路由和 NAT 状态都会变化,既有 TCP 会话通常需要重新建立;支持连接迁移或恢复能力的 QUIC 实现可能缩短中断,但最终效果仍取决于客户端、服务端和网络对 UDP 的支持。

如果切换网络后全部协议都不可用,应先确认系统 VPN 状态和 DNS,而不是立刻判断节点失效。如果只有 Hysteria2 或 TUIC 失败、TCP 类协议仍能连接,则应重点检查新网络的 UDP 可达性。反过来,如果 QUIC 类协议恢复正常而某条 TCP 连接长时间等待,可通过切换节点或重启连接清除旧会话,不需要重装客户端。

移动网络中的 NAT 与 UDP 保活

移动网络常使用地址转换,UDP 映射的空闲保持时间可能比 TCP 短。为维持可用会话,客户端或协议实现可能发送保活流量。保活过少会导致空闲后首个请求需要重新建立路径;保活过密则增加无线唤醒和电量消耗。用户通常不应随意把间隔改到极小值。订阅或服务端没有明确要求时,优先采用客户端默认值,并通过“锁屏空闲后首次访问是否成功”判断是否需要调整。

网络切换测试应分三步进行:先在 Wi-Fi 下建立连接并访问多个目标;再关闭 Wi-Fi,等待蜂窝网络完成接管,观察当前节点是否自行恢复;最后让设备锁屏一段时间后再次访问。记录失败发生在切网、解锁还是首次 DNS 查询阶段。这样的分段记录比“移动端不稳定”更有诊断价值,也能区分协议恢复、系统后台和解析问题。

移动端现象 优先检查 下一步对照
锁屏后连接停止 系统后台策略、VPN 状态 保持同一协议,仅调整后台权限
Wi-Fi 正常,蜂窝失败 UDP 可达性、DNS、分应用范围 用 TCP 类节点和 QUIC 类节点交叉测试
持续发热 健康检查、并发连接、TUN 流量 缩小候选节点与代理应用范围
空闲后首个请求慢 NAT 映射、连接重建、DNS 缓存 比较短空闲与长空闲后的日志
U7 / KERNEL FAMILY

原版 Clash、Meta 与 mihomo 的关系

内核是实际解析和转发配置的组件

Clash 客户端通常由图形界面、配置管理和代理内核组成。界面负责导入订阅、选择节点、显示日志和控制系统代理;内核负责解析 YAML、建立连接、执行规则、处理 DNS 与转发流量。客户端名称与内核名称并不总是一致,所以判断协议支持时不能只看应用图标。应在客户端的关于、设置或日志中确认实际内核,并留意客户端是否允许切换内核。

原版 Clash 建立了规则匹配、策略组、配置结构和控制接口等基础模型,许多配置项由此成为生态中的通用写法。它支持 SS、VMess、Trojan 等常见类型,但对后来出现的协议和扩展能力覆盖有限。旧配置继续可用并不意味着适合承载所有现代节点;当订阅包含 Hysteria2、TUIC 或较新的 VLESS 扩展时,原版内核可能报未知类型、忽略字段或无法启动对应代理。

Clash.Meta 扩展了协议与网络能力

Clash.Meta 在原有配置和规则体系上扩展了协议、DNS、TUN、规则提供器与传输能力。它的目标之一是尽量维持 Clash 配置习惯,同时让新协议能够进入同一策略组和规则引擎。用户因此可以在一个配置中混合 SS、Trojan、VLESS、Hysteria2 与 TUIC,再通过自动选择或手动策略组使用。兼容并非完全等同:某些 Meta 专用字段交给原版 Clash 时仍会失败,而原版配置交给 Meta 系内核通常更容易加载。

“Meta 支持某协议”也不代表任意年代的 Meta 构建都支持全部字段。协议实现、字段命名和默认行为会演进,客户端打包的内核更新节奏也各不相同。本站不使用固定版本号判断能力,实际应查看客户端内核信息和配置加载日志。若服务提供方明确要求某项能力,应选择仍在维护并能更新内核的客户端。

mihomo 是当前 Meta 系内核名称

mihomo 延续并发展 Meta 系能力。很多现代图形客户端把 mihomo 作为核心组件,因此能够识别 Hysteria2、TUIC、现代 VLESS 扩展以及更完整的 DNS 和 TUN 配置。用户在资料中看到 Clash.Meta 与 mihomo 时,不应把它们理解为两个完全隔离的配置生态;更适合的理解是同一扩展路线在不同阶段使用的名称与实现。具体兼容性仍以当前内核实际解析结果为准。

Clash Plus 是本站各平台的首推选择;Clash Verge Rev、FlClash、Clash Nyanpasu 等也可根据系统和界面偏好选择。Linux 服务器、路由器或需要自行管理配置的用户可以直接使用 mihomo 内核,普通桌面与移动用户通常更适合图形客户端,因为系统代理、TUN 权限、订阅更新和日志查看都能在界面中完成。完整平台入口见下载页的 mihomo 内核区

配置兼容分为语法兼容与行为兼容

语法兼容表示内核能够读取字段并启动;行为兼容表示规则、DNS、策略组和协议连接按预期工作。一个旧配置在 mihomo 中成功加载,只能证明基本语法可接受,不能证明 DNS 结果、规则提供器刷新或 TUN 路由与原客户端完全一致。迁移后应验证配置加载、节点连接、规则命中、DNS 查询和系统应用流量,而不是只看界面显示“已连接”。

反向迁移风险更高。mihomo 配置中如果包含较新的代理类型、规则语法或 DNS 选项,原版 Clash 可能无法识别。直接删除报错字段也不是可靠方法,因为被删除的字段可能负责 TLS 身份、UDP 中继或路由行为。更合理的做法是保留原配置,针对目标内核生成明确兼容的副本,逐项替换不支持的节点与功能。

内核路线 定位 协议覆盖特征 迁移注意
原版 Clash 基础规则与策略模型 常见传统协议,现代扩展有限 不能直接加载全部 Meta 专用字段
Clash.Meta 扩展协议与网络能力 覆盖更多现代协议和传输选项 需确认具体构建支持目标字段
mihomo 当前 Meta 系内核 适合现代协议、DNS 与 TUN 配置 加载旧配置后仍需验证行为差异
J9 / SUBSCRIPTION INPUT

订阅格式与配置兼容性

原生 YAML 与分享订阅解决不同问题

Clash 原生 YAML 可以同时描述代理节点、策略组、规则、DNS、TUN 和规则提供器,信息完整度高,适合直接交给兼容内核加载。通用分享订阅通常以链接列表或编码文本表达单个节点,重点是携带协议连接参数,不一定包含 Clash 的策略与规则。订阅转换器会把这些节点转换为 Clash 配置,但转换过程必须理解每个协议和扩展字段;如果转换器能力落后,最终 YAML 可能能被解析,却无法建立正确连接。

订阅导入成功仅表示客户端接受了输入,不代表所有节点都完整。应至少抽查一种传统协议和一种现代协议,查看最终节点类型、端口、TLS、servername、网络类型、路径、UDP 和协议专用字段。尤其是 VLESS、Hysteria2 与 TUIC,字段缺失后不一定在界面中明显提示。若客户端允许查看当前配置,可以与原始配置逐段比较;如果只能看节点详情,则记录关键字段并结合日志验证。

URI 格式适合单节点,表达能力存在边界

SS、VMess、Trojan、VLESS 等常见协议都有对应分享 URI 或编码形式,但不同软件对查询参数、名称编码和扩展字段的处理可能不同。链接末尾的节点名称只用于显示,不参与认证;查询参数中的 type、security、sni、path 等才会改变连接。复制链接时如果聊天工具截断特殊字符,或者中间系统重复编码,客户端可能得到错误路径或服务器名称。

Hysteria2 与 TUIC 的分享形式在不同生态工具中也可能出现字段命名差异。遇到“一个客户端能导入、另一个客户端不识别”时,应先判断目标客户端是否支持该 URI 方案,再考虑改用原生 YAML。不要仅仅把链接前缀替换成另一个协议名称,因为认证结构、传输和必需字段并不相同。

配置转换最容易丢失的字段

TLS 相关字段是第一组重点,包括 servername、SNI、证书验证、ALPN 和客户端指纹类选项。传输相关字段是第二组,包括 WebSocket 路径与请求头、gRPC 服务名、UDP 中继和 QUIC 拥塞选项。第三组是协议专用字段,例如 SS 加密方法、VLESS flow、TUIC UUID 与密码组合、Hysteria2 认证和带宽参数。第四组是 Clash 行为字段,包括策略组名称、规则目标和 DNS 模式。

策略组引用也可能在转换时出错。规则末尾指定的策略名称必须与 proxy-groups 中的名称完全一致;策略组引用的节点名称又必须与 proxies 中一致。如果转换器对名称进行去重、增加后缀或改变字符,规则可能落到不存在的策略。内核通常会在加载阶段报错,但某些工具会自动替换,导致行为与原配置不同。

mixed-port: 7890
mode: rule

proxies:
  - name: "示例 Trojan"
    type: trojan
    server: example.com
    port: 443
    password: "your-password"
    sni: example.com
    udp: true

proxy-groups:
  - name: "手动选择"
    type: select
    proxies:
      - "示例 Trojan"
      - DIRECT

rules:
  - DOMAIN-SUFFIX,example.org,手动选择
  - MATCH,DIRECT

上面的短配置展示了字段之间的引用关系:节点名称被策略组引用,规则再引用策略组。示例地址与认证值只用于说明结构。实际配置还可能包含 DNS、规则提供器和更多代理类型。手工修改时应使用空格缩进,不要混入制表符;字符串包含冒号、井号或特殊字符时使用引号,避免 YAML 把内容解释为其他类型。

订阅更新需要保留可回退路径

客户端更新订阅时,远端内容可能改变节点名称、策略组或协议字段。本地覆写功能如果依赖旧名称,更新后可能失效。修改前应保存当前可用配置,并明确哪些内容来自订阅、哪些内容由本地覆写生成。订阅提供完整 Clash YAML 时,优先让策略与节点保持同一来源;只提供节点列表时,再由客户端模板建立稳定的本地策略组。

若更新后全部节点失效,先比较订阅是否成功获取、文件是否为空、YAML 是否能解析,再检查节点参数变化。若只有现代协议失效,优先核对内核是否在客户端升级或切换后发生变化。若节点可连接但规则行为改变,应检查策略组与规则名称,不要继续围绕认证参数排查。更多初次导入问题可参考Clash 新手常见问题十问常见问题页

输入形式 适合内容 兼容风险 建议
Clash YAML 节点、策略、规则、DNS 完整配置 内核专用字段可能不兼容 确认目标内核后直接加载
单节点 URI 分享单个协议节点 扩展参数与编码可能被截断 导入后核对关键字段
通用订阅 批量节点列表 转换器可能丢失现代协议字段 抽查不同协议并查看日志
本地覆写 固定策略与规则调整 远端改名后引用失效 减少对易变节点名称的依赖
SW1 / SCENARIO ROUTING

按设备与网络场景选择协议

固定宽带与日常桌面使用

在低丢包、时延稳定的固定网络中,SS、Trojan、VMess 和 VLESS 都可能提供稳定体验。此时协议差异通常小于服务端负载、线路距离和 DNS 质量。优先选择配置字段完整、内核成熟支持、服务端维护稳定的节点即可。SS 适合结构简洁的配置;Trojan 适合 TLS 参数明确的连接;VMess 适合已有成熟订阅的场景;VLESS 适合客户端与服务端都采用现代实现并需要相关扩展的配置。

桌面端如果长期运行 TUN、规则数据库和大量策略组,资源管理的重要性可能高于协议选择。减少无关节点的健康检查、保持规则集规模合理、避免重复 DNS 查询,往往比更换协议更能改善稳定性。Windows 与 macOS 用户可以从 Clash Plus 开始,再根据界面需求考虑 Clash Verge Rev、FlClash 或 Clash Nyanpasu。迁移自停止维护的 Clash for Windows 或 ClashX Meta 时,可阅读客户端迁移与配置兼容指南

移动网络、通勤与频繁切换接入点

移动网络的核心变量是抖动、短时丢包、地址变化和后台限制。若 UDP 路径稳定,Hysteria2 或 TUIC 值得作为对照候选,因为 QUIC 路线能够更灵活地处理传输恢复。若某些接入网络对 UDP 支持不稳定,Trojan、SS 或基于 TCP 的 VMess、VLESS 可能更可预测。最稳妥的配置不是只保留一种协议,而是在同一策略组中准备一条可靠的 TCP 类节点与一条经过验证的 QUIC 类节点,切换网络后根据实际结果选择。

移动端更应控制自动测试频率。每隔很短时间探测全部节点会增加电量和数据消耗,也可能在网络刚切换时产生大量失败连接。可以把常用候选控制在较小范围,采用较长测试间隔,并保留手动选择策略。若应用需要持续后台通信,先确保系统允许 VPN 服务运行,再判断协议恢复能力。

高丢包或带宽波动明显的网络

当网页偶尔卡住、持续下载速度呈周期性下降,并且本地直连测试也显示抖动时,问题可能来自接入链路。Hysteria2 与 TUIC 的用户态拥塞控制和 QUIC 多路流在这类环境中可能更有优势,但前提是 UDP 可达且服务端参数合理。应进行至少十分钟的持续传输测试,同时观察短请求响应,而不是只看测速开始几秒的峰值。

如果 QUIC 类节点不断超时,首先换一个已知支持 UDP 的网络进行对照。另一个网络正常,说明原网络路径需要继续检查;所有网络都失败,则更可能是服务端、认证、TLS 或客户端内核问题。不要盲目提高带宽参数或缩短保活间隔,这些调整可能加剧排队与耗电。TCP 类节点在高丢包环境中表现较慢但稳定时,也可以作为回退路径。

低功耗设备、路由器与 Linux 服务

资源受限设备应把持续 CPU、内存和并发状态放在首位。基础 SS 或配置简洁的 Trojan 通常更容易估算成本,但具体结果仍取决于加密库与硬件。Hysteria2、TUIC 在高吞吐和恢复方面可能有价值,同时也可能要求更多用户态处理。部署前应在目标设备上进行持续负载、空闲内存和温度测试,并确认系统能够稳定处理 UDP 缓冲。

直接运行 mihomo 的 Linux 用户需要自行管理配置文件、服务启动、权限和日志。配置应先在前台验证,通过后再交给系统服务管理。路由器还要考虑透明代理、DNS 劫持、局域网地址和防火墙规则,这些因素会让“节点已连接但终端设备不能访问”成为常见现象。此时应分开验证内核出站与局域网转发,不要把所有失败归因于协议。

需要最大配置兼容性的迁移场景

从旧客户端迁移时,如果原配置主要包含 SS、VMess 与 Trojan,选择支持 Clash 配置导入的现代 mihomo 客户端通常较顺利。迁移顺序应是先复制配置、关闭旧客户端的系统代理或 TUN、在新客户端导入、检查解析日志、选择节点、验证规则,最后再处理开机启动。不要让两个客户端同时接管系统代理或虚拟网卡,否则会出现端口冲突、路由覆盖或循环转发。

如果原配置包含 VLESS、Hysteria2、TUIC 或 Meta 专用 DNS 字段,应直接选择明确使用 mihomo 的客户端。把配置降级给原版 Clash 往往需要删除或替换能力,不适合仅通过修改文件后缀完成。迁移目标不是让界面显示节点数量一致,而是保证关键协议、策略组、规则与 DNS 行为一致。

稳定固定网络 先比较 SS、Trojan、VMess、VLESS 的服务端质量与配置完整度。
移动与切网 在 UDP 可达时测试 Hysteria2 或 TUIC,同时保留 TCP 类回退节点。
低功耗设备 控制并发与健康检查,在目标硬件上验证持续 CPU 和温度。
旧配置迁移 选择 mihomo 客户端,先验证解析和规则,再接管系统流量。
TP8 / VALIDATION FLOW

验证、迁移与故障定位流程

第一步:确认配置能被内核完整加载

导入后先不要立即打开 TUN 或让全部系统流量经过客户端。查看配置加载结果与日志,确认没有未知代理类型、字段类型错误、策略组引用不存在或 YAML 解析失败。现代协议出现 unsupported、unknown proxy type 等信息时,优先确认客户端实际内核。YAML 报错则检查缩进、冒号、列表符号与引号。策略组报错时核对节点名称和组名称是否完全一致。

如果客户端只显示“导入失败”而没有详细信息,可以先用同类客户端或 mihomo 前台加载配置获取更明确的错误位置。不要一次删除多个字段;每次只修复一个明确错误并重新加载,才能知道哪个变化起作用。配置能够加载后,再进入节点连接阶段。

第二步:分离 DNS、网络可达与协议握手

连接失败时先判断服务器域名能否解析、目标端口是否可达,以及失败发生在 TLS、认证还是数据转发。日志中的 timeout 通常表示某一步等待超时,但仅凭 timeout 不能确定是服务器离线、UDP 不可达还是 DNS 错误。certificate、servername、handshake 等信息更接近 TLS 阶段;authentication、invalid user 或密码相关信息指向认证;unknown field 和 unsupported 则仍属于配置与内核阶段。

可以在不改变节点参数的前提下切换网络进行对照。Wi-Fi 和移动网络都失败,优先检查配置与服务端;只有某个网络失败,继续检查该网络的 DNS、UDP 与路由。Hysteria2、TUIC 失败而 Trojan、SS 可用时,应检查 UDP 路径。所有节点都显示可用但浏览器不能访问时,应转向系统代理、TUN、规则和 DNS,不要继续替换协议。

第三步:确认策略组与规则实际选中了目标节点

Clash 规则从上到下匹配,命中后使用规则指定的策略组。策略组又可能处于手动选择、自动测试、故障转移或负载均衡状态。界面上点击了某个节点,不代表当前请求一定经过它:请求可能命中另一个策略组,也可能因 DIRECT 规则直接连接。查看连接详情或规则日志,确认目标域名命中了哪个规则、进入哪个策略组、最终使用哪个节点。

排查时可以临时建立一个只包含目标节点和 DIRECT 的小型手动策略组,并用少量测试规则引用它。这样能够把自动选择和复杂规则排除在外。验证结束后再恢复原配置。不要长期把所有流量改为全局模式来掩盖规则错误,因为这会失去原有分流边界,也无法说明具体规则为什么没有命中。

第四步:按最小变量原则比较协议

要比较 SS 与 Trojan、VLESS 与 Hysteria2 等协议,应尽量保持服务端区域、测试目标、客户端、代理模式、DNS 和测试时间一致。依次观察配置加载、首次连接、连续请求、持续吞吐、空闲恢复和网络切换。每轮只替换节点,不同时更换客户端和规则。记录“失败发生在哪个阶段”比记录一个总延迟更有价值。

如果两个节点来自不同服务端,测试结果只能用于选择节点,不能证明协议设计优劣。服务端 CPU、出口、路由和负载都可能主导结果。协议科普提供的是理解差异的框架,最终选型仍应以自己的设备和网络验证为准。

第五步:迁移时保留回退与逐层接管

从旧客户端切换到 Clash Plus、Clash Verge Rev、FlClash 或其他 mihomo 客户端时,先导出或复制原配置,并记录当前系统代理端口、TUN 状态、DNS 模式和常用策略。退出旧客户端,确认其系统代理与虚拟网卡已经释放,再启动新客户端。导入后先测试单个节点,再验证策略与规则,最后开启 TUN、局域网共享或开机启动等系统级功能。

迁移后出现端口占用,通常说明旧进程仍在运行或新旧配置使用相同监听端口。出现应用能访问但系统服务不能访问,应比较系统代理与 TUN 覆盖范围。出现域名失败而直接地址可达,应重点检查 DNS。出现只有现代协议不可用,应核对新客户端是否实际启用了预期内核,而不是继续修改规则。

可复用的排错记录格式

有效的故障记录至少包含操作系统、客户端名称、实际内核、代理模式、节点协议、传输类型、问题发生时间、网络类型、日志阶段和已经做过的对照测试。认证内容不应公开粘贴。把“不能用”改写为“配置可加载,Trojan 节点在 TLS 握手阶段提示 servername 不匹配,SS 节点同网络可连接”,解决路径会清晰很多。

长期维护配置时,每次只改变一类设置,并在修改后完成基本回归:订阅可更新、常用节点可连接、规则命中正确、DNS 可解析、系统休眠恢复正常。GeoIP 与 GeoSite 规则数据库的刷新和异常检查可参考Clash GeoIP 与 GeoSite 数据更新指南。局域网共享相关问题则可继续阅读混合端口与局域网共享代理说明

CHECK 01 / PARSE

配置解析

确认协议类型、字段、策略组引用和 YAML 结构被当前内核接受。

CHECK 02 / HANDSHAKE

连接握手

区分 DNS、端口、TLS、认证和 UDP 路径,按日志阶段定位。

CHECK 03 / ROUTE

规则与策略

确认请求命中的规则、策略组与最终节点,而不是只看界面选择。

CHECK 04 / SYSTEM

系统接管

最后检查系统代理、TUN、后台策略、DNS 与应用流量覆盖范围。

完成上述流程后,协议选择通常会收敛为一个可解释的结果:稳定固定网络使用配置成熟、内核完整支持的节点;移动或高抖动网络在 UDP 可达时测试 Hysteria2、TUIC;资源受限设备优先控制并发、健康检查与传输成本;现代 VLESS 扩展和 QUIC 类协议选择 mihomo 内核。若仍无法确定,可先完成快速上手教程中的基础验证,再到常见问题按现象继续排查。

REFERENCE COMPLETE / 下一步

先确定内核,再验证协议组合

需要安装客户端时,前往下载页按系统选择。桌面与移动平台均优先从 Clash Plus 开始;已有配置迁移时,先保留原文件并确认目标客户端使用的内核,再导入订阅和验证规则。