Protocol & Core Reference

Clash 协议与内核技术参考

从连接模型、传输特征、设备资源、内核支持和订阅兼容五个维度,判断 Shadowsocks、VMess、Trojan、VLESS、Hysteria2 与 TUIC 应该在什么场景下使用。

文档分工

如果目标是完成首次安装、导入订阅、选择模式并验证连接,请先阅读使用指南。本页不重复快速上手流程,而是解释客户端里不同协议名称为何存在、各自需要什么内核、性能差异来自哪里,以及配置迁移时哪些字段能够兼容。需要安装包时可直接前往下载页,遇到无法加载配置、订阅更新失败或系统代理异常时则进入疑难解答

一、先建立协议选型框架

协议名称不是速度等级

Clash 客户端中的协议类型首先描述客户端与服务端如何建立连接、验证身份、封装数据和处理拥塞,并不直接代表某个固定速度等级。相同协议放在不同服务器、不同线路和不同设备上,结果可能相差很大。服务器距离、出口带宽、往返时延、丢包率、服务端负载以及本地网络质量,通常比协议名称更早决定实际体验。把协议列表简单排列成“新协议一定快、旧协议一定慢”会产生错误结论,也容易在更换节点后把线路差异误认为协议差异。

选型时应把问题拆成三层。第一层是传输层:它基于 TCP、UDP,还是允许在多个传输方式之间组合;第二层是协议层:如何认证、加密和复用连接;第三层是实现层:当前客户端使用什么内核,该内核是否完整支持订阅里声明的字段。只有三层同时匹配,节点才可能正确加载并稳定运行。客户端界面显示了某个协议名称,并不等于所有扩展参数都已得到支持;订阅转换器能够输出一段 YAML,也不等于目标内核可以理解其中每个字段。

先核对约束,再比较偏好

实际选择可以从四个约束开始。首先确认服务提供方给出的节点类型,因为协议必须由连接两端共同支持,客户端不能把一个 VMess 节点在本地直接改成 VLESS 或 Trojan。其次确认客户端内核。原版 Clash 对早期常见协议和基础规则体系支持较稳定,但较新的协议与扩展能力通常需要 Clash Meta 或其后续项目 mihomo。再次确认设备环境:桌面设备通常更能容忍额外内存和持续连接,移动设备则应关注后台保活、无线模块唤醒次数与弱网切换。最后确认网络特征:稳定低丢包网络与高时延、轻度丢包网络的适合方案并不相同。

在这些约束之后,才适合比较启动速度、持续吞吐、并发能力、资源占用和配置复杂度。浏览网页与传输大文件的指标也不同。网页访问更在意 DNS、握手次数和首字节时间,大文件更在意持续吞吐与拥塞控制,实时音视频则同时在意抖动、丢包恢复和排队延迟。单次测速只能反映测试时刻的一条路径,不能覆盖一天内的负载变化,也不能替代实际业务测试。

判断维度 优先检查内容 常见误判
服务端条件 协议类型、端口、认证信息、传输参数是否完整 只改客户端协议名称,忽略服务端必须同步支持
内核能力 协议、传输层、TLS、UDP 与扩展字段支持 界面能导入节点就认为所有功能可用
网络路径 时延、丢包、抖动、带宽与网络切换频率 把线路质量差异全部归因于协议
设备限制 处理器、内存、散热、电池和后台策略 只比较峰值速度,不观察长期耗电与温度

建立可重复的测试方法

比较两个节点时,应尽量保持服务器地区、测试时间、客户端内核、DNS 配置和规则模式一致。先关闭其他大流量任务,再分别观察连接建立、网页首开、连续下载、视频拖动和待机恢复。每个方案至少重复数次,并记录中位表现,而不是只保留最好的一次。若切换协议的同时又更换服务器,就无法判断提升来自协议还是线路。对于移动端,还要加入锁屏后恢复、Wi-Fi 与蜂窝网络切换、低电量模式等测试,这些环节往往比前台测速更容易暴露问题。

本页所有结论都用于理解设计取舍,而不是给协议做脱离环境的绝对排名。一个配置简单、服务端稳定、内核支持完整的传统协议,往往比参数复杂但部署不匹配的新协议更可靠。合理选型的目标是减少不必要的变量,让连接在目标设备和日常网络中保持可预测,而不是追逐单项测试中的最高数字。

二、SS、VMess、Trojan 与 VLESS 的设计取舍

Shadowsocks:结构紧凑,依赖实现质量

Shadowsocks 通常简称 SS,其核心思路是以较轻量的方式加密并转发 TCP 与 UDP 流量。它的配置要素相对少,常见必需信息包括服务器地址、端口、密码和加密方法。由于协议结构紧凑、实现广泛,它在桌面端、移动端和资源有限设备上都容易部署。对只需要稳定转发、希望降低配置复杂度的场景,SS 仍然具有明确价值。其运行开销不仅取决于协议本身,也取决于所选加密算法是否能利用设备的硬件加速。

SS 的常见兼容问题来自加密方法名称和扩展插件。较新的 AEAD 方法与旧式方法在安全属性和实现支持上存在差异,订阅中若带有插件参数,目标内核还必须理解插件类型及其选项。只复制服务器、端口和密码而遗漏插件字段,节点可能成功载入却无法完成通信。迁移时应完整比较节点对象,而不是只看界面中最醒目的四项信息。

VMess:能力集中,但配置字段较多

VMess 是较早形成完整生态的一类协议,通常与 UUID 身份标识、传输层选项、TLS 设置和路径参数一起出现。它可以承载在 TCP、WebSocket 等不同传输形式之上,因此两个都标记为 VMess 的节点,内部结构可能完全不同。客户端需要正确处理地址、端口、UUID、传输网络、Host、路径、TLS 服务器名称以及证书验证策略。任何关键字段在订阅转换中丢失,都可能导致握手失败。

VMess 的优势在于历史工具链和订阅生态较成熟,许多客户端能够识别其常见链接格式。代价是参数组合较多,排错时不能只检查“协议是否支持”。例如节点使用 WebSocket 时,路径与 Host 由服务端配置决定;启用 TLS 后,服务器名称与证书对应关系也必须正确。某些旧配置还会带有现代实现不再强调的兼容字段,迁移到 mihomo 时应让客户端或可靠的订阅生成端输出当前格式,不宜把多年积累的旧字段原样拼接。

Trojan:借助 TLS 建立认证与传输

Trojan 的典型配置围绕 TLS 连接展开,常见信息包括服务器、端口、密码、服务器名称和证书验证设置。对客户端而言,它与普通 TCP 协议相比多了完整 TLS 握手与证书检查,因此域名解析、系统时间、SNI 和证书链都会参与连接结果。配置正确时,Trojan 的使用逻辑较直接;配置错误时,错误信息经常表现为 TLS 握手失败、证书名称不匹配或连接被远端关闭。

Trojan 并不意味着所有连接都具有相同开销。首次 TLS 握手需要额外往返和密码学计算,连接复用、会话恢复与服务端实现会影响后续表现。在高时延环境中,如果应用频繁创建短连接,握手成本更容易被观察到;在持续传输中,这部分固定成本所占比例会下降。若节点叠加 WebSocket、gRPC 等传输方式,还要继续核对网络类型和对应参数,不能只保留 Trojan 的密码与服务器名称。

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

VLESS 常使用 UUID 进行身份识别,但协议本身不负责传统意义上的内容加密,实际安全属性通常由 TLS 或其他受支持的传输组合承担。它的设计倾向于减少协议层重复工作,并把传输、加密与扩展能力交给组合配置。这使 VLESS 具有较强的可扩展性,也使兼容判断更依赖具体组合。仅看到节点类型为 VLESS,无法推断它是否能被某个 Clash 内核使用,还必须查看传输网络、TLS、流控和其他扩展字段。

在 mihomo 中使用 VLESS 时,基础节点与常见传输通常有较好支持,但一些依赖特定实现的新扩展需要核对内核文档和客户端更新状态。订阅提供方若输出只适用于另一内核的字段,导入后可能被忽略或报错。排查时可以先把复杂组合缩减到服务端允许的基础形式,确认身份信息和 TLS 能正常工作,再逐项恢复传输与扩展参数。这个顺序比同时修改多个选项更容易定位问题。

协议 主要配置焦点 适合关注的优点 迁移时重点
SS 加密方法、密码、UDP、插件 结构紧凑、实现广泛、配置简洁 加密方法与插件参数不能遗漏
VMess UUID、传输网络、路径、Host、TLS 既有生态完整、组合方式丰富 旧字段与传输层字段需要复核
Trojan 密码、SNI、证书、传输方式 配置逻辑清楚、TLS 体系成熟 域名、证书名称和系统时间
VLESS UUID、TLS、传输、扩展能力 协议层精简、组合弹性较高 确认内核支持完整组合而非仅基础类型

三、Hysteria2 与 TUIC:面向高时延和丢包的 UDP 方案

为什么改用 UDP 承载

传统 TCP 连接拥有成熟的可靠传输和拥塞控制,但当代理隧道外层与应用内层同时使用 TCP 时,丢包恢复、重传和拥塞控制可能相互影响。尤其在往返时延较高或存在间歇性丢包的网络中,一个外层丢包可能让多条内层连接同时等待。基于 UDP 构建的现代协议可以在用户态安排流、多路复用、确认和拥塞控制,从而更灵活地处理不同网络条件。Hysteria2 与 TUIC 都属于这一路径,但两者的实现目标、参数表达和内核支持细节并不完全相同。

UDP 方案的价值不能理解成“跳过可靠性”。应用数据仍然需要按设计完成确认、重传和排序,只是这些工作由协议栈在用户态组织。它们也不会凭空创造带宽:服务器出口不足、无线信号差或路径长期拥塞时,任何协议都受物理条件限制。优势主要体现在更合适的拥塞控制、更少的队头阻塞影响,以及多流并发时更灵活的调度。

Hysteria2:配置相对集中,强调弱网吞吐

Hysteria2 基于 QUIC 相关能力构建,常见配置包含服务器地址、端口、认证密码、TLS 服务器名称以及证书验证选项。部分部署还会指定上下行带宽提示或拥塞控制相关参数。它的设计重点之一是在高时延、存在一定丢包的路径上维持可用吞吐,因此常被用于跨地区连接、移动网络或质量波动较明显的链路。不过,带宽参数不是越大越好。若填写值明显高于真实可用带宽,发送端可能制造排队和额外丢包;填写过低则会主动限制吞吐。

使用 Hysteria2 时应先确认 UDP 路径可用,再检查认证和 TLS。若节点完全无法建立连接,可以依次测试域名解析、服务器端口、系统时间、SNI 与证书;若能连接但速度波动较大,应继续观察真实上下行、路由器队列和无线网络质量。某些网络对长时间 UDP 会话的映射保持较短,表现可能是闲置后首个请求失败或频繁重连,这时应从系统后台策略、路由器 NAT 状态和客户端连接日志共同判断。

TUIC:多路复用与连接管理更值得关注

TUIC 同样使用基于 UDP 的现代传输能力,节点配置通常包含服务器、端口、UUID、密码、TLS 服务器名称以及拥塞控制或 UDP 转发方式等参数。不同实现阶段使用过不同字段表达,订阅来源与内核之间若存在格式差异,最容易出现的情况是节点能够被识别,但某个可选参数没有按预期生效。因此,TUIC 迁移时不能只确认 type,还要核对认证字段名称、拥塞控制名称、UDP 中继模式和证书设置。

TUIC 的多路复用有助于减少重复握手,并让多个应用流共享底层连接,但共享并不总是越多越好。如果一条底层连接出现持续拥塞,过度集中可能让更多请求共同受影响;如果建立过多独立连接,又会增加握手、内存与 NAT 映射成本。客户端和内核通常提供相对合理的默认值,除非已经通过日志确认瓶颈,否则不建议仅依据网络上的参数片段大幅调整。

UDP 协议的网络与设备边界

在稳定、低时延且几乎不丢包的有线网络中,Hysteria2 或 TUIC 未必比简单 TCP 方案产生明显改善,因为其用户态协议栈、加密和定时器也需要处理器资源。反过来,在高时延或轻中度随机丢包环境下,它们更可能维持平滑吞吐。若丢包来自严重拥塞,盲目增加发送速率只会加重排队;此时应先降低带宽提示、检查路由器缓冲和减少并发任务。

企业、校园或公共 Wi-Fi 可能具有不同的 UDP 策略,切换网络后结果也可能改变。移动设备还会受到蜂窝网络 NAT、后台冻结和无线模块省电策略影响。因而 UDP 协议应保留一个可用的 TCP 方案作为对照,而不是在连接异常时同时更换内核、DNS 与规则。对照节点能帮助判断问题位于协议路径还是整个配置环境。

proxies:
  - name: "Hysteria2-Test"
    type: hysteria2
    server: test.example.com
    port: 443
    password: "your-password"
    sni: test.example.com
    skip-cert-verify: false

  - name: "TUIC-Test"
    type: tuic
    server: test.example.com
    port: 443
    uuid: 00000000-0000-0000-0000-000000000000
    password: "your-password"
    sni: test.example.com
    skip-cert-verify: false

以上片段用于说明 mihomo 配置结构,地址与认证信息是示例值,不能直接建立连接。真实配置应由服务端提供,并保持服务器名称与证书一致。手工录入后先使用客户端的配置检查功能,确认字段名称和缩进正确,再加入策略组测试。

四、连接速度、吞吐与资源占用如何比较

把“速度”拆成四项指标

用户感知的速度至少包含连接建立时间、首字节时间、持续吞吐和并发稳定性。连接建立时间受 DNS、TCP 或 QUIC 握手、TLS 握手以及协议认证影响;首字节时间还包括目标站响应和策略匹配;持续吞吐主要受线路带宽、拥塞控制、丢包恢复与处理器能力影响;并发稳定性则与连接复用、文件描述符、内存和服务端负载相关。只看测速页面的峰值,无法解释网页首开慢、视频拖动卡顿或大量小请求排队等现象。

SS 的协议处理相对紧凑,在硬件加速良好的设备上通常具有较低额外开销。Trojan 与启用 TLS 的 VMess、VLESS 需要考虑 TLS 握手,但持续连接建立后,固定握手成本会被长时间传输摊薄。Hysteria2 和 TUIC 的用户态传输逻辑更复杂,可能消耗更多处理器与内存,同时在高时延或丢包网络中通过更灵活的拥塞控制获得更稳定的有效吞吐。最终结果取决于网络条件,而不是由协议层单独决定。

加密与处理器能力

现代桌面处理器和移动芯片通常对常见密码学操作提供硬件优化,但不同算法、运行库和内核实现利用程度不同。低功耗路由器、较旧手机和入门级服务器更容易在高速传输时达到单核瓶颈。此时表现通常是网络带宽仍有余量,但内核进程占用持续升高、设备温度上升且吞吐无法继续增长。更换协议可能改变结果,但也应检查是否启用了过多日志、复杂规则、流量嗅探或大量连接复用,因为这些功能同样消耗资源。

内存占用主要来自内核基础运行、规则集、DNS 缓存、连接状态和缓冲区。协议本身的静态差距往往小于规则集规模与并发连接造成的差距。加载多个大型规则提供者、保留过长日志、同时运行多个订阅和启用复杂 DNS 分流,可能比从 SS 切换到 Trojan 更明显。服务器或路由器部署 mihomo 时,应把可用内存留给系统网络栈与缓存,避免内存压力触发频繁回收。

TCP 与 QUIC 类协议的丢包表现

TCP 在稳定网络中效率高、实现成熟,系统内核也经过长期优化。其不足通常在高时延和丢包结合时更明显,尤其当多个应用流被包在同一外层 TCP 连接中,一个丢失的数据段可能阻塞后续数据交付。QUIC 类方案把不同流的状态分开管理,能够减轻一条流丢包对其他流的影响,并在用户态采用合适的拥塞控制。但 UDP 数据包仍会经过路由器队列和网络路径,严重拥塞时同样需要降速。

判断是否受丢包影响,不能只执行一次连通测试。应观察连续请求、稳定下载和实时业务是否在固定间隔出现停顿。若切换到 Hysteria2 或 TUIC 后持续吞吐改善但设备明显发热,说明网络收益与设备成本同时存在,需要按使用时长权衡。若改善只在短时测速中出现,而长时间传输逐步下降,则可能涉及服务端限速、热降频或错误带宽参数。

协议类型 握手特征 处理开销倾向 较适合观察的场景
SS 配置和认证流程较紧凑 通常较低,受加密方法影响 资源有限设备、稳定网络、简单转发
VMess 受传输层与 TLS 组合影响 中等,字段与封装组合较多 已有成熟配置与既有订阅生态
Trojan / VLESS 常包含 TLS 握手 中等,取决于传输组合 需要标准 TLS 能力和清晰证书管理
Hysteria2 / TUIC 基于 UDP 的现代握手与会话 可能偏高,用户态传输工作更多 高时延、存在丢包、需要多流调度

一套更可靠的比较流程

先选择同一地区、相近线路条件的两个节点,在同一客户端和同一规则模式下测试。第一轮记录首次连接与网页打开;第二轮进行数分钟持续传输,观察平均而非峰值吞吐;第三轮同时发起多个常用应用请求,检查交互延迟;第四轮让连接闲置后恢复,确认会话是否稳定。测试期间记录内核进程的处理器、内存和设备温度,并在不同时间段重复。若结论变化很大,应优先归因于线路负载,而不是立即修改协议参数。

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

耗电不只由加密计算决定

移动端耗电由处理器计算、无线模块活跃时间、后台唤醒、数据重传和系统 VPN 服务共同构成。协议的密码学开销只是其中一部分。一个持续保持但活动频率较低的连接,可能比频繁断开重建更省电;一个理论处理效率较高、却因网络不稳定持续重传的方案,也可能消耗更多电量。评估协议时应观察至少一个完整使用周期,包括前台浏览、锁屏待机、消息到达、网络切换和视频传输,而不是只看几分钟测速后的电池百分比。

SS 配置较简单,通常容易在移动设备上获得稳定表现,但最终仍取决于 UDP、DNS 和系统 VPN 实现。Trojan、VMess 与 VLESS 若频繁建立 TLS 或传输层连接,会增加唤醒和握手成本;如果客户端能合理复用连接并保持会话,这部分成本可以下降。Hysteria2 与 TUIC 在弱网下可能减少长时间等待和重复传输,从而改善有效能耗,但其用户态协议处理、定时器和持续 UDP 会话也可能提高后台活动。不存在适用于所有手机和网络的固定耗电排序。

Android 的后台与电池策略

Android 客户端通常通过系统 VPN 接口接管流量。不同厂商的后台管理会限制应用进程、VPN 服务或网络活动,锁屏后断开不一定是协议故障。使用 Clash Plus、Clash Meta for Android、FlClash 或 Surfboard 时,应先确认系统状态栏中的 VPN 连接是否仍存在,再检查应用是否被电池优化暂停。若只有某种协议在锁屏后恢复较慢,可以比较其连接保活和会话恢复;若所有协议都同时停止,则更可能是系统后台策略或应用进程被终止。

Android 上的网络切换也值得单独测试。从 Wi-Fi 切换到蜂窝网络时,本地 IP、NAT 映射和路径都会改变。传统 TCP 连接通常需要重建,QUIC 类协议在实现允许时可能更灵活,但客户端、系统 VPN 与服务端必须共同配合。若切换后显示已连接却没有流量,可先暂停再恢复客户端连接,随后检查 DNS 是否仍指向旧网络环境。频繁自动切换的设备可适当减少不必要的并发连接,避免每次切换都重建大量会话。

iOS 的系统 VPN 生命周期

iOS 客户端同样受系统 Network Extension 生命周期和内存限制影响。Clash Plus 通过系统提供的网络扩展处理流量,后台状态由系统统一调度。节点参数复杂、规则集过大、DNS 缓存和连接数量过多,都可能增加扩展的内存压力。移动端配置不宜照搬资源充足的桌面配置,尤其不应同时加载多个重复的大型规则集。协议无法连接时,先确认配置本身能通过解析,再查看是单个节点失败还是整个 VPN 扩展退出。

iOS 上比较耗电时,应保持屏幕亮度、应用使用方式和网络类型接近,并在系统电池页面观察一段时间。若某方案前台速度很高但后台活动明显增加,可以尝试减少持续连接、关闭不需要的流量嗅探或调整规则,不能只通过更换协议解决。需要安装 iOS 客户端时,可在iOS 下载区查看 Clash Plus 的 App Store 入口和官网 clashplus.io。

弱网下的电量与体验平衡

在稳定家庭 Wi-Fi 中,轻量 TCP 方案通常足够,持续使用 Hysteria2 或 TUIC 未必带来可感知收益。在通勤、蜂窝网络和经常切换接入点的环境中,可以比较现代 UDP 方案是否减少视频缓冲和连接停顿。如果手机温度、后台活动或流量消耗明显上升,则应回到默认参数,避免填写超过真实带宽的上行与下行值。高发送速率造成的排队与重传既降低体验,也会延长无线模块的工作时间。

移动端推荐保留两个策略入口:一个选择经过日常验证的稳定节点,另一个选择适合高时延或丢包网络的节点。遇到异常时先切换策略,不必立即重载全部配置。这样能快速判断是单节点问题还是客户端整体问题,也能减少频繁修改配置带来的变量。订阅更新后若协议字段发生变化,应先手动测试新节点,再把它加入自动选择或故障转移策略。

六、原版 Clash、Clash Meta 与 mihomo 的家族关系

原版 Clash:配置体系的基础

原版 Clash 建立了广泛使用的 YAML 配置结构、规则系统、策略组和控制接口。常见的 proxiesproxy-groupsrules、DNS 与端口字段都源于这一体系。许多客户端即使已经更换内核,界面与配置概念仍然延续原版 Clash 的组织方式。因此,理解原版配置模型仍然有价值:节点负责描述连接,策略组负责选择与自动测试,规则负责把请求交给相应策略,DNS 则影响域名解析和规则匹配。

原版 Clash 的协议覆盖更接近其维护时期的常见需求。对于 SS、VMess、Trojan 等基础配置,它形成了稳定且广泛兼容的语法,但面对 Hysteria2、TUIC、VLESS 扩展、规则能力和现代 DNS 功能时,通常需要后续内核。继续使用只支持原版内核的旧客户端,可能出现订阅能导入但新节点被跳过、未知字段报错或功能被静默忽略的情况。

Clash Meta:在原有模型上扩展

Clash Meta 以兼容 Clash 配置体系为基础,增加了更多协议、传输方式、规则能力和 DNS 选项。它的重要意义不只是增加节点类型,而是让原有策略组与规则模型可以继续承载新的协议实现。用户可以保留大部分熟悉的配置结构,同时使用 VLESS、Hysteria2、TUIC 等能力。不过,“兼容原版”主要表示大量基础字段和组织方式可以沿用,不代表任意 Meta 配置都能反向交给原版 Clash。

配置一旦使用 Meta 专属协议或扩展字段,就形成单向兼容关系:mihomo 通常可以理解许多原版 Clash 配置,原版 Clash 却不能理解所有 mihomo 配置。迁移前应识别这些扩展点,包括代理类型、规则类型、DNS 模式、流量嗅探、规则提供者格式和策略组选项。若需要同时维护新旧客户端,应采用共同支持的字段子集,或由订阅系统分别生成两份目标配置,而不是强行让一份复杂配置兼容所有内核。

mihomo:项目名称延续与当前实现

mihomo 是 Clash Meta 后续采用的项目名称,很多客户端界面和文档仍会同时出现 Meta、Clash Meta Core 或 mihomo。判断时应关注实际内核,而不是只依据客户端名称。Clash Plus、Clash Verge Rev、FlClash、Clash Nyanpasu 等图形客户端可以把配置管理、系统代理、日志和更新操作包装成界面,但节点协议最终仍由内核解析和执行。客户端自身更新与内核更新也可能分开进行,因此界面功能正常不等于内核已支持订阅中的全部新字段。

本站下载页把图形客户端与 mihomo 内核包分开列出。普通桌面和移动用户优先选择图形客户端,Clash Plus 作为全平台首推项,适合希望通过统一界面完成导入、策略选择和系统代理管理的用户。直接下载 mihomo 内核更适合服务器、路由器或需要自行管理配置与进程的使用方式。内核本身不等同于完整桌面应用,系统代理、开机启动、配置编辑和更新需要由外部工具处理。

内核家族 定位 协议与功能范围 配置兼容方向
原版 Clash 基础配置模型与规则体系 覆盖维护时期的常见协议和规则能力 作为基础语法来源,不能读取多数后续扩展
Clash Meta 兼容基础模型并扩展协议与规则 增加 VLESS、现代 UDP 协议和更多功能 多数基础配置可向上迁移,扩展配置难以反向迁移
mihomo Meta 项目的后续名称与当前实现 延续并维护扩展协议、DNS 与规则能力 应按当前文档核对字段,不以旧名称推断支持范围

如何确认客户端正在使用哪个内核

首先查看客户端的“关于”“内核”或“运行状态”页面,区分应用名称与内核名称。其次查看配置检查或启动日志,内核通常会在加载阶段报告未知字段、代理解析失败或规则错误。再次选择一个只由 mihomo 支持的节点进行测试,若节点在导入时被过滤,说明订阅转换目标或当前内核不匹配。不要仅依据安装包文件名猜测,因为部分客户端允许切换内核或独立更新内核文件。

从旧客户端迁移时,应先在新客户端中导入订阅副本,不要覆盖唯一可用配置。确认节点数量、策略组和规则均符合预期,再测试 DNS 与协议连接。关于 mihomo 与原版 Clash 的详细差异,还可阅读mihomo 与原版 Clash 的区别。若配置在启动阶段直接报错,应根据第一条解析错误处理,因为后续错误可能只是前一个结构问题引发的连锁结果。

七、订阅格式、YAML 字段与迁移兼容性

节点链接、订阅清单与完整配置是三种层级

单个节点链接通常只描述一个代理所需的信息,例如协议、服务器、端口和认证参数。订阅清单是一组节点的集合,可能使用 Base64 文本、专用链接列表或服务端生成格式。完整 Clash 配置则不仅包含节点,还包含策略组、规则、DNS、端口和其他运行参数。把订阅导入客户端时,客户端可能执行解析、转换、合并和覆写,因此最终加载的 YAML 不一定与远端原始内容完全相同。

兼容问题常发生在转换环节。源订阅可能包含目标内核不认识的协议,转换器可能丢弃未知字段;也可能把另一生态的字段映射成 Clash 语法,但未覆盖某个扩展参数。节点数量看起来正确,并不能证明每个节点结构完整。迁移后应抽查不同协议各一个节点,特别是带有 WebSocket、gRPC、TLS、Reality 类扩展或 UDP 参数的节点,确认关键字段没有丢失。

YAML 结构与类型要保持准确

YAML 依赖缩进表达层级,列表项、对象和字符串类型必须准确。端口通常写为数字,布尔值写为 truefalse,包含特殊字符的密码和名称适合使用引号。Tab 字符、全角标点、错误缩进和重复键都可能让配置解析失败。客户端若提供语法检查,应在替换主配置前使用;手工编辑时一次只改一小段,并保留上一个可加载副本。

proxies:
  - name: "SS-Test"
    type: ss
    server: test.example.com
    port: 8388
    cipher: aes-128-gcm
    password: "your-password"
    udp: true

proxy-groups:
  - name: "手动选择"
    type: select
    proxies:
      - "SS-Test"
      - DIRECT

rules:
  - MATCH,手动选择

这段配置展示节点、策略组和规则之间的引用关系。策略组中的名称必须与节点名称完全一致,规则末尾引用的策略组也必须存在。示例地址和密码不可直接连接。真实订阅中如果节点名称包含逗号、特殊符号或重复名称,转换器可能进行重命名,手工编写的策略组引用也要同步更新。

基础字段兼容不等于行为完全一致

同一个字段在不同内核中可能具有不同默认值,某些旧字段也可能继续被接受但不再推荐。迁移时最安全的方式是让目标客户端重新生成基础设置,只把节点、策略组和确有必要的规则迁入,而不是整份复制旧客户端导出的所有运行参数。系统代理端口、控制接口、缓存路径和外部资源目录通常与设备环境有关,不适合跨平台直接复用。

DNS 是另一类高风险区域。原版 Clash、Meta 与 mihomo 的 DNS 能力和可用字段存在演进,旧配置中的 nameserver、fallback、fake-ip 范围和过滤规则需要结合当前内核重新核对。若节点能够连接但部分域名解析异常,应把问题拆成“系统请求是否进入客户端”“Clash 使用哪个解析器”“解析结果如何进入规则匹配”三个步骤。详细请求路径可查阅Clash DNS 配置详解

订阅更新失败与本地覆写

客户端通常会保存订阅地址、远端配置缓存和本地覆写。若直接编辑远端配置生成的文件,下一次更新可能覆盖修改;若覆写规则写得过宽,也可能在更新后删除新节点字段。建议保留原始订阅,只在客户端支持的覆写层添加策略组或规则。更新失败时,先判断是地址无法访问、返回内容为空、身份参数失效,还是下载成功但解析失败。前两类属于获取阶段,后两类属于内容阶段,排查方向不同。

对于定时更新,不宜设置过短间隔。频繁请求并不会让节点持续变快,反而可能造成重复解析、策略组重建和移动端后台唤醒。订阅提供方明确给出更新时间时按其建议设置;没有要求时,按实际变更频率选择合理周期。更新后若节点数量突然减少,先保留旧缓存,不要立即删除可用配置。相关处理顺序可参考Clash 订阅更新失败原因与自动更新间隔设置

迁移对象 通常可直接迁移 需要重新核对
基础节点 服务器、端口、认证信息 传输扩展、TLS、插件、UDP 选项
策略组 select、url-test 等基础组织思路 测试参数、节点过滤、健康检查行为
规则 DOMAIN、IP-CIDR、MATCH 等常见规则 扩展规则类型与规则提供者格式
DNS 基础解析器地址与启用意图 模式、fallback、fake-ip 与过滤逻辑
应用设置 通常不建议跨平台复制 端口、路径、系统代理和启动方式

八、按设备与网络场景完成最终选型

稳定桌面网络:先选择兼容和维护成本

Windows、macOS 或 Linux 桌面设备连接稳定宽带时,协议差异往往小于服务器线路差异。已有可靠 SS、Trojan、VMess 或 VLESS 节点时,没有必要仅因协议名称较旧而更换。应优先选择当前客户端完整支持、订阅字段清晰、服务端维护稳定的方案。需要图形界面时可以先从下载页选择 Clash Plus,再根据平台需求比较 Clash Verge Rev、FlClash、Clash Nyanpasu 或其他列出的客户端。

桌面端首次配置建议使用规则模式而不是立即堆叠复杂覆写。先验证节点直连测试、策略组切换和 DNS,再加载额外规则。若同一服务提供多种协议,可以选择相同地区节点进行单变量比较:稳定网络下优先看首开、长期稳定和资源占用,而不是只看峰值。SS 配置简洁,Trojan 与 VLESS 常依赖 TLS 参数,VMess 需要完整保留传输字段;任何一个只要配置与线路更成熟,都可能成为更合适的日常选择。

高时延或轻中度丢包:比较 Hysteria2 与 TUIC

跨地区连接、移动热点或无线质量波动明显时,可以测试 Hysteria2 和 TUIC。先确认客户端使用 mihomo,并确保订阅输出了完整节点字段。测试时使用默认参数建立基线,不要先填写很高的带宽值。若持续下载更平滑、视频拖动恢复更快且设备资源可接受,说明现代 UDP 方案适合当前路径;若连接经常在闲置后失效,或某些网络完全无法建立 UDP 会话,则保留 Trojan、VLESS 或 SS 作为替代入口。

Hysteria2 更适合希望使用相对集中的认证与 TLS 配置、并针对弱网吞吐进行测试的场景;TUIC 则应更多关注认证字段、多路复用、拥塞控制和 UDP 中继方式是否与目标内核匹配。两者都不应脱离服务器配置自行转换。若服务端只提供其中一种,就应围绕该实现做测试,而不是依据名称推断另一种一定更快。

移动设备:把稳定恢复放在峰值之前

Android 与 iOS 选型应加入锁屏、后台和网络切换测试。日常以家庭 Wi-Fi 为主时,稳定的 SS、Trojan 或 VLESS 通常容易获得平衡表现;蜂窝网络时延较高且有随机丢包时,可以测试 Hysteria2 或 TUIC,但要同时观察耗电、温度和后台活动。若客户端在锁屏后被系统暂停,先调整系统允许的后台策略,不要把所有断连都归因于协议。

移动端配置应控制规则集和并发规模,避免把桌面配置完整复制到手机。保留一个经过验证的稳定策略和一个弱网策略,切换时只改变节点或策略组。订阅更新后先测试,再放入自动选择组。这样既能减少突发兼容问题,也便于判断异常来自节点、协议还是系统 VPN 生命周期。

路由器与服务器:资源预算决定上限

在路由器、旁路由或小型服务器上直接运行 mihomo 时,应先确认处理器架构、可用内存、存储空间和系统服务管理方式。低功耗设备使用简单协议和适量规则通常更稳,复杂 DNS、流量嗅探、大型规则集与现代 UDP 协议叠加后可能出现单核占满或内存压力。部署前先以少量节点和基础规则运行,观察长期资源,再逐项增加功能。

路由器承担整个局域网流量时,并发连接远高于单台电脑。协议复用、连接跟踪、DNS 缓存和日志都会放大资源需求。若高峰时段速度下降,应同时查看处理器、内存、温度、网络接口和上游线路,不能只替换协议。直接使用 mihomo 内核意味着需要自行处理进程守护、配置权限和更新流程;不熟悉这些操作时,桌面或移动图形客户端的维护成本更低。

迁移与验证清单

从旧客户端迁移到 mihomo 客户端时,先备份订阅地址和当前可用配置,再安装目标客户端。推荐优先选择 Clash Plus,并在新客户端中重新添加订阅,不覆盖旧应用数据。导入完成后核对节点数量与协议分布,分别选择 SS、VMess、Trojan、VLESS、Hysteria2 或 TUIC 中实际存在的节点测试。随后检查策略组、规则模式、DNS 和系统代理,最后才处理开机启动、后台权限等应用设置。

验证节点时按固定顺序进行:配置能否解析、节点能否完成连接、域名能否解析、规则能否选择预期策略、持续传输是否稳定、锁屏或闲置后能否恢复。第一步失败就不应继续调整测速参数;节点连接成功但网页打不开时,应检查 DNS 与系统代理;只有持续传输阶段异常,才重点比较拥塞、丢包和资源占用。遇到无法上网、订阅更新失败或启动错误,可进入疑难解答按现象排查。

简化后的选择顺序

  1. 先看服务端提供什么:客户端不能在本地把一种协议转换成另一种协议。
  2. 再看内核是否完整支持:Hysteria2、TUIC、VLESS 扩展优先使用 mihomo。
  3. 稳定网络优先维护成本:配置完整、运行稳定的 SS、Trojan、VMess 或 VLESS 都可作为日常方案。
  4. 高时延和丢包再测现代 UDP:以默认参数建立基线,同时观察吞吐、温度与耗电。
  5. 迁移时保留回退配置:分别验证节点、策略、DNS 和系统代理,避免一次改变全部变量。

最终选型不需要追求全局唯一答案。桌面、手机与路由器可以使用不同客户端和不同协议;稳定网络与弱网也可以放在两个策略组中按需切换。协议选择的核心是让服务端能力、内核支持、订阅字段和设备条件形成完整闭环。只要这四项一致,传统协议与现代协议都能在合适的场景中发挥作用。