官方手册 · 协议技术参考

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 代理都只能访问网页。

检查项HTTPSOCKS5
常见工作方式请求转发或 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 中的流量变化也只能作为通信活动线索。

若需要反馈问题,提供设备平台、接入网络类型、协议与传输组合、失败阶段以及脱敏后的错误信息即可。不要公开完整订阅链接、密码、私钥或带身份参数的二维码。重装前先保存自己的配置与必要资料,避免在没有记录的情况下丢失排查基线。购买恢复与安装事项请查阅已购恢复说明,首次连接步骤回到使用说明,常见现象则按疑难解答分类继续查阅。