Shadowrocket(小火箭)支持多种代理与隧道协议。本文面向已有自己的服务商、服务器参数或订阅的用户,先对照各协议的认证方式与传输条件,再按 Home → + → Add Server 核对字段,最后区分连接失败、TLS 错误与规则未命中。协议必须与服务器端配置一致,不能只改 Type 就把现有服务器转换成另一种协议。
支持的协议与字段速查
手动添加时,先在 Add Server 的 Type 中选择协议,再填写该类型显示的字段。不同类型的认证资料不能互换:Shadowsocks 的 Password 不是 VMess 的 UUID,WireGuard 的密钥也不能填入 Trojan 的 Password。以下是常见配置要点,不是完整协议清单;可用扩展与字段名称以实际界面为准。
| 协议 | 传输与认证特点 | 添加时重点核对 |
|---|---|---|
| Shadowsocks | 通过选定的加密方法与密码认证;可承载 TCP,UDP 需要两端支持。 | Address、Port、Method、Password;使用插件时还需对应参数。 |
| VMess | 以 UUID 标识用户,传输方式与 TLS 由配置决定。 | Address、Port、UUID、加密选项、传输方式及 TLS 参数。 |
| VLESS | 以 UUID 认证,协议本身不提供与 Shadowsocks 相同的载荷加密层。 | UUID、传输方式,以及服务器要求的 TLS 或其他安全层参数。 |
| Trojan | 常见部署通过 TLS 连接服务器,以密码认证。 | Password、TLS 服务器名称与证书验证条件。 |
| HTTP / SOCKS5 | 通用代理协议;是否认证、是否加密取决于配置。 | Address、Port、认证资料;HTTP 还需区分是否使用 TLS。 |
| WireGuard | 基于 UDP 的加密隧道,使用公私钥配对。 | 本地 Private Key、隧道地址、对端 Public Key、Endpoint 与路由范围。 |
| Hysteria2 | 基于 QUIC,底层依赖 UDP,使用 TLS 与配置的认证资料。 | Address、Port、认证密码、TLS 服务器名称;另核对带宽与混淆参数。 |
这些字段没有一套通用默认值。Address 与 Port 必须对应已有服务器的监听地址;TLS 是否启用、传输是否使用 WebSocket,也必须照原始配置填写。本文出现的端口示例仅用于说明字段含义,不能替代服务器参数。
Shadowsocks、VMess 与 VLESS 的区别
Shadowsocks 的 Method 与 Password 是一组配套信息。密码相同但 Method 不同,仍会导致认证或解密失败。服务器是否支持 UDP、是否要求插件,是独立条件;不能因为网页能打开,就认定实时语音或其他 UDP 流量也能通过。
- Shadowsocks:逐字核对 Method,复制 Password 时避免尾部空格。若原始配置带有插件信息,不能只保留地址与密码。
- VMess:核对 UUID、加密选项与传输参数。认证与时间有关,设备时间明显偏离时,应先在系统设置中检查自动设置时间。
- VLESS:核对 UUID 与安全层,不要从名称推断为“无需加密设置”。服务器要求的 TLS、传输方式及扩展参数仍须完整匹配。
以 WebSocket 为例,服务器地址、HTTP Host、Path 与 TLS 使用的服务器名称承担不同职责。Address 用于找到连接入口,Host 与 Path 用于应用层转发,TLS 服务器名称用于握手与证书身份核对。它们有时相同,但不能据此全部改成同一个值。
Trojan、HTTP 与 SOCKS5 的安全边界
Trojan 常见配置以 TLS 保护客户端到服务器的连接。Password 正确并不代表 TLS 一定能成功:证书过期、证书名称与配置不符、设备时间异常,都可能在密码认证之前中断连接。应核对原始参数与证书条件,而不是把关闭证书验证作为常规修复。
结论:端口不决定协议
拿到 443 端口时,仍先确认 Type、认证方式与 TLS 参数;不要把所有使用 443 的条目都按 Trojan 填写。
HTTP 代理可通过 CONNECT 为 HTTPS 目标建立隧道,但这不等于客户端到代理服务器这一段必然使用 TLS。SOCKS5 本身也不提供传输加密,其用户名与密码认证不能替代加密层。访问 HTTPS 目标时,目标连接的 TLS 与代理入口的安全性是两个层次,应分别理解。
- HTTP:确认入口是普通 HTTP 代理还是使用 TLS 的代理,并按要求填写认证资料。
- SOCKS5:确认服务器是否允许 UDP 转发,以及认证是否必需;TCP 测试成功不能证明 UDP 可用。
- Trojan:保留正确的 TLS 服务器名称;若 Address 是 IP,也不能擅自把服务器名称改成该 IP。
Hysteria2 与 WireGuard 的 UDP 条件
Hysteria2 与 WireGuard 都依赖底层 UDP,但二者不是同一种隧道。Hysteria2 基于 QUIC,WireGuard 使用自己的加密隧道机制。当前网络若阻断对应 UDP 端口,两者都可能无法建立有效连接;仅检查 TCP 端口是否开放,不能验证这些服务。
| 设置维度 | Hysteria2 | WireGuard |
|---|---|---|
| 身份资料 | 服务器配置的认证资料,常见为密码。 | 本地私钥与对端公钥;配置要求时还需预共享密钥。 |
| 安全层 | 核对 TLS 名称、证书与可选混淆设置。 | 核对密钥配对、隧道地址与对端配置。 |
| 网络条件 | 入口 UDP 端口必须可达。 | Endpoint 对应的 UDP 端口必须可达。 |
| 额外参数 | 带宽值、端口范围等按已有配置填写。 | Allowed IPs、DNS、MTU 等按隧道规划填写。 |
WireGuard 的隧道地址不是服务器公网地址,Private Key 也不是对端 Public Key。Allowed IPs 涉及隧道内的目标范围,不能与 Shadowrocket 的 Global Routing 混为一谈。导入后不要随意更换隧道地址,否则即使端点可达,也可能没有返回流量。
Hysteria2 的带宽参数不是测速结果,更不是越大越好。需要填写时,应采用已有配置要求的值。若同一配置在 Wi-Fi 下可用、切换蜂窝网络后超时,可先记录网络切换前后的现象,再核对 UDP 可达性;单次失败不足以判断协议本身的速度或稳定性。
在 Add Server 添加并验证连接
以下步骤以已经持有完整服务器参数为前提。若已有订阅包含完整条目,通常优先使用原始导入结果,减少手工漏填。手动添加前记录原配置;测试时一次只改一个字段,以便判断错误来源。
-
打开添加页
进入 Home → 右上角 +,打开 Add Server。在 Type 中选择与已有服务器一致的协议,不按名称相似程度猜选。
-
填写入口
填写 Address 与 Port。Address 使用提供的域名或 IP;除非字段明确要求完整 URL,否则不要加上网页路径或协议前缀。
-
核对认证
按类型填写 Password、UUID 或密钥资料。逐项核对 Method、TLS 名称、传输方式、Host 与 Path;未提供的扩展设置不要自行猜测。
-
保存并选择
保存后返回 Home,点选该服务器,确认左侧出现选中标记。打开连接开关,首次使用时按系统提示允许添加 VPN 配置。
-
测试连通性
在 Home 运行 Connectivity Test,再访问需要验证的目标。记录是测试超时、TLS 报错,还是只有某个目标打不开,不只记录“已连接”。
Connectivity Test 用于提供连通性线索,不等于所有应用、所有目的地址和 UDP 流量都通过测试。若更改 Global Routing 来做排查,测试后应恢复原有姿态,避免把临时诊断设置长期保留。
连接结果与规则分流分开检查
服务器协议决定连接如何建立,Global Routing 决定请求采用哪种路由姿态。Proxy 用于代理路由,Direct 用于直接连接,Config 依据当前配置规则处理,Scene 则依赖所配置的场景。服务器参数正确,并不意味着每个请求都会经过该服务器。
- Proxy:可用于排查目标是否在走代理路径,但仍要确认当前选择的服务器以及相关策略设置。
- Direct:目标请求直接连接,不能用此姿态下网页能否打开来证明代理服务器正常。
- Config:核对当前 Config 中的规则顺序与策略;具体目标可能被分配到 DIRECT,而非代理。
- Scene:先检查已有场景条件与动作,不把它视为另一种服务器协议。
在 Config 中,DOMAIN-SUFFIX 匹配域名后缀,IP-CIDR 匹配 IP 网段,GEOIP 按 IP 地理归属匹配,FINAL 用于前面的规则未匹配时指定最终策略。它们改变流量去向,不会修复 Password、UUID 或 TLS 名称错误。Settings → On Demand 控制按条件建立连接,也不负责更改协议认证资料。
协议选择与报错常见问题
哪个协议速度最快,直接选它可以吗?
先使用服务器实际支持的协议,再在同一网络、相近时间与相同目标下比较。延迟、丢包、服务器负载与传输设置都会影响结果。只在 Type 中改成 Hysteria2 或 WireGuard,不能让原有服务器获得对应支持。
导入后能看到条目,为什么还是连不上?
条目可显示只说明内容已被解析,不表示认证有效。先在 Home 选中该条目并运行 Connectivity Test,再核对 Address、Port 与协议认证资料。如果来自已有订阅,按原订阅更新后复查,避免继续使用过期参数。
出现 TLS 错误,要关闭验证吗?
先核对设备时间、TLS 服务器名称与服务器证书条件,并确认连接入口没有填错。证书身份核对失败应修正配置或证书;不要把关闭验证作为日常设置,也不要用修改密码来处理证书名称不匹配。
网页能打开,为什么语音仍然失败?
网页通常主要使用 TCP,而语音可能依赖 UDP。检查当前协议、服务器与网络是否支持所需 UDP 转发,再检查 Config 的路由去向。HTTP 代理的网页测试通过,不能直接证明实时通信流量可用。
订阅更新会改变手动修改的参数吗?
订阅管理的条目可能在更新时按远端内容重建或覆盖。修改前保存原始参数,更新后重新核对选中项与扩展字段;需要长期保留的差异应明确记录,不把一次手动改动当成订阅端配置已经变更。