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 配置能力有限。选择协议时必须把这四层连起来看,不能把网络问题、线路问题和内核问题全部归因到协议名称。
确认兼容
核对内核、订阅字段、传输层和认证参数是否完整。
观察网络
判断当前链路更接近稳定 TCP 环境,还是高丢包移动网络。
测试真实任务
分别检查网页首开、持续下载、语音视频和待机恢复。
保留回退项
为 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订阅链接导入方法。
完整 mihomo YAML
可携带节点、策略组、规则和 DNS;功能完整,但对内核语法和字段兼容要求最高。
Clash 节点 YAML
重点提供 proxies,通常要由客户端或模板补充策略组;应确认节点是否自动加入可选组。
协议 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 对比。