Shadowrocket 支持哪些协议:Shadowsocks、VMess、VLESS、Trojan、WireGuard、Hysteria2 一览

用一分钟讲清 Shadowrocket 支持的协议:Shadowsocks、VMess、VLESS、Trojan、HTTP/SOCKS5、WireGuard、Hysteria2 的传输特点,以及在 Add Server 里分别填哪些字段。

本文速览

Shadowrocket(小火箭)支持多种代理与隧道协议,但客户端不能把一台服务器任意切换成另一种协议。本文适合已经有自己的服务商与配置、准备手动添加或核对导入结果的用户:先辨认协议和传输层,再逐项核对地址、端口、认证与 TLS 参数,最后用 Connectivity Test 和实际网页请求验证。

一、支持哪些协议:先分清协议、传输与分流

Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2 都属于本文核对范围。它们解决的不是完全相同的问题:有的是代理协议,有的是加密隧道;同一种代理协议还可能采用不同传输方式。添加时应依据用户已有配置选择 Type,而不是按名称、端口或预期速度猜选。

协议类型与 Global Routing 是两层设置。前者决定客户端怎样连接服务器,后者决定哪些请求采用代理、哪些请求直接连接。协议正确但路由走 Direct,目标请求仍不会经过所选服务器;规则写得正确,但服务器认证失败,也不能建立代理连接。

2 类
本文涉及的底层传输:TCP 与 UDP
4 项
Global Routing:Proxy / Direct / Config / Scene
协议传输与安全边界添加前应拿到的参数
Shadowsocks使用配置指定的加密方法;TCP 与 UDP 能力需两端配合。服务器地址、端口、Password、Method,以及已有配置要求的附加参数。
VMess认证参数与承载传输分别配置;可涉及 WebSocket、TLS 等选项。地址、端口、UUID、加密选项及传输参数。
VLESS协议本身不提供数据加密,安全性取决于配置使用的安全层。地址、端口、UUID,以及服务器要求的 TLS、传输和 Flow 等参数。
Trojan通常在 TLS 连接内传输代理数据;认证使用密码。地址、端口、Password、TLS 服务器名及相关传输设置。
HTTP / SOCKS5基础代理协议;名称本身不代表连接已加密。地址、端口,及服务器要求的用户名、密码和安全连接选项。
WireGuard基于 UDP 的加密 IP 隧道,采用密钥而非普通用户名认证。本端私钥、隧道地址、对端公钥、Endpoint,以及路由参数。
Hysteria2基于 QUIC,底层使用 UDP,并涉及 TLS 验证。地址、端口、认证信息、SNI,以及配置要求的混淆参数。

结论:先核对完整参数,再测试连通性

拿到“地址和端口”并不意味着已经具备完整配置。先向已有配置来源核对 Type、认证方式和传输层;缺少 UUID、密钥或 TLS 服务器名时,不要用其他字段替代。

二、Shadowsocks、VMess、VLESS 与 Trojan 的字段区别

这四种类型经常出现在导入结果中,但认证字段不能互换。Shadowsocks 的 Password 不等于 VMess 或 VLESS 的 UUID;Trojan 的 Password 也不能填成服务器域名。编辑已有条目时,应保留原配置,再逐项修改,避免一次更改多个变量后无法确定失败原因。

界面中某些附加字段会随 Type、传输选项和平台界面变化。只填写已有配置明确提供的项目;字段未显示时,先检查前置选项,而不是把内容粘贴到备注或密码中。证书验证失败应检查设备时间、服务器名和证书链,不应把关闭验证当作常规处理。

三、HTTP、SOCKS5、WireGuard 与 Hysteria2 怎么判断

HTTP 与 SOCKS5 适合按已有代理端点的能力使用。HTTP 代理可以通过 CONNECT 建立隧道,但不能据此认定客户端到代理服务器这一段已经加密。SOCKS5 支持的 UDP 机制需要客户端与服务器共同支持,不能仅凭 Type 为 SOCKS5 就认定所有 UDP 请求可用。

WireGuard 与 Hysteria2 都依赖底层 UDP 可达,但用途与认证方式不同。WireGuard 是 IP 隧道;Hysteria2 则在 QUIC 上实现代理传输。网络允许 TCP 并不保证允许 UDP,因此“其他协议能连接”不能排除这两种类型遇到网络限制。

核对对象具体检查容易混淆的地方
HTTP / SOCKS5确认服务器是否要求 Username 与 Password;确认连接代理端点时是否另有 TLS 要求。网站使用 HTTPS,不等于代理端点本身使用 TLS;用户名和密码不要颠倒。
WireGuard 密钥Private Key 属于本端,Peer Public Key 属于对端;若提供 Preshared Key,也需一致。不能把本端公钥填作本端私钥,也不能用普通密码替代密钥。
WireGuard 地址与路由核对隧道 Address、Endpoint 和 Allowed IPs。0.0.0.0/0 表示全部 IPv4 地址范围。Address 是隧道内地址,不是服务器公网地址;Allowed IPs 不是网站域名列表。
Hysteria2核对认证信息、UDP 端口、SNI、证书验证,以及原配置是否要求混淆。Hysteria 与 Hysteria2 不能仅靠改 Type 互换;混淆密码也不一定等于认证密码。

WireGuard 的 Allowed IPs 属于隧道层参数,不等同于 Shadowrocket 在 Config 中使用的域名分流规则。Hysteria2 的实际表现则同时受 UDP 可达性、丢包、服务器负载和配置影响。不要仅凭协议名称推断速度,也不要在未测量的情况下填写过高的带宽参数。

四、在 Add Server 中添加并验证:按四步操作

下面以 Home、Config、Settings 这组界面为参照。手动添加前准备好完整参数;若已有订阅或完整配置,优先保留其原始导入结果,再通过编辑界面核对。本文只说明用户已有配置的使用,不提供或推荐连接资源。

  1. 选择类型

    进入 Home → 右上角“+”,打开 Add Server,在 Type 中选择与原配置一致的协议。不要仅因为两个条目都使用 443 端口,就选择同一种 Type。

  2. 填写认证

    填写服务器地址与端口,再按类型填写 Password、UUID 或密钥。端口填写原配置指定的数字,不附加协议前缀;复制认证信息后检查首尾空格与换行。

  3. 核对传输

    按原配置设置 TLS、SNI、WebSocket 的 Host 与 Path 等项目;WireGuard 则核对隧道与对端参数。保存后回到 Home,将该服务器选为默认,确认选中标记确实落在目标条目上。

  4. 验证连接

    在 Home → Global Routing 临时选择 Proxy,打开连接开关,并运行 Connectivity Test。随后访问自己已知可用的 HTTPS 页面;验证结束后恢复原先使用的 Config 或 Scene,并再次检查实际请求。

Connectivity Test 的结果用于判断测试目标的连接情况,不是所有应用、所有协议流量均正常的证明。若测试通过而某个应用失败,应继续区分该应用使用 TCP 还是 UDP、请求是否命中预期策略,以及 DNS 是否得到可用结果。

五、订阅、配置与协议条目分别负责什么

订阅主要用于导入和更新已有服务器信息;Config 中的配置文件主要承载分流与相关设置。更新订阅后,条目的地址、认证或传输参数可能发生变化,因此不要把订阅管理的条目当作永远不变的手工副本。需要试改时先保存原始信息,避免下次更新覆盖后失去对照。

下面是用于理解顺序的规则片段,不是完整配置,也不包含服务器信息。PROXY 需要对应配置中可用的代理策略;IP-CIDR 使用的是文档示例网段,不应直接作为实际业务分流依据。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
GEOIP,CN,DIRECT
FINAL,PROXY

规则通常按从上到下的顺序匹配。若目标域名较早命中 DIRECT,后面的 FINAL 不会再把这次请求交给代理。反过来,在临时 Proxy 测试能够访问、恢复 Config 后失败的情况下,应先看规则命中与所选策略,而不是立即重新填写服务器认证。

六、常见问题:按失败位置缩小范围

地址、密码都一样,为什么换 Type 就失败?

Type 决定握手与认证格式。同一地址、同一端口并不代表服务器同时提供多种协议。回到 Home → 编辑服务器,恢复原配置的 Type,再核对 Password 或 UUID;不要把改 Type 当作速度优化。

VMess 或 VLESS 超时,应该先改哪里?

先在 Home 核对 Address、Port 与 UUID,再核对传输方式。如果使用 WebSocket,检查 Host 与 Path;如果使用 TLS,检查 SNI 和设备时间。每次只改一组参数,并重新运行 Connectivity Test,区分连接超时与明确的认证、证书错误。

Hysteria2 在 Wi-Fi 失败,换移动网络却正常?

先保持服务器与参数不变,只切换网络重复测试。若差异稳定存在,检查失败网络是否限制该 UDP 端口,并查看连接日志中的超时位置。不要先改密码;使用已有的其他可用条目做对照,也不能直接证明 UDP 链路正常。

测试通过了,为什么网页还是打不开?

先确认 Home 选中的是刚测试的服务器,再查看 Global Routing 是否处于 Direct。临时使用 Proxy 复测:若恢复访问,继续检查 Config 的规则和策略;若仍失败,再核对 DNS、TLS 报错以及目标网站是否可达。不要把一次测试通过等同于全部请求成功。

排查记录至少保留协议类型、网络类型、失败现象与具体错误信息。分享记录前移除订阅地址、密码、UUID 和私钥;需要说明字段关系时只写字段名。这样既能明确问题发生在传输、认证还是分流阶段,也能避免反复重建同一条配置。

免费下载 Shadowrocket