2026 年选协议,别先问哪个名字更新,先确认你的客户端能不能原生导入、服务端项目是否还在维护、出错时有没有日志可查。协议本身只解决连接与认证的一部分问题;订阅格式、TLS 证书、DNS、UDP 策略和客户端内核版本,都会决定最后能不能用。
这篇只处理可验证的信息:官方文档里的字段、客户端支持范围、配置复杂度和诊断路径。没有公开样本、测试地区和复现方法的排名、预测和固定组合,不适合写进决策依据。
##用这张表排除不该选的协议
| 你的现状 | 排除什么 | 更该看什么 |
|---|---|---|
| 只会导入订阅链接,不会手写配置 | 需要手动填大量字段的协议 | 客户端能否识别订阅格式、节点字段是否完整 |
| 主客户端是 Mihomo / Clash 系 | 客户端文档没有列出的协议字段 | Mihomo proxies 文档、订阅转换是否改写字段 |
| 主客户端是 sing-box | 旧客户端不支持的新字段 | sing-box 当前版本的 outbound 文档 |
| 主客户端是 Xray / v2rayN / v2rayNG | 只在 Clash 系生态常见的格式 | Xray / V2Ray 对 VMess、VLESS、Trojan 的配置支持 |
| iOS 端为主 | 桌面端才有完整实现的协议 | App 的导入格式、TestFlight / App Store 版本说明 |
| 公司网、校园网、酒店 Wi-Fi | 强依赖 UDP 的方案 | 先测 UDP 是否可达,再决定 Hysteria 2 / TUIC |
| 软路由或全屋配置 | 只适合单设备 App 的格式 | OpenWrt 插件、内核版本、DNS 与 TUN 配置 |
如果你的客户端文档没有写某个协议,订阅里出现这个协议也不等于能用。很多「导入成功但节点不可选」「列表有节点但连不上」的问题,本质是客户端识别了名称,却没有完整实现所有字段。
Shadowsocks 适合什么场景?
Shadowsocks 的优势是格式简单、客户端覆盖广、排错入口清楚。官方 SIP002 文档定义了 ss:// URI 的基本结构;SIP008 定义了在线配置交付格式,适合服务端列表下发。
| 检查项 | 判断方式 |
|---|---|
| 单节点分享 | 看链接是否符合 SIP002 的 ss:// 结构 |
| 订阅下发 | 看服务端返回是否符合 SIP008 JSON,或是否被转换为客户端自己的 YAML / JSON |
| 加密方法 | 确认客户端文档列出对应 method,不要只看服务端面板名称 |
| 插件字段 | 如果用 plugin / obfs,比对客户端是否支持同名字段 |
| 诊断方式 | 用客户端日志确认是解析失败、认证失败,还是远端不可达 |
Shadowsocks 不适合被写成「所有场景的默认答案」。它适合你需要广泛客户端兼容、配置尽量少、问题能快速定位的场景。若订阅服务把多个协议混在同一个链接里,确认客户端最终拿到的是 SIP002、SIP008,还是 Mihomo / sing-box 专用格式。
VMess、VLESS、Trojan 怎么按生态选择?
VMess、VLESS、Trojan 最容易混淆,因为它们常被放在同一个客户端里。更稳妥的判断不是看名字,而是看生态和字段。
| 协议 | 主要生态 | 关键字段 | 适合先检查的文档 |
|---|---|---|---|
| VMess | V2Ray / v2rayN / v2rayNG | id、alterId、security、network、TLS | V2Ray VMess 配置文档 |
| VLESS | Xray / sing-box / Mihomo | uuid、flow、TLS、transport、serverName | Xray VLESS、sing-box、Mihomo 文档 |
| Trojan | Xray / sing-box / Mihomo / 多数移动端 | password、TLS、SNI、ALPN | 客户端代理字段文档 |
VMess 的兼容性来自 V2Ray 生态,老配置里仍然常见。新部署时要注意客户端是否仍推荐该格式,以及 alterId、加密方式和传输层字段是否与文档一致。
VLESS 的配置弹性更大,也更容易因为字段不一致而失败。Xray 文档会涉及 flow、TLS、Reality 等细节;sing-box 和 Mihomo 的字段名称不一定完全相同,迁移时不要逐行照抄。
Trojan 的认知成本相对低,因为它围绕密码认证和 TLS 配置展开。排查时重点看证书、SNI、ALPN、端口和客户端时间是否正常。
Hysteria 2、TUIC、AnyTLS,看哪三个条件?
这类协议经常被描述成「新」或「快」,但用户真正会踩坑的是 UDP、版本和订阅字段。
| 协议 | 确认 | 不适合的情况 | 诊断入口 |
|---|---|---|---|
| Hysteria 2 | 本地网络允许 UDP,客户端支持 Hysteria 2 字段 | 公司网、校园网或路由器禁 UDP | 服务端日志、客户端 handshake / auth 错误 |
| TUIC | 客户端支持 TUIC 版本与拥塞控制字段 | 只会导入通用 Clash 订阅、无法改参数 | 客户端日志、UDP 连通测试 |
| AnyTLS | 服务端与目标客户端当前文档均列出 AnyTLS 支持 | 目标 App 未实现该协议,订阅转换丢字段 | sing-box / Mihomo 文档、导入后的节点字段 |
Hysteria 2 和 TUIC 都不该在没有 UDP 测试的情况下直接作为主方案。一个简单判断是:同一网络下,如果 QUIC 网站、游戏 UDP 或你自己控制两端的 UDP 连通测试表现异常,先别把问题归因到协议本身。
AnyTLS 的决策重点是实现状态。它出现在 sing-box 等项目的当前文档里,但不是所有代理客户端都能识别。迁移前先看目标客户端的当前文档,而不是只看服务端面板是否能生成节点。
WireGuard 为什么单独看?
WireGuard 是 VPN 隧道协议,不是 Clash / sing-box 订阅生态里的普通节点格式。它的配置通常围绕私钥、公钥、AllowedIPs、Endpoint、PersistentKeepalive 展开,适合设备级或路由级隧道。
| 适合 WireGuard 的情况 | 不适合 WireGuard 的情况 |
|---|---|
| 路由器、服务器、手机系统级隧道 | 需要按域名规则精细分流 |
| 少量固定设备互联 | 大量订阅节点频繁切换 |
| 你能管理密钥和路由表 | 只想在客户端里点选节点 |
| 内网访问、远程办公、站点互联 | 依赖 Clash 规则集、策略组、自动测速 |
如果你的核心需求是规则分流、订阅自动更新和策略组切换,Mihomo / sing-box 的代理协议更贴近使用方式。如果你的核心需求是设备间组网和固定隧道,WireGuard 更容易维护。
客户端兼容性怎么查?
协议支持必须按「客户端 + 内核版本 + 配置格式」一起看。只说某客户端支持某协议,信息还不够。
| 客户端 / 内核 | 优先比对 | 常见误判 |
|---|---|---|
| sing-box | outbound 文档、版本变更、字段废弃说明 | 服务端生成了字段,但本机版本太旧 |
| Mihomo | proxies 文档、Clash Meta 字段兼容性 | Clash 旧字段和 Mihomo 新字段混用 |
| Xray-core | VLESS、VMess、Trojan、Reality 相关字段 | 从别的内核复制配置导致字段名不匹配 |
| V2Ray | VMess、VLESS、传输层配置 | 使用了 Xray 专属字段却用 V2Ray 运行 |
| iOS 客户端 | App 当前版本、导入格式、是否依赖外部转换 | 桌面端可用的订阅在 iOS 端缺字段 |
| OpenWrt 插件 | 插件内置内核版本、订阅解析器 | Web UI 显示节点,但底层内核不支持 |
排查订阅时,把「订阅原文」和「客户端导入后的配置」分开看。前者说明服务端下发了什么,后者说明客户端实际识别了什么。两者不一致时,问题多半出在订阅转换、字段名或客户端版本。
安全属性要看哪些字段?
协议选择里的「安全」不应该写成口号。更可查的方式是看认证、加密、TLS、证书和密钥管理。
| 安全属性 | 该怎么检查 |
|---|---|
| 认证方式 | 密码、UUID、公私钥是否足够随机,是否被多人共用 |
| 传输加密 | 客户端文档是否列出加密方法,是否存在已废弃字段 |
| TLS / SNI | 证书是否有效,serverName 是否匹配,ALPN 是否符合服务端配置 |
| 密钥轮换 | 面板或服务端是否支持更换密码、UUID、证书和私钥 |
| 配置泄露影响 | 订阅链接泄露后是否能单独吊销,是否能追踪到具体用户 |
| 日志暴露 | 服务端日志是否记录敏感路径、完整订阅链接或用户标识 |
不要把协议名等同于安全结论。同一个协议,用弱密码、错误证书、过期客户端或公开订阅链接,都会把风险转移到配置管理上。
配置复杂度怎么估算?
配置越复杂,越需要日志和回滚方案。下面这张表不是性能排名,而是排错成本估算。
| 协议 | 配置复杂度 | 易错点 | 适合谁 |
|---|---|---|---|
| Shadowsocks | 低 | method、password、插件字段、订阅格式 | 需要广泛兼容和低维护成本的用户 |
| Trojan | 中 | 证书、SNI、ALPN、端口 | 能管理域名和证书的用户 |
| VMess | 中 | id、alterId、security、传输层 | 仍在 V2Ray 生态内的用户 |
| VLESS | 中到高 | flow、TLS、Reality、传输层字段 | 熟悉 Xray / sing-box 字段的用户 |
| Hysteria 2 | 中到高 | UDP、认证、证书、带宽参数 | 能控制本地网络和服务端日志的用户 |
| TUIC | 高 | UDP、版本字段、拥塞控制、证书 | 愿意逐项调参数的用户 |
| AnyTLS | 中到高 | 客户端实现状态、订阅字段、TLS 配置 | 目标客户端当前文档明确支持 AnyTLS 的用户 |
| WireGuard | 中 | 密钥、路由、AllowedIPs、NAT | 设备级隧道和固定组网用户 |
如果你要给家人、同事或多设备使用,低复杂度往往比纸面性能更重要。能被多数客户端导入、能在日志里看出错误原因、能快速换密码,才是可维护配置。
出错时按这个顺序诊断
| 表现 | 看哪里 | 可能原因 |
|---|---|---|
| 订阅导入失败 | 订阅原文、HTTP 状态码、客户端错误提示 | 链接过期、返回登录页、格式不是客户端支持类型 |
| 节点出现但无法连接 | 客户端日志、服务端日志、端口连通性 | 认证失败、TLS/SNI 不匹配、防火墙未放行 |
| TCP 协议能用,UDP 协议不能用 | 本地网络、路由器、防火墙、运营商 NAT | UDP 被阻断、端口未放行、QUIC 握手失败 |
| 桌面端可用,手机端不可用 | App 版本、导入格式、订阅转换结果 | 移动端不支持字段、转换器丢字段 |
| OpenWrt 上不可用 | 插件内核版本、DNS、TUN、防火墙规则 | Web UI 与内核版本不一致、DNS 劫持或路由冲突 |
| 偶发断开 | 服务端负载、证书续期、系统时间、MTU | 服务器资源不足、时间漂移、路径 MTU 问题 |
诊断时一次只改一个变量。先固定客户端版本和服务端配置,再换网络;如果仍失败,再换协议。一次同时换客户端、订阅、DNS 和服务器,会让日志失去判断价值。
一套更稳妥的选择顺序
- 写下你必须使用的客户端:例如 Mihomo、sing-box、Xray-core、v2rayN、Shadowrocket 或 OpenWrt 插件。
- 打开对应官方文档,确认目标协议是否在当前版本支持列表里。
- 检查订阅格式:SIP002、SIP008、Mihomo YAML、sing-box JSON、V2Ray 分享链接不能混为一谈。
- 先选一个 TCP 友好的主协议:Shadowsocks、Trojan、VMess、VLESS 或 AnyTLS,取决于客户端支持和你能否管理 TLS。
- 本地网络确认 UDP 可用后,再把 Hysteria 2 或 TUIC 作为补充方案。
- 路由级或固定组网需求单独评估 WireGuard,不要把它当成普通节点订阅替代品。
- 保留一份最小可用配置:一个服务端、一个客户端、一个协议,用来排除订阅转换和策略组问题。
这个顺序的好处是可复查。每一步都有文档、配置文件或日志作为证据,不依赖无法验证的排行榜。
相关阅读
- VLESS VMess Trojan 协议对比 — 在这三种 TLS 系协议之间做选择时先看这篇
- Sing-Box 与 Xray-core 内核对比 — 选内核之前先过一遍差异
- WireGuard 与 Shadowsocks 协议详细对比 — 传统 VPN 和代理协议之间的取舍参考