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 最容易混淆,因为它们常被放在同一个客户端里。更稳妥的判断不是看名字,而是看生态和字段。

协议主要生态关键字段适合先检查的文档
VMessV2Ray / v2rayN / v2rayNGid、alterId、security、network、TLSV2Ray VMess 配置文档
VLESSXray / sing-box / Mihomouuid、flow、TLS、transport、serverNameXray VLESS、sing-box、Mihomo 文档
TrojanXray / 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-boxoutbound 文档、版本变更、字段废弃说明服务端生成了字段,但本机版本太旧
Mihomoproxies 文档、Clash Meta 字段兼容性Clash 旧字段和 Mihomo 新字段混用
Xray-coreVLESS、VMess、Trojan、Reality 相关字段从别的内核复制配置导致字段名不匹配
V2RayVMess、VLESS、传输层配置使用了 Xray 专属字段却用 V2Ray 运行
iOS 客户端App 当前版本、导入格式、是否依赖外部转换桌面端可用的订阅在 iOS 端缺字段
OpenWrt 插件插件内置内核版本、订阅解析器Web UI 显示节点,但底层内核不支持

排查订阅时,把「订阅原文」和「客户端导入后的配置」分开看。前者说明服务端下发了什么,后者说明客户端实际识别了什么。两者不一致时,问题多半出在订阅转换、字段名或客户端版本。

安全属性要看哪些字段?

协议选择里的「安全」不应该写成口号。更可查的方式是看认证、加密、TLS、证书和密钥管理。

安全属性该怎么检查
认证方式密码、UUID、公私钥是否足够随机,是否被多人共用
传输加密客户端文档是否列出加密方法,是否存在已废弃字段
TLS / SNI证书是否有效,serverName 是否匹配,ALPN 是否符合服务端配置
密钥轮换面板或服务端是否支持更换密码、UUID、证书和私钥
配置泄露影响订阅链接泄露后是否能单独吊销,是否能追踪到具体用户
日志暴露服务端日志是否记录敏感路径、完整订阅链接或用户标识

不要把协议名等同于安全结论。同一个协议,用弱密码、错误证书、过期客户端或公开订阅链接,都会把风险转移到配置管理上。

配置复杂度怎么估算?

配置越复杂,越需要日志和回滚方案。下面这张表不是性能排名,而是排错成本估算。

协议配置复杂度易错点适合谁
Shadowsocksmethod、password、插件字段、订阅格式需要广泛兼容和低维护成本的用户
Trojan证书、SNI、ALPN、端口能管理域名和证书的用户
VMessid、alterId、security、传输层仍在 V2Ray 生态内的用户
VLESS中到高flow、TLS、Reality、传输层字段熟悉 Xray / sing-box 字段的用户
Hysteria 2中到高UDP、认证、证书、带宽参数能控制本地网络和服务端日志的用户
TUICUDP、版本字段、拥塞控制、证书愿意逐项调参数的用户
AnyTLS中到高客户端实现状态、订阅字段、TLS 配置目标客户端当前文档明确支持 AnyTLS 的用户
WireGuard密钥、路由、AllowedIPs、NAT设备级隧道和固定组网用户

如果你要给家人、同事或多设备使用,低复杂度往往比纸面性能更重要。能被多数客户端导入、能在日志里看出错误原因、能快速换密码,才是可维护配置。

出错时按这个顺序诊断

表现看哪里可能原因
订阅导入失败订阅原文、HTTP 状态码、客户端错误提示链接过期、返回登录页、格式不是客户端支持类型
节点出现但无法连接客户端日志、服务端日志、端口连通性认证失败、TLS/SNI 不匹配、防火墙未放行
TCP 协议能用,UDP 协议不能用本地网络、路由器、防火墙、运营商 NATUDP 被阻断、端口未放行、QUIC 握手失败
桌面端可用,手机端不可用App 版本、导入格式、订阅转换结果移动端不支持字段、转换器丢字段
OpenWrt 上不可用插件内核版本、DNS、TUN、防火墙规则Web UI 与内核版本不一致、DNS 劫持或路由冲突
偶发断开服务端负载、证书续期、系统时间、MTU服务器资源不足、时间漂移、路径 MTU 问题

诊断时一次只改一个变量。先固定客户端版本和服务端配置,再换网络;如果仍失败,再换协议。一次同时换客户端、订阅、DNS 和服务器,会让日志失去判断价值。

一套更稳妥的选择顺序

  1. 写下你必须使用的客户端:例如 Mihomo、sing-box、Xray-core、v2rayN、Shadowrocket 或 OpenWrt 插件。
  2. 打开对应官方文档,确认目标协议是否在当前版本支持列表里。
  3. 检查订阅格式:SIP002、SIP008、Mihomo YAML、sing-box JSON、V2Ray 分享链接不能混为一谈。
  4. 先选一个 TCP 友好的主协议:Shadowsocks、Trojan、VMess、VLESS 或 AnyTLS,取决于客户端支持和你能否管理 TLS。
  5. 本地网络确认 UDP 可用后,再把 Hysteria 2 或 TUIC 作为补充方案。
  6. 路由级或固定组网需求单独评估 WireGuard,不要把它当成普通节点订阅替代品。
  7. 保留一份最小可用配置:一个服务端、一个客户端、一个协议,用来排除订阅转换和策略组问题。

这个顺序的好处是可复查。每一步都有文档、配置文件或日志作为证据,不依赖无法验证的排行榜。

相关阅读