PROTOCOL · CORE · COMPATIBILITY

Clash协议与内核参考

比较 SS、VMess、Trojan、VLESS、Hysteria2 与 TUIC 的设计取舍,并从连接特征、设备资源、mihomo 兼容性和订阅格式建立选择依据。

6 类常见协议 Clash 内核家族 移动端电量表现 订阅兼容检查

01 · DECISION MODEL

先建立协议选型框架

协议名称不是速度排名

在 Clash Plus、Clash Verge Rev、FlClash 等客户端中,节点旁边显示的 SS、VMess、Trojan、VLESS、Hysteria2 或 TUIC,首先表示客户端与服务端交换数据时采用的协议结构,而不是一张可以直接按快慢排序的产品清单。一次连接的实际表现同时受到服务端处理能力、线路往返时间、丢包率、拥塞程度、传输层、加密实现、客户端内核和设备性能影响。即使协议类型相同,两个节点也可能因为线路与服务端负载不同而表现悬殊;反过来,不同协议在稳定网络中也可能得到接近的网页加载体验。

因此,协议选型应从“能否兼容”开始,再考虑“是否适合当前网络”,最后才比较速度。兼容性包括客户端内核是否支持该协议、订阅转换过程是否保留必要字段、传输层组合是否被实现,以及设备系统能否正常建立 UDP 或 QUIC 会话。如果配置在导入时就丢失了关键字段,后续测速没有意义。对于普通用户,优先采用订阅提供方已经验证的完整配置,比手工把一种协议改成另一种更可靠;协议类型不能只改一个名称就完成转换。

把影响因素拆成四层

第一层是基础网络。固定宽带通常延迟和丢包较稳定,TCP 类方案容易获得平滑表现;移动数据、公共 Wi-Fi 或跨运营商链路可能出现瞬时丢包和网络切换,此时基于 UDP、具备拥塞控制能力的 Hysteria2 或 TUIC 可能更有适应性,但前提是网络允许稳定传输 UDP。第二层是服务端与线路,同一协议若服务端 CPU 饱和、出口拥塞或路由绕行,客户端侧更换参数并不能消除瓶颈。

第三层是协议和传输组合。VMess、VLESS 可搭配 TCP、WebSocket、gRPC 等传输方式,VLESS 还常与 TLS、REALITY 等安全层组合;SS 更接近精简的加密代理结构;Trojan 依赖 TLS 语义;Hysteria2 与 TUIC 则建立在 QUIC 或 UDP 传输思路上。第四层是客户端实现。mihomo 对较新的协议与规则能力覆盖更完整,而较早的原版 Clash 配置能力有限。选择协议时必须把这四层连起来看,不能把网络问题、线路问题和内核问题全部归因到协议名称。

01

确认兼容

核对内核、订阅字段、传输层和认证参数是否完整。

02

观察网络

判断当前链路更接近稳定 TCP 环境,还是高丢包移动网络。

03

测试真实任务

分别检查网页首开、持续下载、语音视频和待机恢复。

04

保留回退项

为 UDP 受限、网络切换或内核差异准备另一类可用协议。

测试时记录什么

客户端里的延迟测试通常只反映一次探测请求,不能完整代表长连接吞吐和稳定性。更实用的测试应包含四项:首次打开多个站点时的响应速度、持续下载一段时间后的吞吐波动、视频或会议连接中的卡顿情况、设备锁屏再唤醒后的恢复速度。每次只改变一个变量,例如固定同一网络与同一服务端,再比较协议;或者固定协议,比较 Wi-Fi 与移动数据。若同时更换节点、网络、客户端和协议,就无法判断改善来自哪一层。

还应在日志中确认失败发生的位置。域名解析错误、连接超时、认证失败、TLS 握手错误、UDP 不可达分别指向不同问题。日志显示认证失败时,反复切换全局模式不会解决问题;日志显示 DNS 解析异常时,更换协议也未必有效。关于日志页面与代理、配置页面的对应关系,可继续阅读Clash Verge界面功能速览。建立这种分层检查方式后,协议选择才会从“尝试哪个名字”变成可重复、可核对的技术判断。

02 · ESTABLISHED DESIGNS

SS、VMess 与 Trojan 的设计取舍

SS:精简结构与广泛实现

Shadowsocks 通常简称 SS,它的核心思路是以相对精简的结构完成加密代理传输。客户端配置主要围绕服务器地址、端口、加密方法和认证密钥展开,协议本身不负责提供复杂的用户体系或大量传输层语义。较少的协议开销、成熟的跨平台实现和较低的配置复杂度,使 SS 长期适合资源有限的设备,也便于在桌面端与移动端之间保持一致配置。

SS 的实际安全与性能高度依赖加密方法及实现。当前配置应使用服务端明确提供、客户端内核支持的 AEAD 或现代加密方法,不能仅凭旧教程随意替换 cipher。加密方法是双方协商前的固定配置,客户端与服务端不一致时会直接连接失败。部分订阅还会包含插件或扩展参数,这些内容不属于最基础的 SS 字段;导入到不同内核时,需要确认插件名称与参数是否保留。若节点可以导入但连接立即中断,应先比对加密方法、密码、插件和端口,而不是先调整代理规则。

VMess:身份信息与多种传输组合

VMess 的设计包含客户端身份、时间相关校验以及较丰富的传输组合,常见配置字段包括服务器、端口、UUID、alterId、cipher、网络类型和 TLS 设置。现代配置中 alterId 往往为零,但旧订阅可能仍携带非零值;是否可用取决于服务端与内核实现,不能在不了解服务端配置时自行删改。VMess 可与 TCP、WebSocket、HTTP 或 gRPC 等传输方式组合,因此看到 VMess 只能确定上层协议类型,不能推断完整的连接路径。

这种组合能力带来灵活性,也增加了配置出错点。WebSocket 通常还要核对 path、Host 和 TLS server name;gRPC 需要核对 service name;TLS 场景要确认服务器名称和证书校验相关字段。订阅转换器若只保留地址、端口和 UUID,而遗漏 transport-opts,节点可能仍出现在列表中,却无法完成连接。VMess 本身也不是“参数越多越快”,传输层额外封装会带来一定开销,但在具体部署架构中可能有兼容价值,性能判断仍应回到实际链路。

Trojan:基于 TLS 会话的认证结构

Trojan 以 TLS 连接为基础,通过密码进行认证。配置通常包括服务器、端口、密码、SNI、证书校验选项以及可选的传输设置。它的理解重点不是“像某种网页流量”,而是客户端必须先正确完成 TLS 握手,之后才能继续认证和转发。由此带来的直接结果是:系统时间、SNI、证书链、服务端域名和 TLS 实现都会影响连接。日志出现 certificate、handshake 或 server name 相关错误时,应先检查这些字段。

Trojan 的协议结构较清晰,TCP 稳定网络中通常容易获得平稳连接。其 TLS 握手与加密会消耗一定 CPU,但在现代桌面设备和多数手机上通常不是主要瓶颈。真正需要关注的是长连接数量、服务端 TLS 处理能力及网络重连频率。移动网络频繁切换时,每次重新建立会话都要重新完成必要握手,因此待机恢复体验可能受到网络状态影响。若订阅同时提供 Trojan 与 UDP 类协议,可以把 Trojan 作为稳定 TCP 回退项,而不是假设某一种协议可以覆盖全部网络。

协议 主要配置关注点 典型优势 常见失败位置
SS 加密方法、密码、插件参数 结构精简、实现广泛、资源需求较低 cipher 不一致、插件字段丢失
VMess UUID、传输类型、TLS、路径或服务名 传输组合丰富、旧有配置覆盖面广 传输选项遗漏、时间或身份参数错误
Trojan 密码、SNI、证书链、TLS 设置 配置逻辑清晰、TCP 链路表现平稳 TLS 握手、证书名称或认证失败

这三类协议都不应只按“新旧”判断是否值得使用。SS 的精简在低性能设备上仍有价值,VMess 的既有部署和传输组合仍可能满足特定配置,Trojan 在稳定 TCP 环境中也有明确位置。更合理的做法是先验证服务端提供的完整组合,再结合日志和实际任务比较。若一个配置长期稳定、资源占用合理且订阅更新正常,仅因为协议名称较早就更换,并不会自动改善体验。

03 · CURRENT OPTIONS

VLESS、Hysteria2 与 TUIC 的适用边界

VLESS:把认证与加密层分开理解

VLESS 使用 UUID 等信息完成客户端身份表达,但协议本身不提供与 VMess 相同的内建加密思路,实际连接安全性通常由 TLS、REALITY 或其他外层机制承担。理解 VLESS 时必须把协议、传输层与安全层分开:VLESS 决定一部分认证和转发结构,TCP、WebSocket、gRPC 等决定承载方式,TLS 或 REALITY 决定对应的安全握手。客户端列表只显示 VLESS 时,仍需展开配置核对 network、tls、servername、reality-opts 和 flow 等字段。

VLESS 配置中的 flow 并不是可随意填写的性能开关。某些组合会使用特定流控值,客户端、服务端和底层实现必须一致;错误值通常造成握手或数据传输失败。REALITY 配置还可能包含 public-key、short-id 和 servername,这些字段具有配套关系。订阅转换若改写字段名、删除空值时误删必要参数,或者旧客户端不认识相关结构,都会导致“节点存在但不可连接”。因此 VLESS 更适合由支持 mihomo 的现代客户端完整导入,而不是复制旧版 Clash 样例后手工拼接。

Hysteria2:面向高丢包链路的 QUIC 思路

Hysteria2 运行在基于 UDP 的 QUIC 传输之上,重点是利用现代拥塞控制和多路复用能力适应延迟、抖动或丢包较明显的链路。它并不意味着在所有网络中都会更快:当 UDP 路径稳定、服务端带宽充足且参数合理时,持续传输可能保持较好的吞吐;如果本地网络对 UDP 限速、路由质量差或中间设备频繁回收 UDP 会话,则可能出现连接超时、速度波动或待机恢复缓慢。

常见配置字段包括服务器地址、端口、认证信息、TLS server name、证书校验以及带宽相关参数。带宽值用于帮助拥塞控制判断发送节奏,不是把数字写得越大就能获得越高速度。设置明显高于真实线路能力时,可能造成排队和丢包;设置过低则会限制吞吐。较新的实现也可能根据模式自动调整,使用订阅下发值通常比盲目修改更稳妥。若客户端日志显示 UDP timeout,应先换网络交叉测试,并确认系统防火墙、路由器和服务端端口,而不是只反复增大带宽参数。

TUIC:低时延会话与 UDP 传输

TUIC 同样以 QUIC 和 UDP 为基础,关注快速建立连接、多路复用与较低的队头阻塞影响。配置通常包含 UUID、密码、服务器名称、拥塞控制选项、UDP 中继模式等。不同实现或配置代际之间可能存在字段差异,订阅中的协议标识、版本语义和认证结构必须与服务端一致。mihomo 可以识别常见 TUIC 配置,但旧内核或旧客户端可能无法解析,导入后被忽略并不代表订阅为空,而可能是内核不支持该节点类型。

TUIC 适合需要频繁建立会话、网络质量存在波动且 UDP 可用的环境,但它不是对 TCP 协议的全面替代。企业 Wi-Fi、访客网络、部分蜂窝网络或严格配置的路由环境可能限制 UDP;此时 TUIC 与 Hysteria2 可能一起失效。实际配置中应保留 SS、Trojan 或其他 TCP 传输节点作为回退。对于语音、游戏和实时通信,还要区分“客户端到服务端使用 UDP”与“目标应用是否经过 UDP 转发”这两层,前者可用不代表后者策略和规则一定正确。

proxies:
  - name: "VLESS-Reference"
    type: vless
    server: node.example.invalid
    port: 443
    uuid: 00000000-0000-4000-8000-000000000000
    network: tcp
    tls: true
    servername: node.example.invalid

  - name: "Hysteria2-Reference"
    type: hysteria2
    server: node.example.invalid
    port: 443
    password: "your-password"
    sni: node.example.invalid

上面的片段用于说明 mihomo YAML 中字段的层级,地址、身份和密码是明确的示例值,不能直接用于连接。真实订阅可能采用不同字段组合,例如 VLESS 增加 REALITY 参数,Hysteria2 增加端口范围或带宽设置。编辑配置后应先使用客户端的配置检查功能,再观察日志是否出现 unsupported、missing field、authentication 或 handshake 等信息。若配置来自订阅,优先在订阅源修正或使用明确支持目标格式的转换方式,避免每次更新都覆盖本地修改。

04 · PERFORMANCE

连接速度、吞吐与资源占用怎么比较

首开速度与持续吞吐不是同一个指标

用户感受到的“快”至少包含三类指标。第一类是连接建立时间,包括 DNS 查询、到服务端的网络往返、TCP 或 QUIC 建连、TLS 握手和协议认证。网页由许多短请求组成时,连接建立和复用效率会明显影响首开体验。第二类是持续吞吐,主要受线路带宽、拥塞控制、丢包恢复和服务端出口影响。第三类是抖动与尾延迟,它决定视频会议、语音和交互式应用是否偶发卡顿。只看一次延迟数字,无法覆盖后两类表现。

SS 的协议处理相对精简,在 CPU 较弱的设备上容易保持低开销;Trojan 和使用 TLS 的 VMess、VLESS 需要完成 TLS 相关计算,但现代处理器通常可以高效完成。Hysteria2 与 TUIC 的 QUIC 栈需要维护 UDP 会话、拥塞状态和加密上下文,在高吞吐场景下可能使用更多 CPU,不过在高丢包链路中,它们也可能因为恢复机制更适合而获得更稳定的有效吞吐。资源占用不能脱离网络质量讨论:协议处理多一点,但减少了重传等待,整体任务反而可能更早完成。

加密、封装与多路复用的代价

任何协议都会产生头部、认证或加密开销,差异通常体现在每个连接的状态数量、封装层数和数据包大小。WebSocket、gRPC、TLS 等组合会增加额外处理,UDP 上的 QUIC 也有自己的控制帧和确认机制。对于大文件传输,这些固定开销占比可能较低;对于大量短连接,小包和频繁握手的影响更明显。多路复用可以减少重复建连,但并非越多越好:过多逻辑连接集中到一条底层连接后,底层连接一旦抖动,多个任务可能同时受影响。

mihomo 中的连接复用、TCP 并发和 UDP 处理选项应根据客户端版本与订阅说明使用,不宜从不同教程复制一组所谓“通用最快参数”。尤其是带宽、拥塞控制和连接池参数,必须与实际线路匹配。移动网络的瞬时带宽变化很大,固定上行和下行值只能作为估计。测试时可以先保持订阅默认,再逐项调整;每次至少覆盖网页、小文件、持续传输和休眠恢复,确认收益不是偶然峰值。

观察维度 SS VMess / VLESS / Trojan Hysteria2 / TUIC
建连组成 结构较精简,视插件而变 传输层与 TLS 组合决定握手次数 QUIC 建连并维护 UDP 会话
高丢包适应 主要依赖底层 TCP 恢复 TCP 组合依赖 TCP,具体视传输层 拥塞控制可针对波动链路工作
CPU 压力 通常较低 受 TLS、封装与连接数量影响 高吞吐时需处理 QUIC 与拥塞状态
网络限制敏感点 端口、插件与服务端配置 TLS、SNI、传输字段完整性 UDP 可达性、会话保持与限速

用可复现流程做比较

建议先关闭后台下载和系统更新,固定一台设备、一种网络与同一时间段。每个候选节点先进行一次连接测试,再连续打开相同的一组网页,随后执行时间足够长的文件传输或视频播放,最后让设备锁屏数分钟后恢复。记录的不必是精确到小数的数字,而应包括首开是否稳定、持续传输是否周期性下降、语音是否出现长停顿、唤醒后是否需要手动重连。重复两到三轮后再作判断,可以排除缓存和瞬时拥塞。

日志和系统监视器可帮助定位资源瓶颈。若单核 CPU 长时间接近满载而网络吞吐无法继续上升,可能是设备处理能力或加密实现限制;若 CPU 较低但丢包和重传明显,重点应转向线路;若多个协议在同一节点同时变慢,则更可能是服务端或出口问题。内存方面,规则集规模、连接数量和 DNS 缓存往往比单个协议类型更有影响。比较协议时应保持规则与 DNS 配置一致,避免把大型规则加载带来的内存差异归到协议上。

05 · MOBILE AND PLATFORM

移动端电量、网络切换与平台差异

电量消耗来自持续工作方式

移动端电量表现不能简单等同于协议加密强度。影响耗电的主要因素包括无线模块保持活跃的时长、连接重建频率、后台保活方式、数据传输总量、DNS 请求数量、规则匹配负担以及 CPU 处理时间。一个协议若能快速完成任务并让无线模块回到低功耗状态,即使瞬时 CPU 使用略高,总能耗也可能较低;另一个协议若在不稳定网络中持续重传或频繁重连,即使单次处理较轻,也可能造成更多电量消耗。

SS 在配置简单、链路稳定时通常具有较低处理负担。Trojan、VMess 或 VLESS 搭配 TLS 时会产生握手和加密成本,但长连接复用正常时,持续使用的差异可能并不显著。Hysteria2 与 TUIC 需要维持 UDP 或 QUIC 会话,网络稳定时可以减少部分等待;当系统频繁切换基站、路由器回收 UDP 映射或后台策略限制活动时,会话重建可能增加唤醒次数。实际电量结果还与 Android 厂商后台限制、iOS 网络扩展机制及客户端实现有关,不能仅根据协议名称预判。

Android:后台策略与 VPN 服务

Android 客户端通常通过系统 VPN 服务接管流量。Clash Plus、Clash Meta for Android、FlClash 与 Surfboard 的界面和功能范围不同,但都受系统省电策略、后台活动权限和厂商进程管理影响。出现锁屏后断流时,应先确认客户端是否仍在运行、VPN 标识是否保留、系统是否限制后台电量使用,再检查协议。若应用进程被系统停止,换成另一种协议通常不能解决根因。

Android 上还应关注 IPv6、私人 DNS、按应用代理和热点共享。某些应用直接使用 IPv6,若配置仅处理 IPv4,可能表现为部分应用无法连接;私人 DNS 与客户端 DNS 劫持策略并存时,解析路径可能与预期不同。按应用代理会改变进入内核的流量范围,测试协议时应确认目标应用确实被包含。Hysteria2 或 TUIC 在移动数据上异常时,可切到 Wi-Fi 复测;若 Wi-Fi 正常而蜂窝网络持续超时,优先判断 UDP 路径和网络策略。

iOS:系统网络扩展与前后台切换

iOS 客户端依赖系统提供的网络扩展能力,连接状态、内存预算和后台行为由系统统一管理。本站下载清单中的 iOS 首推客户端为 Clash Plus,可从iOS 下载区进入 App Store。使用时应关注系统设置中的 VPN 状态、客户端配置是否启用,以及切换 Wi-Fi 和蜂窝网络后是否自动恢复。iOS 不向普通用户暴露与桌面系统相同的进程控制细节,因此排查重点是系统 VPN 状态、配置日志和网络切换结果。

移动设备使用 UDP 类协议时,切网会改变本地地址和 NAT 映射。QUIC 具备处理连接变化的相关机制,但实际能否平滑恢复仍取决于客户端、服务端和网络路径。若切网后长时间无法恢复,可以在客户端断开再连接,并检查日志中是否反复出现 timeout;如果 TCP 类节点能立即恢复而 UDP 类节点持续失败,说明当前网络对 UDP 会话不友好,应暂时使用 TCP 回退项。

桌面平台的差异重点

Windows、macOS 与 Linux 通常没有手机电池和后台冻结问题,但系统代理、TUN 权限、防火墙和睡眠恢复更关键。Windows 的部分应用可能不完全遵循系统代理,需要 TUN 模式或应用自身设置;商店应用还可能受到回环限制,可参考Windows UWP应用回环限制排查。macOS 上应区分系统代理与虚拟网络接口,睡眠后若连接异常,可先重启系统代理或 TUN。Linux 则要重点确认桌面代理设置、路由权限、systemd 服务状态和 DNS 管理组件。

移动端优先检查

后台权限、VPN 状态、切网恢复、UDP 可达性、按应用代理和 DNS 路径。

桌面端优先检查

系统代理、TUN 权限、防火墙、应用代理行为、睡眠恢复和路由表。

评估移动端电量时,建议使用系统电池统计观察一个完整使用周期,而不是盯住几分钟的瞬时百分比。保持相近的屏幕时间、数据量和应用任务,分别测试候选协议。若某协议在信号较差时导致设备持续发热、后台活动时间明显增加或唤醒后反复重连,应优先更换稳定节点或回退协议。电量表现本质上是协议、网络、客户端和系统调度共同作用的结果,选型目标应是减少无效工作,而不是追求某个抽象的最低开销标签。

06 · CORE FAMILY

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

客户端界面与内核是两层

Clash 生态中的“客户端”与“内核”需要分开理解。客户端负责窗口界面、订阅管理、系统代理、TUN 权限、日志展示和更新流程;内核负责读取配置、建立代理连接、执行规则、处理 DNS 与转发流量。同一个内核可以被不同界面封装,同一个客户端项目也可能在发展过程中更换内核。因此,判断协议是否支持时,应查看客户端实际使用的内核,而不是只看软件名称。

原版 Clash 奠定了 YAML 配置、代理组、规则匹配和控制接口等基本结构,许多订阅格式也以它的字段为基础。随着协议和网络功能扩展,Clash Meta 分支增加了更多协议、传输方式、DNS 能力和规则扩展。该分支后来以 mihomo 名称持续发展。日常语境中的 Meta 配置、Clash Meta 内核与 mihomo 往往指向同一条演进路线的不同阶段,但在排查时仍要以当前客户端显示的内核名称与文档为准。

功能差异如何影响协议选择

较早的原版 Clash 能识别 SS、VMess、Trojan 等常见类型,但不会自动获得后来新增的全部协议与字段。VLESS、Hysteria2、TUIC、REALITY 相关选项以及较新的 DNS 和规则能力,通常需要 mihomo。若把包含这些节点的订阅导入只支持旧内核的客户端,常见结果包括节点被跳过、配置校验失败、未知字段被忽略,或者整个配置无法加载。这类问题不是节点线路故障,而是解析阶段已经不兼容。

Clash Plus、Clash Verge Rev、FlClash、Clash Nyanpasu 等现代 GUI 客户端在支持平台、界面功能和内核集成上各有差异。本站下载页将 Clash Plus 作为全平台首推项;Linux 用户也可根据桌面环境选择 Clash Verge Rev 或 FlClash。选客户端时不仅要看能否安装,还应确认它是否使用满足订阅需求的内核、是否能更新内核、能否显示配置检查错误,以及是否支持系统所需的 TUN 模式。对于服务器或路由器,可直接使用 Mihomo 内核,但这要求使用者自行管理配置文件、服务启动和日志。

层次 主要职责 与协议兼容的关系
GUI 客户端 订阅、界面、系统代理、TUN、更新与日志入口 决定内核如何被打包、调用和更新
原版 Clash 内核 基础代理、策略组、规则与 DNS 处理 适合较早的常见协议与配置结构
Clash Meta / mihomo 扩展协议、传输、DNS、规则和平台能力 覆盖 VLESS、Hysteria2、TUIC 等现代配置
订阅或 YAML 描述节点、策略组、规则与 DNS 字段必须与当前内核语法匹配

配置兼容不是完全向下兼容

mihomo 通常能读取大量以 Clash 结构编写的配置,但不能据此假设所有扩展配置都能反向交给原版内核。包含新协议、新规则类型或扩展 DNS 字段的配置,回到旧内核时可能失败。即使两个内核都认识同一个字段,默认行为也可能存在差异,例如 DNS 处理顺序、规则提供器加载方式、健康检查行为或 TUN 网络栈选择。迁移客户端后,应重新检查配置校验结果、策略组成员、DNS 解析和规则命中,而不是只确认节点列表出现。

配置文件中的顶层结构也应保持清晰:proxies 存放节点,proxy-groups 定义选择与测试逻辑,rules 决定流量去向,dns 管理解析行为。订阅更新可能只替换其中一部分,也可能覆盖整份配置。客户端提供的覆写、合并或脚本功能用于在更新后稳定加入本地设置,但具体语法依客户端而异。不了解合并顺序时,先保留订阅原始配置并逐项添加,避免一次导入大量扩展字段后难以定位错误。

如何确认正在使用的内核

在客户端的设置、关于或内核页面查看名称;启动日志通常也会打印内核标识和配置加载结果。不要根据安装包名称猜测。若日志出现 unsupported proxy type,可先确认内核是否为 mihomo,再确认客户端是否启用了正确内核文件。若内核启动成功但配置加载失败,查看错误行号和字段名;若配置成功但连接失败,再转向认证、TLS、DNS 和网络排查。把“客户端启动”“配置解析”“节点连接”“规则转发”分成四个阶段,可以显著减少无效尝试。

07 · SUBSCRIPTION

订阅格式与配置兼容性检查

订阅地址不等于固定格式

“订阅链接”描述的是获取配置的方式,不代表返回内容一定采用同一种格式。服务端可能返回完整 Clash YAML、只包含节点的 YAML、经过编码的 URI 列表,或针对特定客户端生成的配置。客户端导入时要先获取内容,再根据响应格式解析。链接能在浏览器打开,只能说明服务器返回了数据,不能证明数据符合当前客户端和内核要求。

完整 Clash 或 mihomo 配置通常包含代理节点、策略组、规则、DNS 与端口设置;节点订阅可能只有 proxies 数据,策略组和规则由客户端模板补充。URI 列表则使用 ss://vmess://trojan://vless://hysteria2://tuic:// 等形式分别表达节点。不同 URI 对复杂传输参数的表达能力与实现一致性不同,转换过程中最容易丢失路径、SNI、ALPN、指纹、REALITY 和拥塞控制字段。

导入前后的四次核对

第一次核对响应状态。导入失败时先确认订阅地址没有多余空格,访问没有返回登录页、错误页或空内容。第二次核对节点数量与协议类型,确认预期的 Hysteria2、TUIC 或 VLESS 节点没有在解析阶段消失。第三次核对关键字段,选择一个节点展开查看服务器、端口、认证、TLS 和传输设置。第四次核对策略组,节点被成功解析后还要加入当前策略组,否则代理页面可能仍只显示旧节点。

订阅更新是一次重新获取和合并过程。若更新后本地修改消失,说明修改位于订阅管理范围内;应使用客户端提供的覆写或配置合并机制,而不是每次直接编辑生成文件。若更新后节点重复,可能是同时启用了多个内容相同的订阅,或旧配置没有被替换。若更新时间正常但节点内容未变化,可查看日志与响应缓存,并确认订阅服务确实返回了新内容。更完整的入口操作和错误分类可参考Clash订阅链接导入方法

FORMAT 01

完整 mihomo YAML

可携带节点、策略组、规则和 DNS;功能完整,但对内核语法和字段兼容要求最高。

FORMAT 02

Clash 节点 YAML

重点提供 proxies,通常要由客户端或模板补充策略组;应确认节点是否自动加入可选组。

FORMAT 03

协议 URI 列表

便于逐节点表达和分享,但复杂扩展字段可能因生成器与解析器差异而丢失。

字段丢失时如何定位

首先比较订阅原始内容与客户端导入后的节点详情。若原始内容已经缺字段,问题在订阅生成端;若原始内容完整而客户端缺失,问题可能在客户端解析器、订阅转换或内核支持。VMess 和 VLESS 重点查看 network、servername、ws-opts、grpc-opts、reality-opts 与 flow;Trojan 重点查看 password、sni 和 TLS;SS 重点查看 cipher、password 与 plugin;Hysteria2 和 TUIC 重点查看认证、SNI、拥塞控制与 UDP 相关选项。

其次查看配置检查错误。YAML 对缩进敏感,列表项、映射和字符串层级错误会导致整份配置无法读取。节点名称中包含冒号、井号或特殊字符时,使用引号可以减少歧义。布尔值、数字和字符串也不应混用,例如端口应保持数字语义,而 UUID、密码和路径通常作为字符串。手工编辑后,先让内核完成语法检查,再启动系统代理,避免把格式错误误判成网络问题。

mixed-port: 7890
mode: rule

proxy-groups:
  - name: "协议选择"
    type: select
    proxies:
      - "VLESS-Reference"
      - "Hysteria2-Reference"
      - DIRECT

rules:
  - DOMAIN-SUFFIX,example.com,协议选择
  - MATCH,协议选择

这段配置展示策略组与规则如何引用节点名称。引用名称必须与 proxies 中完全一致,包括大小写和空格;节点改名后,策略组中的旧名称会失效。真实配置通常还包含 DNS、规则提供器和更多策略组,但排查时可以先缩小到最小结构,确认一个节点能建立连接,再逐步恢复其他部分。大段复制未知配置会同时引入多个变量,不利于判断问题位置。

订阅转换的边界

转换工具可以把一种容器格式改写为另一种,但不能凭空补齐服务端参数,也不能把协议本身转换成另一种协议。它能做的是映射字段、生成策略组、筛选节点和调整名称。对新协议或扩展传输的支持取决于转换器自身实现;如果转换器不认识字段,即使源订阅正确,输出也可能不完整。涉及 VLESS REALITY、Hysteria2 或 TUIC 时,优先使用服务端直接提供的 mihomo 格式,并在更新后抽查关键字段。

遇到订阅为空、格式无法识别或更新失败时,可先查看常见问题中的安装配置分类。排查顺序应保持明确:地址可访问、响应内容正确、格式可识别、内核支持协议、关键字段完整、节点进入策略组、连接日志正常。按此顺序逐层确认,比频繁删除客户端和重新安装更容易找到根因。

08 · PRACTICAL CHOICE

按使用场景选择协议并完成排查

稳定家庭宽带与日常网页

在延迟和丢包较稳定的家庭宽带中,协议差异往往小于线路差异。SS、Trojan、VMess 或 VLESS 的 TCP 类组合都可以作为日常选择。优先选择订阅中配置完整、客户端日志干净、网页首开稳定的节点。若设备性能有限,结构较精简的 SS 值得先测试;若订阅提供维护良好的 Trojan 或 VLESS TLS 配置,也可直接使用。此场景没有必要仅为追求协议名称而切换到 UDP 类方案,除非持续传输或高丢包测试显示明确收益。

家庭网络中若所有协议都在固定时间段变慢,应检查宽带拥塞、Wi-Fi 信号、路由器负载和服务端出口。若只有某一个传输组合失败,则检查对应端口、TLS、SNI 和传输路径。使用规则模式时,还要确认测试流量确实经过所选策略组;规则命中 DIRECT 时,节点切换不会影响结果。日志页面可用于核对目标域名最终匹配了哪条规则和哪个策略。

移动数据、公共 Wi-Fi 与高抖动链路

移动数据或公共 Wi-Fi 的延迟、带宽与丢包变化较大。若 UDP 路径稳定,可以比较 Hysteria2、TUIC 与一个 TCP 回退节点。测试重点是网络切换后的恢复、持续使用中的停顿和设备发热,而不是单次峰值速度。Hysteria2 的带宽配置应接近真实能力,TUIC 的拥塞控制和 UDP 中继设置应采用订阅给出的组合。切换网络后若 UDP 类节点持续超时,立即改用 Trojan、SS 或其他 TCP 节点,比不断重试更有效。

公共 Wi-Fi 还可能要求先通过门户页面完成网络认证。连接 Clash 前,应先暂停系统代理并确认基础网络可访问;认证完成后再启用客户端。若基础网络自身没有连通,任何协议都会失败。部分网络允许 TCP 但限制 UDP,此时 Hysteria2 和 TUIC 同时不可用是可预期现象。策略组可以把稳定 TCP 节点设为 fallback 候选,但自动健康检查只说明探测地址可达,仍需用真实应用验证。

持续下载、视频与实时通信

持续下载关注长时间吞吐与波动。线路质量好时,多种协议都可能接近带宽上限;高丢包时,Hysteria2 或 TUIC 的拥塞控制可能表现更好,但服务端带宽仍是硬限制。视频播放还受内容分发、缓冲策略和规则分流影响,不能把一次卡顿直接归因于协议。应确认视频域名进入预期策略组,DNS 返回结果合理,并观察同一节点在不同时段的表现。

实时通信更看重抖动、尾延迟和 UDP 转发。客户端到服务端使用 QUIC,不代表目标应用的每个 UDP 包都一定按预期转发;需要确认节点支持 UDP、客户端启用相应能力、规则没有把相关流量分到错误出口。若语音可以连接但周期性中断,检查网络切换、UDP 会话超时与 Wi-Fi 信号;若完全无法建立,则检查应用是否经过 VPN、DNS 是否正常以及服务端是否支持对应转发。

低性能设备、路由器与服务器

资源有限的路由器应优先控制规则集规模、连接数量和日志等级,再比较协议。SS 的精简实现常适合作为基础选项;TLS 或 QUIC 协议能否达到预期吞吐,要看设备是否具备足够 CPU 和加密能力。mihomo 内核适合需要现代协议、规则和 DNS 功能的环境,但启用大量规则提供器、复杂 DNS 与高并发会增加内存。本站Linux 与内核下载区提供面向服务器和路由器用户的 Mihomo 文件入口,普通桌面用户更适合使用带界面的客户端。

服务器环境应把内核作为系统服务管理,配置启动失败时查看服务日志和退出状态。升级内核前保存当前配置,并先执行配置检查。若新协议节点无法加载,确认使用的二进制架构与配置语法;若服务能启动但局域网设备无法使用,再检查监听地址、防火墙、路由和局域网访问设置。协议选型只是其中一层,系统网络配置错误不会因更换节点类型而消失。

使用场景 优先测试 保留回退 重点观察
稳定宽带与网页 SS、Trojan、VMess 或 VLESS TCP 组合 任一已验证的同类节点 首开、TLS 错误、规则命中
高抖动移动网络 Hysteria2 或 TUIC SS、Trojan 或 VLESS TCP 切网恢复、UDP 超时、电量
持续传输 线路稳定的候选协议逐一实测 不同线路或不同传输类型 长时间吞吐、丢包、CPU
低性能设备 精简 SS 或已验证的轻量配置 减少规则与并发后的现代协议 单核占用、内存、设备温度

一套可执行的最终决策顺序

第一步,选择支持订阅协议的现代客户端。需要跨平台一致体验时,优先从 Clash Plus 开始,再根据系统和界面需求比较 Clash Verge Rev、FlClash 等选项。第二步,确认内核为 mihomo,并让配置通过语法检查。第三步,从订阅中各选一个 TCP 类节点和一个 UDP 类节点,核对认证、TLS、传输与策略组字段。第四步,在常用网络中执行网页、持续传输、实时应用和待机恢复测试。第五步,根据日志将失败归入解析、认证、TLS、DNS、UDP、规则或系统代理,而不是只写下“这个协议不行”。

第六步,为主要场景保留一个首选项和一个回退项。家庭宽带可以选择稳定的 Trojan、VLESS 或 SS,并保留另一条线路;移动网络可以在 UDP 可用时使用 Hysteria2 或 TUIC,同时保留 TCP 节点;资源有限设备则优先选择处理负担可控、配置简单的方案。第七步,订阅更新或客户端升级后抽查节点字段和策略组,不默认认为旧结果永久有效。网络、服务端和内核都会变化,选型应当是一套可重复验证的方法。

若所有节点都无法连接,先返回基础链路:确认设备能够正常联网、系统时间正确、订阅可更新、配置已启用、代理模式与系统代理状态一致,再查看第一条明确错误日志。若只有特定应用异常,检查应用是否遵循系统代理、是否需要 TUN、是否使用独立 DNS 或 UDP。若只有某一类协议异常,再检查对应内核支持和字段。进一步的错误分支可在FAQ 故障排查中查阅,策略组自动选择逻辑可参考url-test、fallback 与 load-balance 对比