Shadowrocket(小火箭)支持多种代理与隧道协议,但客户端不能把一台服务器任意切换成另一种协议。本文适合已经有自己的服务商与配置、准备手动添加或核对导入结果的用户:先辨认协议和传输层,再逐项核对地址、端口、认证与 TLS 参数,最后用 Connectivity Test 和实际网页请求验证。
一、支持哪些协议:先分清协议、传输与分流
Shadowsocks、VMess、VLESS、Trojan、HTTP、SOCKS5、WireGuard、Hysteria2 都属于本文核对范围。它们解决的不是完全相同的问题:有的是代理协议,有的是加密隧道;同一种代理协议还可能采用不同传输方式。添加时应依据用户已有配置选择 Type,而不是按名称、端口或预期速度猜选。
协议类型与 Global Routing 是两层设置。前者决定客户端怎样连接服务器,后者决定哪些请求采用代理、哪些请求直接连接。协议正确但路由走 Direct,目标请求仍不会经过所选服务器;规则写得正确,但服务器认证失败,也不能建立代理连接。
| 协议 | 传输与安全边界 | 添加前应拿到的参数 |
|---|---|---|
| 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 也不能填成服务器域名。编辑已有条目时,应保留原配置,再逐项修改,避免一次更改多个变量后无法确定失败原因。
- Shadowsocks:Method 必须与服务器一致。例如已有配置指定
aes-128-gcm,不能仅为“增强安全性”自行换成另一种算法。若原配置含插件或混淆选项,也应一并核对;基础认证正确不能弥补传输不匹配。 - VMess:UUID 是认证标识。传输采用 WebSocket 时,还要匹配 Path 与 Host;启用 TLS 时,再核对服务器名。若界面出现 Alter ID,应按配置来源填写,不凭旧教程套用数值。
- VLESS:核对 UUID 后,继续检查安全层、传输方式与 Flow。只有配置明确要求时才填写对应选项。不能因为 VLESS 本身不加密,就把既有配置中的 TLS 关闭。
- Trojan:先核对 Password,再检查 TLS 服务器名与证书验证。若连接地址是 IP,而证书签发给域名,仍可能需要配置指定的域名作为 SNI;不要把 IP 直接当作证书名称。
界面中某些附加字段会随 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 这组界面为参照。手动添加前准备好完整参数;若已有订阅或完整配置,优先保留其原始导入结果,再通过编辑界面核对。本文只说明用户已有配置的使用,不提供或推荐连接资源。
-
选择类型
进入 Home → 右上角“+”,打开 Add Server,在 Type 中选择与原配置一致的协议。不要仅因为两个条目都使用 443 端口,就选择同一种 Type。
-
填写认证
填写服务器地址与端口,再按类型填写 Password、UUID 或密钥。端口填写原配置指定的数字,不附加协议前缀;复制认证信息后检查首尾空格与换行。
-
核对传输
按原配置设置 TLS、SNI、WebSocket 的 Host 与 Path 等项目;WireGuard 则核对隧道与对端参数。保存后回到 Home,将该服务器选为默认,确认选中标记确实落在目标条目上。
-
验证连接
在 Home → Global Routing 临时选择 Proxy,打开连接开关,并运行 Connectivity Test。随后访问自己已知可用的 HTTPS 页面;验证结束后恢复原先使用的 Config 或 Scene,并再次检查实际请求。
Connectivity Test 的结果用于判断测试目标的连接情况,不是所有应用、所有协议流量均正常的证明。若测试通过而某个应用失败,应继续区分该应用使用 TCP 还是 UDP、请求是否命中预期策略,以及 DNS 是否得到可用结果。
五、订阅、配置与协议条目分别负责什么
订阅主要用于导入和更新已有服务器信息;Config 中的配置文件主要承载分流与相关设置。更新订阅后,条目的地址、认证或传输参数可能发生变化,因此不要把订阅管理的条目当作永远不变的手工副本。需要试改时先保存原始信息,避免下次更新覆盖后失去对照。
- 导入已有订阅:Home → “+” → Type → Subscribe,填写自己的订阅地址并保存,返回 Home 更新对应订阅。订阅地址属于敏感凭据,不应放入公开截图或日志。
- 核对更新结果:检查是否产生预期条目,再打开条目确认 Type 与传输设置。订阅成功下载,不等于其中每个服务器都能从当前网络连接。
- 恢复日常分流:Global Routing 的 Proxy 用于统一走代理的排查,Direct 用于直接连接,Config 按选用配置处理,Scene 按所设场景处理。完成诊断后应恢复原使用方式。
- 检查规则:Config 模式下,依次核对 DOMAIN-SUFFIX、GEOIP、IP-CIDR 等规则及最终的 FINAL。规则选择策略,不会把 VLESS 转成 Trojan,也不会修改 WireGuard 的密钥。
下面是用于理解顺序的规则片段,不是完整配置,也不包含服务器信息。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 和私钥;需要说明字段关系时只写字段名。这样既能明确问题发生在传输、认证还是分流阶段,也能避免反复重建同一条配置。