Shadowrocket 协议选型与参数参考
先按已有服务器信息选择类型,再核对认证、传输与路由。协议名称不能单独决定速度、电量或连接结果。
- 认证与加密
- TLS 与传输
- DNS 与规则
- 连接与电量排查
- Shadowsocks
- VMess
- VLESS
- Trojan
- HTTP · SOCKS5
- WireGuard
- Hysteria2
本页是供反复查阅的系统参考,重点解释为什么需要某个参数、不同协议在什么条件下适用,以及连接失败应从哪一层检查。使用说明负责从导入到首次连接的快速上手主线;已完成首次连接后,可回到本页按协议章节查阅。所有操作均以用户已有自己的订阅或服务器信息为前提,本站不提供、不销售、不推荐节点或订阅。
01 / SELECTION
协议选型:先确认服务端,再比较传输条件
把协议、传输、安全与路由分开理解
在 Shadowrocket 中选择协议类型,首先是在声明客户端将用什么格式与服务器交谈,而不是选择一个可以任意互换的速度档位。服务器提供 Shadowsocks,就需要对应的 Shadowsocks 类型与认证资料;服务器提供 Trojan,也不能仅把类型改为 VLESS 继续使用。地址和端口相同,只能说明连接目的地相同,不能证明服务器接受相同的握手、认证或数据封装。选型的第一依据始终是已有资料中的明确类型。
一个可用连接通常涉及四层信息。第一层是地址与端口,决定数据送到哪里;第二层是协议与身份认证,决定服务器是否接受请求;第三层是传输和安全参数,例如 TLS、WebSocket 或 UDP;第四层才是本地路由,决定哪些请求进入该连接。某些协议把其中几层组合在一起,另一些则允许多种搭配。排查时必须分层,否则容易把 DNS 错误当成密码错误,或把规则未命中当成协议不兼容。
速度与电量没有固定排名
实际速度受接入网络、往返时延、丢包、服务器负载、出口带宽及目标服务共同影响。增加一层封装通常会带来额外字节与处理,但不代表它在所有环境中都更慢:如果某种传输更适合当前网络,减少重传的收益可能超过封装成本。反过来,同一协议在两个不同服务器上的差距,也可能远大于同一服务器上两种协议的差距。因此,本页不按协议名称给出固定的快慢顺序。
iPhone 与 iPad 上的电量消耗也需要结合使用方式观察。持续大流量会同时使用无线链路、加解密与应用处理能力;零散请求则容易受到连接建立次数、后台保活和网络唤醒影响。频繁自动测速、短间隔更新、反复失败重连,都可能掩盖协议本身的差别。比较时应保持设备、网络、服务器与目标一致,并把屏幕亮度和其他后台任务纳入考虑,不能把一次电量下降直接归因于某个协议。
| 已有条件 | 优先核对 | 不能直接推断 |
|---|---|---|
| 已有订阅 | 导入后的类型、认证与传输字段 | 名称相似就可互换 |
| 已有服务器配置 | 服务端实际启用的协议与端口 | 某个端口必然对应 TLS |
| 网络存在明显丢包 | 传输兼容性、重传与连接稳定性 | UDP 一定更快 |
| 需要访问授权内网 | 地址段、路由、DNS 与回程 | 隧道建立等于资源可访问 |
建立可以复现的比较方法
先保存一个已知可用的配置作为基线,再逐项调整。用同一目标分别观察首次打开、重复访问、持续传输和休眠恢复,不要在每轮测试中同时更换 DNS、协议和服务器。Connectivity Test 适合作为连接状态的一个观察入口,但测试结果不等于所有业务都可用。网页访问、视频播放、实时语音对传输的要求不同,应测试真正需要使用的业务,而不是只比较一个数字。
如果已有资料只提供一种协议,正确做法是把这组信息完整导入并验证,而不是凭名称寻找另一种类型。确需切换时,应先取得服务端为新协议准备的完整参数。订阅解析后列表为空,与协议选型属于不同层面,可先查阅订阅导入后列表为空的自查说明。本页后续章节假定至少已有一条可编辑的服务器记录,界面字段是否出现,以当前应用中的实际选项为准。
02 / SHADOWSOCKS
Shadowsocks:地址、密码与加密方法必须成组匹配
设计侧重:较直接的代理封装
Shadowsocks 围绕代理连接的数据转发与加密展开设计,常见配置由服务器地址、端口、密码和加密方法组成。它不像网页应用那样必然以 HTTP 请求作为入口,也不能因为服务端使用常见网页端口就认定需要 TLS。对于已经提供完整 Shadowsocks 参数的用户,其价值在于配置关系比较直接:先连到指定服务器,再按约定的密码和加密方法处理代理数据。服务端与客户端必须使用兼容的协议实现与参数。
不同加密方法并非可以任意替换的性能选项。密码和方法共同参与密钥相关处理,某些方法还对凭据格式有特定要求。把已有密码保留、只把方法改成另一个看起来更新的名称,通常不能得到有效连接。导入链接时应保留原始方法;手动填写时逐字符核对,尤其注意连字符、数字及方法名称的完整拼写。若服务端给出的方式未出现在当前类型的选择列表中,应先确认兼容性,而不是选一个近似名称代替。
参数含义与输入边界
Address 或服务器地址可以是域名,也可以是 IP 地址。域名提供地址解析与服务迁移的灵活性,但会引入 DNS 这一前置依赖;直接填写 IP 则不能自动获得域名对应的后续地址变动。Port 指向服务端监听端口,不能根据网页是否打开来判断它是否正确。Password 是服务器认证与加密配置的一部分,不是 App Store 账号密码,也不是设备解锁密码。录入时应避免前后空格、换行以及输入法替换字符。
若已有资料包含额外的混淆或插件相关参数,这些参数应作为独立条件核对。它们可能影响连接外层的格式,但不意味着所有 Shadowsocks 记录都需要启用相同选项。遗漏必需的外层参数会导致握手失败;为原本不需要的连接额外开启某个选项,也可能使服务端无法识别。最稳妥的顺序是先确认是否确实存在该层,再逐项对应已有资料与应用内可用字段,保持未指定的选项不变。
| 参数 | 作用 | 常见核对点 |
|---|---|---|
| Address | 确定服务器位置 | 域名解析结果与记录完整性 |
| Port | 确定服务入口 | 与该协议监听端口一致 |
| Password | 参与认证与加密处理 | 大小写、空格、编码是否改变 |
| Method | 确定加密方法 | 两端名称及凭据要求一致 |
TCP 成功不代表 UDP 已经可用
网页能打开,通常只能说明相关请求经过的路径有效。实时语音、部分游戏或其他基于 UDP 的业务,还需要客户端设置、服务端能力与网络路径共同支持 UDP 转发。TCP 和 UDP 即使使用相同数字端口,也属于不同的传输入口,网络侧处理可能不同。若普通网页正常而实时业务失败,应先确认业务实际使用的传输,再检查 UDP 支持及相关规则,不要立即更换密码或加密方法。
在移动设备上,Shadowsocks 的实际电量表现取决于加密方法、硬件处理能力、流量规模和重连频率。持续传输与小请求密集访问是两种不同负载,不宜混为一谈。若配置刚导入就出现明显发热,先暂停持续测速与重复连接,检查是否存在失败循环,再用单一目标做有限次数验证。电量异常只是现象,需要结合连接记录和网络状态定位,不能直接证明加密方法选择错误。
按故障出现的位置处理
完全无法建立连接时,先核对地址解析、端口与服务器状态;连接建立后立刻断开,再看密码、方法和外层参数是否成组对应;只有部分网站失败,则进一步检查 DNS、规则和目标可达性。保持一份未修改的原始记录有助于回退。若记录来自订阅,更新可能覆盖手工改动,建议在测试前明确当前编辑的是订阅管理记录还是独立记录,避免把更新覆盖误判为客户端没有保存设置。
03 / VMESS · VLESS
VMess 与 VLESS:身份字段相似,不等于协议相同
设计取舍与类型边界
VMess 将身份认证和数据处理组织为专门的代理协议,其配置通常包含 UUID 以及与安全、传输有关的参数。VLESS 则采用更精简的协议层设计,本身不提供内容加密,需要结合安全传输方案理解完整连接。两者都可能出现 UUID,也都可能与不同外层传输组合,因此只看链接中的身份字段无法判断类型。应以原始订阅或服务端明确标注为准,不能把同一个 UUID 当成跨协议通用的连接凭证。
VLESS 的精简不代表完整连接一定消耗更少资源,也不代表可以省略安全层。若连接叠加 TLS、WebSocket 或其他传输,实际字节开销和握手流程由整套组合决定。VMess 的表现同样取决于服务端配置与网络条件,而不是只由协议名决定。选型时应同时记录协议、传输、安全层三个维度,再讨论兼容性和使用场景;把其中一个维度抽出来比较,容易得到与实际运行不符的结论。
UUID、传输类型与路径
UUID 用于标识服务端允许的用户身份。复制时需要完整保留字符和分隔形式,不能使用备注名替代。备注只帮助用户识别记录,不参与协议认证。VMess 的部分参数还与协议实现和历史配置形式有关,不应根据网上的单一截图批量修改。对于协议认证过程涉及时间的情况,设备时间明显偏离可能导致失败;应先确认系统日期与时间正常,再判断服务器是否拒绝了身份。
传输字段决定协议数据如何承载。使用 WebSocket 时,Path 是握手请求路径,Host 与 HTTP 层主机信息有关;它们不是服务器备注,也不能把完整网址随意拆入各个字段。路径中的前导斜杠、大小写和查询部分是否需要保留,应按服务端资料核对。选择其他传输时,字段集合可能变化,不应把 WebSocket 的参数机械填入另一个传输类型中。界面没有显示的字段,也不等于可以用名称相似的字段代替。
| 层次 | 常见内容 | 检查原则 |
|---|---|---|
| 协议身份 | VMess / VLESS、UUID | 类型与身份必须同时正确 |
| 外层传输 | TCP、WebSocket 等 | 按服务器实际组合选择 |
| HTTP 层信息 | Host、Path | 不能与连接地址混为一项 |
| 安全层信息 | TLS、Server Name、证书验证 | 名称与信任关系分别核对 |
TLS 名称与其他扩展参数
连接地址负责找到服务器,TLS 的 Server Name 用于握手中的名称信息,并与证书名称验证相关;二者可以相同,也可能由服务端资料明确指定为不同值。Host 又属于另一层,不能因为内容看起来都是域名就互相覆盖。若资料还包含其他安全扩展或特殊握手参数,应确认当前应用实际支持对应组合。字段能被填写,只表示存在输入位置,不足以证明任意组合都能与服务端互通。
已有配置中的 Flow 等可选参数属于特定协议组合的约定,不是通用提速开关。只有服务端明确要求且客户端提供兼容选项时才应启用。不要通过反复尝试多个安全参数来替代核对原始资料,这会同时改变握手条件,使排错缺少基线。对订阅导入的记录,先保留原始结果,再建立独立测试副本,更容易确认是导入信息不完整,还是后续编辑导致连接变化。
移动网络中的比较方式
在 iPhone 或 iPad 上评估这两类连接,应区分首次握手和已建立连接的数据传输。多层握手会让短请求更敏感于往返时延,而长时间传输可能主要受带宽与拥塞影响。网络切换后旧连接失效、应用重新建立连接,也会造成短时等待。若只是某种传输恢复较慢,应记录发生在锁屏恢复、无线网络切换还是普通连续使用期间,而不是直接把结论归为 VMess 或 VLESS 的整体差异。
出现失败时按地址与端口、协议与 UUID、外层传输、安全层、目标访问的顺序逐项排除。若连接记录显示请求根本没有选中该服务器,应先检查 Global Routing 与当前配置。更多通用现象可查阅疑难解答,避免在路由尚未确认时反复修改身份字段。
04 / TROJAN · TLS
Trojan 与 TLS:认证正确,还要建立正确的信任关系
以 TLS 承载代理连接的设计
Trojan 将代理请求放在 TLS 保护的连接中,并使用密码完成协议层认证。理解它时需要同时考虑两个独立条件:客户端是否与预期服务器建立了可信的 TLS 连接,以及服务器是否接受协议层凭据。密码正确不能弥补证书名称不匹配;证书验证通过也不能证明密码正确。与只看地址、端口的检查相比,Trojan 的参数核对需要更明确地区分连接目标、TLS 名称、证书链与用户认证。
TLS 的作用是保护传输内容,并在正确验证证书的条件下帮助确认服务器身份。它不是速度选项,也不应只为了让连接显示成功而随意改变。握手需要网络往返,实际开销与连接复用、网络时延和实现有关。对于持续传输,建立连接后的行为与首次握手又不同。因此,看到首次打开略慢,并不足以证明 Trojan 的持续吞吐存在问题,也不能凭一次成功访问判断所有安全参数都已正确。
Address、Server Name 与证书验证
Address 是客户端实际连接的地址。Server Name 通常与 TLS 握手中的 SNI 以及证书名称校验有关,应按服务器资料填写。证书需要覆盖验证所使用的名称,并具有可接受的有效期和信任链。若把服务器 IP 直接填入地址,但服务端证书签发给域名,通常仍需要正确的名称信息。不能因为 IP 能够连通就删去域名,也不能把任意可访问网站的域名填入作为替代。
证书失败可能来自多个方向:设备时间不正确、证书已过期、服务端没有提供完整中间证书、名称不匹配,或当前网络把连接导向了其他入口。排查时先看具体错误,再核对资料和服务端配置。若应用提供跳过证书验证的选项,它改变的是信任边界,不是修复证书的工具。日常使用应优先修正名称、时间或证书链问题,不能把长期关闭验证当作默认配置。
密码、ALPN 与外层传输
Trojan 的 Password 是协议认证凭据,应完整保留大小写和特殊字符。订阅导入可能涉及链接编码,若手工从链接中截取一段作为密码,容易把编码形式误当实际内容。优先使用应用支持的完整导入方式,或按已有资料中的独立字段输入。不要在公开截图中展示完整密码,也不要将认证失败时的原始分享链接直接粘贴到公共反馈区;排查需要字段结构,通常不需要公开凭据。
ALPN 用于 TLS 中的应用层协议协商,是否需要指定以及接受哪些值,取决于服务端与外层传输安排。它不是越多越好的列表,也不能通过添加常见名称保证兼容。若记录包含 WebSocket 等额外传输,还需要核对相应路径与主机信息。此时 TLS 成功只说明安全层建立,后续传输握手或 Trojan 认证仍可能失败,应根据失败发生的先后顺序定位。
如何区分证书问题与业务问题
若所有目标在连接初期同时失败,并出现证书或握手错误,优先查看 TLS 条件;若连接已经建立而特定网站失败,检查目标 DNS、路由与远端可达性。若只有实时业务失败,进一步核对 UDP 转发支持和网络路径。把这些现象分开,可以避免在目标服务暂时不可用时更换证书设置,或在域名解析错误时重置密码。每次只调整一个条件,并记录调整前后的错误变化。
电量观察同样应围绕实际行为。频繁建立 TLS 连接、失败后连续重试,以及后台小流量维持无线活动,都可能增加消耗;这与大流量时的加密处理不是同一类成本。测试时关闭不必要的持续探测,保留一条明确可用的基线记录,再观察常用业务。有关应用获取、官方图标和开发者信息的核对,请使用正版核验说明,不要用连接表现来判断应用来源。
05 / HTTP · SOCKS5
HTTP 与 SOCKS5:先识别代理入口,再确认保护范围
两种通用代理接口的出发点
HTTP 代理围绕 HTTP 请求转发发展,处理网页请求时可以使用代理形式的请求目标;对于 HTTPS 等场景,常通过 CONNECT 请求建立到目标的隧道。SOCKS5 则提供更通用的代理会话协商,用于表达目标地址、端口和连接请求。两者都是代理入口的协议约定,不代表入口天然具有相同的加密保护、认证机制或 UDP 能力。已有服务器写明 HTTP,就不能只因为地址不变而改选 SOCKS5。
这里尤其要区分目标网站使用 HTTPS,与客户端到代理入口使用 TLS。HTTPS 网站的内容保护通常延伸到目标网站,但客户端与 HTTP 代理之间的连接若未使用 TLS,代理协商信息及某些认证信息的保护范围与加密代理入口不同。目标网站采用安全连接,不等于外层代理链路的每一部分都具有相同属性。判断保护范围时应逐段看连接,而不是只看浏览器地址栏或服务器备注中的一个词。
地址、端口与认证模式
HTTP 与 SOCKS5 的基础信息通常包括服务器地址、端口,以及可能需要的 Username 和 Password。是否需要认证由服务端决定,不能假设留空就能连接,也不能把其他协议的 UUID 填入用户名后期待自动兼容。认证失败与网络不可达的现象可能接近,需要结合连接错误和已有资料区分。手工输入时还要注意某些账号包含域或其他前缀,是否保留应以服务端提供的完整格式为准。
如果代理入口要求 TLS,应选择与之对应的安全设置,并核对证书名称。端口数字本身不能证明该入口是明文或加密,也不能证明它接受 CONNECT。部分服务端会限制可访问目标、目标端口或认证方式,即使客户端成功连到入口,后续请求仍可能被拒绝。遇到某些目标端口失败时,应先确认授权范围与服务端策略,而不是反复修改本地 DNS 或误认为所有 HTTP 代理都只能访问网页。
| 检查项 | HTTP | SOCKS5 |
|---|---|---|
| 常见工作方式 | 请求转发或 CONNECT | 会话协商后代理连接 |
| 认证 | 由入口支持方式决定 | 由协商与服务端配置决定 |
| 入口加密 | 需另看是否使用 TLS | 协议本身不提供内容加密 |
| UDP | 普通 HTTP 代理不能直接等同于 UDP 转发 | 需端到端支持 UDP ASSOCIATE |
域名解析与 UDP 的条件
SOCKS5 的目标地址可以用域名形式表达,但一次实际请求是否把域名交给代理侧解析,仍取决于客户端处理、DNS 策略和目标信息是否已经被转换为 IP。不能只凭选中了 SOCKS5 就认定所有 DNS 请求都在远端完成。HTTP 代理同样可能在请求中获得目标主机名,但应用产生的其他 DNS 查询需要单独考察。排查域名问题时应观察实际连接目标与 DNS 结果,而不是只检查服务器类型。
SOCKS5 规范包含 UDP ASSOCIATE,并不意味着每个服务端、每个接入网络和每种客户端组合都能完成 UDP 转发。相关协商通常还涉及控制连接和转发地址,网络侧可能限制其中一部分。若 TCP 业务可用而 UDP 业务失败,应分别验证服务端是否启用、返回地址是否可达以及规则是否选中同一记录。不能把一个网页测试结果直接外推到语音、游戏或其他 UDP 业务。
适用场景与移动使用判断
这两类入口常用于已有组织代理、授权网络接入或明确提供通用代理协议的环境。用户应按管理方给出的类型与安全要求配置,而不是根据参数数量少就认为更适合长期使用。对 iPhone 和 iPad 而言,连接稳定性仍受网络切换、认证有效期和服务端限制影响。某个代理持续提示认证失败时,先检查凭据状态与授权范围,不要用频繁重连替代确认。
如果业务需要持续低时延或 UDP,应先确认入口能力确实覆盖该需求;如果只是访问特定授权资源,则更应重视目标路由和认证范围。协议选择应服务于已有连接条件,不负责创造服务端没有提供的能力。保存记录时可在备注中标明用途与网络条件,但备注不要包含密码;这样在多个入口之间切换时,能够识别场景,又不会在列表截图中暴露认证信息。
06 / WIREGUARD
WireGuard:密钥、隧道地址与允许地址共同决定可达性
从代理请求转向 IP 隧道
WireGuard 围绕加密的 IP 隧道设计,与前面按单个代理请求描述目标的协议存在差别。理解其配置时,需要关注隧道接口地址、对端身份、UDP 端点和允许地址之间的关系。它通过公私钥识别通信对端,不是把某个用户名与密码发送给服务器即可完成认证。已有配置通常由服务端管理方提供,客户端需要按完整关系录入,而不是只取得一个 Endpoint 就能建立可用的业务路径。
WireGuard 的设计强调相对精简的协议和明确的密钥关系,但这不意味着配置错误更少,也不代表在所有移动网络中速度最高。底层通常使用 UDP,若当前网络无法正常承载相关流量,握手和数据传输都会受影响。即使对端能够响应,远端网络还需要正确的转发、访问控制和回程路径。隧道存在与目标资源可达是两个层面,应在测试时分别确认。
Private Key、Public Key 与可选共享密钥
Private Key 标识本端身份,需要保密;本端对应的 Public Key 交给对端配置。客户端填写的 Peer Public Key 则应是远端的公钥,不能把自己的公钥重复填入。常见错误是把两端字段方向弄反,或用新生成的私钥替换旧值,却没有同步更新服务器对该用户公钥的记录。密钥看起来格式正确,只能说明字符结构可能有效,不能证明两端已经形成正确配对。
若配置包含 Preshared Key,它是公私钥关系之外的附加共享材料,两端需要一致。没有这一项的配置不应凭空添加随机值;已有这一项的配置也不能只在客户端删除。排错或截图时应遮盖 Private Key 与 Preshared Key,公钥虽不是私密认证材料,也可能关联设备身份,不宜连同端点和内网拓扑一起公开。需要协助时,可提供字段是否存在、错误类型与脱敏后的结构。
Address、Allowed IPs 与 DNS 分别控制什么
Address 通常表示分配给本端隧道接口的地址,不是远端服务器的公网地址,也不是随意填写的本地无线网络地址。Endpoint 才是远端可连接的主机和端口。Allowed IPs 与对端可处理的地址范围有关,并参与 WireGuard 的地址选择及校验逻辑;它与 Shadowrocket 上层规则也不是完全相同的概念。只有两层配置共同覆盖目标,相关请求才可能按预期经过隧道。
DNS 参数负责名称解析安排,不会自动补齐缺失的地址路由。访问内网域名时,需要 DNS 能返回正确地址,同时目标地址有可用路径,远端也允许访问并能把响应送回。如果 IP 访问正常而域名失败,优先检查 DNS;如果域名已得到预期地址但仍不可达,再看 Allowed IPs、上层规则和远端回程。切勿通过不断更换 DNS 来修复实际上没有被隧道接管的目标网段。
| 字段 | 对应对象 | 核对重点 |
|---|---|---|
| Private Key | 本端身份 | 与远端登记的本端公钥对应 |
| Peer Public Key | 远端身份 | 不能误填成本端公钥 |
| Endpoint | 远端网络入口 | 主机、端口与 UDP 可达性 |
| Allowed IPs | 对端地址范围 | 与目标、上层路由共同检查 |
MTU、保活与移动网络恢复
MTU 与隧道封装后的数据包大小有关。数值过大可能在某些路径上导致大包传输异常,表现为小请求正常、较大内容停顿;数值过小则增加包数量与开销。应先使用已有配置建议,再在证据支持时逐步调整。Persistent Keepalive 用于在需要时维持网络映射,不是越短越稳定;过于频繁会增加后台通信和无线唤醒,是否设置应结合网络设备行为与远端要求判断。
移动网络切换后,端点可达性、映射状态和域名解析都可能变化。观察时应分别记录是否重新握手、是否只有部分网段失败、是否锁屏后才出现问题。若目标是授权内网,按单个已知资源测试,再逐步扩大范围,避免用不相关的公网网站判断隧道是否完整工作。iPad 的基础检查方法相同,设备购买与恢复事项可另查iPad 使用说明。
07 / HYSTERIA2
Hysteria2:基于 QUIC 的传输需要先确认 UDP 条件
设计目标与网络前提
Hysteria2 以 QUIC 为基础组织代理传输,关注复杂网络条件下的数据传递与拥塞处理。QUIC 运行在 UDP 之上,并结合 TLS 完成安全握手。它可以在一条连接中组织多个数据流,流之间的处理方式与单一 TCP 字节流不同,但共享连接仍受到整体带宽、拥塞和服务器资源限制。不能把多流特性理解为某一个请求完全不受其他流量影响,也不能仅凭协议名称推断实际吞吐。
使用前最重要的前提是 UDP 路径可用。某些网络可以正常浏览网页,却对 UDP 入口存在限制或不同的处理方式,此时基于 TCP 的记录正常,并不能证明 Hysteria2 的入口也应该正常。失败时应先核对域名解析、端口与 UDP 可达性,再看认证和 TLS。若底层路径不成立,修改带宽参数或添加保活通常不能补足缺失的网络条件。
认证、TLS 与混淆参数
已有 Hysteria2 资料通常包含服务器地址、端口、认证信息和 TLS 相关设置。认证字段需要按服务端要求完整保留,不能拿其他协议的密码直接尝试。TLS 的名称与证书验证原则和前文一致:连接目标、Server Name 与证书覆盖名称应形成正确关系。即使底层使用 UDP,证书时间、名称和信任链仍然重要,不能把握手失败一概归类为 UDP 被限制。
如果服务端启用了混淆,客户端需要对应的类型与密码等参数。混淆与认证、TLS 是不同层次,各自承担不同作用,不应因为其中一个字段正确就忽略另外两个。没有启用混淆的入口,也不应添加不明参数。导入后若出现一个可用记录和一个手工重建记录结果不同,优先逐项比较字段,特别是那些在简略资料中容易被省略的可选设置。
带宽字段不是测速结果
某些配置会出现上行与下行带宽字段,它们可能参与具体拥塞控制模式的行为。字段里的数值不是客户端实时测得的速度,也不表示服务器承诺持续提供该吞吐。服务端策略及协商方式可能影响这些值是否生效,不能通过把数值填得很大来增加物理带宽。录入时还应确认应用字段使用的单位,不要把字节每秒与比特每秒混用,或把自己的下行能力误填到上行位置。
如果设定明显高于实际接入能力,在相关模式下可能形成排队、丢包和不稳定;设定过低又可能限制可利用的传输能力。应以真实网络条件和服务端说明为依据,保留原始配置作为基线。测试时同时观察下载持续性、交互请求等待和其他应用是否受到排队影响。某次短暂达到较高速度,不足以说明参数合理,更不能代替长一点的稳定性观察。
iPhone 与 iPad 上的资源观察
QUIC 的协议处理、加密与数据收发都会占用设备资源。具体电量表现受实现、流量、丢包与无线信号强度影响,没有适用于所有设备的固定结论。大流量测试时,应用处理和无线传输同时活跃,设备温度上升并不能独立证明配置错误。更有参考价值的是同等业务量下的持续表现、后台是否反复重连,以及弱信号或锁屏恢复时是否出现明显异常。
若仅在特定无线网络失败,可换一个已获授权的接入网络验证路径差异;若所有网络都失败,再检查原始认证、TLS 与服务端状态。若连接可以建立但大流量停顿,检查路径丢包、数据包大小、带宽设置与远端资源,而不是立即改用另一个协议类型。服务端必须实际提供新协议,切换才有意义。保留失败发生的阶段与简短错误信息,比只记录“不能用”更有助于后续判断。
完成测试后,停止重复测速与无必要的持续传输,恢复日常配置再观察电量。若问题只在更新订阅之后出现,应先比较记录参数变化,区分服务端调整与本地网络变化。配置来自已有订阅时,手动修正还可能被后续更新覆盖,因此应明确测试副本与订阅记录的管理关系,避免同一个问题在更新后再次出现。
08 / ROUTING · VALIDATION
规则、DNS 与验证:把协议可用和请求走向分开确认
Global Routing 的三种姿态
选择正确协议只解决了与服务器通信的条件,实际请求是否使用该服务器还取决于 Global Routing。配置对应 Config,按当前配置文件的规则决定策略;代理对应 Proxy,主要将请求交给所选代理处理;直连对应 Direct,主要通过直接路径访问。不同姿态用来控制请求走向,不能修复错误的协议认证。Direct 下某个网站正常,也不能证明代理服务器可用,因为这次访问可能根本没有经过它。
| 姿态 | 界面词 | 验证重点 |
|---|---|---|
| 配置 | Config | 当前文件、规则顺序与命中策略 |
| 代理 | Proxy | 所选记录及实际请求路径 |
| 直连 | Direct | 直接网络路径与目标可达性 |
规则顺序与兜底策略
规则一般按顺序匹配,前面的具体条件可能使后面的规则不再参与该请求的选择。DOMAIN 匹配完整域名,DOMAIN-SUFFIX 用于域名后缀,DOMAIN-KEYWORD 按关键字匹配;IP-CIDR 与 IP-CIDR6 针对地址段,GEOIP 按 IP 归属信息匹配。FINAL 用于此前规则未匹配时的兜底。以下片段只展示 Shadowrocket 配置中的规则结构,不提供连接资料,也不是适用于所有网络的完整配置。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
GEOIP,CN,DIRECT
FINAL,PROXY
示例中 PROXY 与 DIRECT 是策略关键字,不等同于某条记录的备注名称。GEOIP 的判断涉及地址归属数据,不代表页面使用的文字、经营主体或实际内容位置;域名可能解析到多个地址,结果也可能变化。使用 IP 类规则前应理解解析发生的位置和时机。若规则看似正确但没有生效,应查看实际请求是否带有可匹配的域名、最终目标地址是什么,以及是否已被前面的规则匹配。
REJECT 是拒绝连接的策略,不是对页面内容进行语义识别。同一域名可能同时提供多种功能,拒绝它可能影响需要保留的内容;应用自己的连接方式也会影响可观察到的匹配信息。相关边界可阅读REJECT 规则原理与适用范围。USER-AGENT 等依赖应用层信息的规则,也应先确认当前连接中是否具备可用的匹配信息,不能假设所有加密请求都能直接读取这些字段。
DNS、IPv6 与目标地址
DNS 负责把域名转成地址,代理协议负责后续数据传递,两者有关联但不是同一设置。域名解析失败时,可能根本没有机会连接目标;解析成功但返回不可达地址时,又会表现为连接超时。若目标同时有 IPv4 与 IPv6,当前网络对两者的可达性可能不同。检查时应记录实际使用的地址族,而不是只看域名解析是否返回了任意结果。整体关闭某项能力之前,先确认失败与它确实相关。
域名规则和 IP 规则也可能产生不同结果,因为一个请求在匹配时所具有的信息并不总是相同。对同一目标,可先确认 DNS 返回,再核对连接记录中的目标地址与策略;不要同时更换 DNS、规则文件和协议。涉及授权内网时,外部 DNS 不一定知道内部名称,内部 DNS 又不一定能从当前路径访问。此类问题应按名称解析、DNS 服务器路径、目标路由和回程逐层验证。
一条完整的排查闭环
第一步确认原始记录来自自己的有效资料,保留未修改副本;第二步核对类型、地址、端口和认证;第三步确认传输、TLS 与可选参数;第四步检查 Global Routing、当前 Config 和请求命中;第五步使用单一目标测试真实业务。每一步都应有可观察结果,再进入下一步。Connectivity Test 可以辅助判断,但不能替代目标业务验证,Data 中的流量变化也只能作为通信活动线索。
若需要反馈问题,提供设备平台、接入网络类型、协议与传输组合、失败阶段以及脱敏后的错误信息即可。不要公开完整订阅链接、密码、私钥或带身份参数的二维码。重装前先保存自己的配置与必要资料,避免在没有记录的情况下丢失排查基线。购买恢复与安装事项请查阅已购恢复说明,首次连接步骤回到使用说明,常见现象则按疑难解答分类继续查阅。