官方手册 · 协议技术参考

Shadowrocket
协议参数与选型

先核对服务器实际支持的协议,再核对传输、认证与证书。协议名称不是速度或电量表现的保证。

  • Shadowsocks
  • VMess / VLESS
  • Trojan
  • HTTP / SOCKS5
  • WireGuard
  • Hysteria2

本页是系统查阅手册,面向已经拥有自己的订阅或服务器信息的用户。第一次添加配置、允许 VPN 配置并建立连接,请先按使用说明完成操作主线;需要理解字段、比较传输取舍或定位协议问题时,再回到本页对应章节。本站不提供、不销售、不推荐节点、订阅或连接服务。

Shadowrocket 是 Apple 平台的闭源商业应用,iPhone、iPad 为主要使用设备,唯一获取入口为 App Store。系统要求以 App Store 页面标注为准。客户端一次性买断 ≠ 线路套餐;购买应用不会生成服务器地址或认证信息。正版入口、开发者和应用 ID 的核对方法见App Store 下载说明。

  • 选型前提服务器已支持
  • 参数来源用户已有配置
  • 测试方法一次只改一项

01 / 分层判断

协议、传输与规则各管什么

先区分四个不同的问题

在 Add Server 中选择协议,回答的是客户端应当怎样与服务器交换认证和业务数据。填写地址与端口,回答的是连接发往哪里。选择 TCP、WebSocket 或其他传输,回答的是数据外层怎样承载。配置 TLS,则决定这一层连接如何验证服务器身份并保护数据。这些字段彼此关联,但不是同一件事;只把 Type 改成另一个名称,服务器并不会随之支持另一种协议。

规则分流位于另一条判断链上。Global Routing 使用 Config 时,客户端按当前配置判断请求应当走哪一种策略;请求被交给代理之后,所选服务器的协议才参与通信。规则写得正确,不等于服务器认证正确;服务器能够连接,也不等于每个域名都命中了预期策略。排查时应把“选择了哪条出口”和“出口能否完成连接”分别记录,避免反复修改互不相关的字段。

地址、身份与目标域名不要混用

服务器地址是客户端首先拨号的目标,可以是域名,也可以是地址值。TLS 的 Server Name 通常用于服务器身份校验及握手中的名称声明。WebSocket 的 Host 和 Path 则属于相应传输的请求信息。三者在一些配置里相同,在另一些部署里不同。不要因为某个字段都能填域名,就把它们全部替换为同一个值;应逐项照原始参数核对,并保留服务端所要求的大小写与路径结构。

用户最终访问的网站又是另一层目标。代理服务器负责连接该目标,并不意味着它的名称应当写入客户端的 Server Name。类似地,连接服务器时发生的域名解析,与代理建立后访问网站时发生的解析,可能处在不同路径。出现网页打不开而 Connectivity Test 有结果时,应先确认测试到底检查了哪一段,而不是据此判定所有解析与业务请求均已成功。

用配置姿态划定检查范围

Global Routing 的 Config、Proxy、Direct 分别适合检查规则分流、代理路径与直接连接的差异。这里的“代理”不是承诺每一种系统流量都一定经过同一路径;本地网络、排除项及应用行为仍应按实际配置检查。切换姿态只是诊断手段,不能修复错误的密码、证书或端口。排查结束后,应恢复原本需要的姿态,避免把一次临时验证变成长期设置。

层次决定内容常见检查项
规则请求交给哪种策略Config、规则顺序、最终策略
协议认证及数据交换格式Type、密码、UUID、密钥
传输协议数据怎样承载TCP、UDP、Host、Path
TLS外层加密及身份验证Server Name、证书、设备时间

以下片段属于 .conf 的 Rule 段,用来演示分流顺序,不是服务器配置,也不能代替订阅。第一条匹配指定域名及其子域名,第二条匹配相应地址归属,最后一条承接未命中的请求。示例中的 PROXY 仍需对应实际可用的代理策略;复制规则之前,应先确认当前配置采用的策略名称与用途。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
GEOIP,CN,DIRECT
FINAL,PROXY

规则自上而下匹配,命中即停。把范围较大的规则提前,可能使后面的精确规则失去作用。协议排错期间尽量不要同时更改这一顺序,否则一次访问成功或失败会同时受到出口与传输的影响,无法判断变化来自哪里。更多关键字的范围可查阅规则关键字与匹配顺序,首次连接仍以使用说明中的步骤为准。

先记录原配置,再改变单一变量。名称相同不代表字段可以互换,测试有结果也不代表整条业务路径已经验证。

02 / 对称加密代理

Shadowsocks:方法与密码必须成对

设计重点是较少的会话层次

Shadowsocks 的设计路线是把代理转发与对称加密结合起来,让客户端和服务器根据约定的方法及密钥材料交换数据。它与先建立标准 TLS 会话再承载代理认证的方案不同,基础配置通常围绕地址、端口、加密方法和密码展开。较少的字段并不意味着可以随意填写;这些字段共同决定服务端能否识别数据,任何一项不一致都可能在连接早期终止通信。

理解这一背景有助于解释它的使用边界:Shadowsocks 主要处理代理请求,不负责自动形成一个完整的私有地址网络,也不因为名称里有加密就附带网站证书验证。网站使用 HTTPS 时,其应用层安全仍由网站连接负责;客户端到代理服务器这一段则按 Shadowsocks 的具体方法处理。把不同层的保护区分开,才能避免误认为选定某种协议后就可以忽略证书或目标网站的提示。

Method 不是可以独立调节的速度档

导入已有配置后,首先核对加密方法。不同方法在认证、密钥派生及数据封装上存在差异,不能只因为某个名称看起来更新,就在客户端单方面替换。采用 AEAD 的方法会同时处理机密性与完整性,但不同协议代际的密钥格式和握手约定仍可能不同。服务端给出什么方法,客户端就需要使用对应的方法;是否支持具体选项,应以当前应用内提供的类型和已有服务端信息为准。

密码字段也不总是普通的任意短文本。某些方法要求特定格式的编码密钥,另一些使用密码派生。不要自行删去末尾的等号、加上空格或把编码文本解码后再粘回。手动输入时,应特别检查前后空白、全角标点与换行;从二维码或分享链接导入时,则要查看解析后的字段,而不是只核对列表里的备注名称。备注可以任意修改,认证材料不能据此推断。

TCP 成功不代表 UDP 路径成功

网页请求与实时应用使用的传输可能不同。服务器的 TCP 入口可达,不代表同端口的 UDP 转发已经启用,也不代表当前网络允许相应数据往返。若网页可以打开而语音或某项实时功能异常,应检查服务端是否支持相关 UDP 转发,再检查客户端选项与网络路径。不要把这一现象直接归为密码错误,因为密码完全错误时,通常连基础代理请求也难以完成。

同样,某些已有配置还带有额外的传输或混淆参数。这些参数不是所有 Shadowsocks 服务器的共同要求,不能照另一条配置补齐。若订阅导入后能够工作,手工重建却失败,应对照两条记录中的方法、密码、地址、端口和附加字段,而不是不断切换 Global Routing。服务器端是否启用了相应能力,是选择这些字段的前提,客户端开关无法替服务器增加支持。

在 iPhone 上怎样理解性能取舍

Shadowsocks 的实际计算开销与所用算法、设备硬件和业务数据量有关。较少的外层握手有时有利于短连接,但真实网页还包含域名解析、目标站点响应和多个资源请求,不能只用协议层数判断打开速度。长时间传输时,吞吐也可能受服务器带宽、无线信号或目标站点限制。若瓶颈不在加密计算,改用另一种方法不会自动提高业务速度。

电量评估应覆盖连接方式与无线环境。信号较差时,重传和无线模块持续活跃可能比算法差异更明显;频繁测试、不断刷新订阅也会增加活动。对比时应固定同一网络、相同任务和大致相同屏幕状态,区分空闲保持连接与持续下载。不能将某次系统电池统计中的应用占比直接理解成协议耗电率,因为统计区间及后台任务并不一定一致。

适合保留 Shadowsocks 的情形,是已有服务器明确提供对应方法,字段简单且实际业务验证正常。需要调整时,先修正参数一致性,再检查解析与传输。若分享链接的前缀、编码或密码部分无法确认,可结合分享链接与订阅格式说明判断材料类型。不要把整条分享链接当成密码填入,也不要把订阅地址当成服务器地址。

03 / 认证与外层承载

VMess 与 VLESS:相近字段,不同约定

UUID 相同不意味着协议相同

VMess 将身份认证、数据封装与协议自身的安全处理结合在一起,常见配置使用 UUID 标识用户。VLESS 则采用更轻的协议层设计,其协议本身不提供与 VMess 相同的载荷加密机制,通常依赖外层安全传输保护连接。这两种设计的关注点不同,因此不能只保留同一个 UUID,再把 Type 从 VMess 改为 VLESS,便期待服务端继续识别。

两者经常与其他传输方式组合出现,这也是它们在界面里字段较多的原因。协议类型解决认证及格式问题,外层传输解决承载问题,TLS 等机制处理相应的连接保护。实际部署可能只接受其中一种组合。用户已有信息如果明确写出协议与传输,就应完整保留;只拿到地址、端口和 UUID 时,材料可能尚不足以还原配置,需要从原始配置中确认其余条件。

先核对身份,再核对传输字段

UUID 应完整保留其字符与连字符结构,不要将备注、订阅分组名或服务器域名填入这一位置。VMess 配置还可能包含安全方式及历史兼容字段;旧材料中的额外认证参数并不是新配置都要照填的默认值。不要为了与某张旧说明图一致而添加数值。应以当前服务器给出的配置和应用实际可选字段为准,无法对应时先确定材料是否属于同一协议类型。

对于使用 WebSocket 的连接,Path 是服务端接受连接的路径,通常包含开头的斜杠;Host 则属于请求主机信息。路径是否区分大小写、是否含查询部分,都由部署约定决定。把路径清空或只保留最后一段,可能使服务器返回普通网页而非建立代理传输。遇到能够解析地址、端口也可达,但连接很快结束的情况,应优先检查这一层是否与服务端一致。

TLS 开关、Server Name 与证书校验应当单独核对。使用域名连接时,服务器地址与证书名称可能一致;使用指定地址连接时,Server Name 仍可能需要填写证书覆盖的域名。不能因为 TCP 已连通就跳过身份检查,也不应通过关闭验证掩盖名称错误。若原配置包含额外安全机制或 Flow 等条件,必须确认双方都支持该组合,不能从协议名称自行推导。

外层传输改变连接成本

WebSocket 为代理数据增加了一层适合相应服务架构的封装,能够与已有的 HTTP 服务接入方式配合,但会引入握手与帧处理。直接使用 TCP 时,层次可能更少,却要求服务器入口与网络路径满足不同条件。这里不存在对所有设备都成立的优劣排序:一个参数完整、路径稳定的组合,往往比一个理论层次较少但频繁失败的组合更适合日常使用。

在丢包环境中,多个可靠传输层叠加可能增加等待与缓冲,实际影响还取决于连接复用及服务器实现。并不是看到 WebSocket 就能断定速度慢,也不是看到 VLESS 就能断定耗电低。iPhone 处理一个长连接与反复重建许多短连接时,握手开销占比不同;网络切换后是否顺利恢复,也会影响无线模块的活跃时间。应以相同任务的重复结果评估,而不是按名称排序。

将故障定位到具体阶段

如果所有业务都失败,先确认当前选中的 SERVER 记录确实是正在编辑的那条,再核对协议、端口和 UUID。如果部分站点可用、部分失败,应将规则命中、解析和目标站点单独检查。如果只在切换网络后异常,可以先停止再重新建立连接,观察是否为旧会话恢复问题;不要立即改写身份字段,因为同一配置先前已经成功这一事实,本身就是有价值的排错依据。

VLESS 的轻量协议层不等于整条连接没有成本。TLS、传输、重连与业务请求仍然参与速度和电量表现。

手动配置不应成为不断试填字段的过程。较可靠的做法是先导入一条已知完整的原始记录,保留可工作的基线,再逐项查看它如何映射到界面。若订阅更新后字段改变,应比较更新前后记录,而不是把旧记录的某几个字段混入新记录。配置文件的分流设置与服务器记录也应分开保存,结构关系可参阅.conf 各段作用说明。

04 / TLS 身份校验

Trojan:密码认证建立在 TLS 之内

先有安全连接,再交换代理信息

Trojan 的设计利用 TLS 建立受保护的连接,再在其中承载认证与代理请求。它将标准安全传输的能力与代理协议结合,因此密码正确只是必要条件之一,证书、名称与外层连接也必须匹配。理解这个顺序很重要:如果 TLS 握手阶段已经失败,修改代理密码通常没有作用;如果握手成功后认证被拒绝,反复更改证书名称也不能解决错误的密码。

这种设计与直接通过对称密钥保护代理载荷的方式不同。TLS 需要服务器提供可验证的身份,并协商连接所需的参数。它能够保护客户端到服务器这一段,但并不替代目标网站自身的 HTTPS 校验,也不保证服务器到目标站点的全部行为。阅读报错时,应首先分清是代理服务器证书问题,还是浏览器显示的目标网站证书问题,两者属于不同的连接。

Server Name 应与证书对应

服务器地址负责把连接送到指定入口,Server Name 则通常参与 TLS 名称声明及证书验证。若已有配置使用地址值拨号,却为 TLS 指定一个域名,这不一定是填写错误;服务端可能正是按照该域名提供证书。相反,随意改成目标网站名称并没有意义。判断依据是服务端证书覆盖哪些名称,以及原始配置要求使用什么值,而不是哪个域名更熟悉。

证书验证会受到有效期、信任链、名称以及设备时间的影响。设备日期明显不正确时,原本有效的证书也可能被判定异常。服务端更换证书或中间证书链缺失时,客户端同样可能拒绝连接。遇到证书错误,应先检查自动日期与时间、服务器参数及证书状态;不能把允许不安全连接当作常规修复,因为这会改变身份验证的前提,而不是恢复原本正确的配置。

密码与附加参数仍要逐项核对

Trojan 的密码是服务端认证材料,不是设备解锁密码,也不是 App Store 购买凭据。粘贴时应保留完整内容,避免在文本末尾带入换行。若密码内含特殊字符,分享链接中的编码与解码可能影响展示结果;导入后应查看实际字段,而不是把已转义的文本再手动转义一次。仅凭备注中写有 Trojan,无法确认链接内容及客户端 Type 都已经一致。

某些已有部署包含额外传输选项,这些内容需要与服务端共同成立。不要在缺少说明时自行增加 WebSocket、修改 Path 或添加不明的协商值。外层入口如果要求特定的主机、路径或握手条件,遗漏其中一项可能使请求被其他服务接收。能打开同域名的普通网页,只证明该网站入口可达,不证明代理认证路径以及对应端口已经配置正确。

握手、复用与后台活动的取舍

TLS 握手包含密码学计算和网络往返,因此建立新连接时会有成本;已经建立的连接可以承载后续数据,具体复用方式取决于协议和实现。对偶尔打开网页的使用方式,连接建立时间可能比持续吞吐更明显。对长时间播放或传输,握手只占整个任务的一部分。不能仅看一次 Connectivity Test 的数值,就推断整段视频的体验或全天电量表现。

在 iOS 上,后台网络活动还会受应用任务、系统调度与当前网络影响。频繁断开再连接,可能增加握手次数;长期维持很多活跃请求,也可能使无线模块更久处于工作状态。合理配置的含义不是一律保持或一律断开,而是按真实使用需求管理连接。On Demand 控制连接触发条件,不会改变 Trojan 的密码或证书,也不是自动消除握手成本的开关。

若已有服务器提供有效证书、明确的密码与完整参数,Trojan 可以作为按标准 TLS 身份校验来管理的选项。选择时应重视证书维护是否可核对、错误信息是否能分层判断,而不是把 TLS 字样当作质量等级。证书故障与域名解析故障可能出现相似的表面现象,建议同时参阅DNS 解析失败排查,先找出失败发生在哪一步。

05 / 通用代理接口

HTTP 与 SOCKS5:转发能力不等于链路加密

从应用代理需求发展出的两条路线

HTTP 代理最初围绕 HTTP 请求的中转展开,也可以通过 CONNECT 方法建立到指定目标的隧道。SOCKS5 则提供较通用的代理协商机制,让客户端向服务器表达目标地址与端口,支持的命令及认证方式由双方共同决定。两者都能成为代理入口,但请求语义和握手格式不同,不能因地址与端口相同,就把一个 HTTP 入口按 SOCKS5 添加并期待兼容。

这类协议常见于用户已经管理的网络环境或明确提供通用代理接口的服务器。它们的重点是代理转发,不是默认提供与现代加密隧道相同的链路保护。是否存在 TLS、如何认证、是否允许特定目标,都需要单独确认。一个允许 CONNECT 的 HTTP 代理也可能对端口或访问范围设有限制,因此浏览网页成功并不能推出所有应用和所有目标都能经过该入口。

HTTPS 网站与安全代理不是同一个概念

通过 HTTP 代理访问 HTTPS 网站时,CONNECT 建立的隧道里可以承载网站自己的 TLS。网站内容可能因此得到端到端保护,但客户端与代理之间的代理握手及其他元信息,不会仅因目标网站用了 HTTPS 就全部变成加密。应将“网站连接使用 TLS”和“连接代理入口使用 TLS”分别判断;已有配置明确要求哪一种,客户端就应选择相应类型。

SOCKS5 本身也不等同于加密传输。用户名和密码认证负责识别使用者,不代表认证内容及后续数据自动获得机密性。不能把设置了密码理解成整段链路已经加密,也不应在不了解网络环境的情况下,把敏感认证材料当成普通备注传播。连接是否适合当前使用范围,需要结合底层网络、外层保护与服务端访问控制一起判断。

认证、解析与 UDP 是独立维度

HTTP 代理可能要求用户名和密码,也可能使用其他接入限制;SOCKS5 也有自己的认证协商。认证失败时,先确认服务器要求的方式是否受当前配置支持,再检查字符串本身。端口能够建立 TCP 连接不等于认证通过,因为端口连通只是连接初期的一步。服务端明确拒绝认证与连接超时不同,前者应查身份参数,后者还需检查地址、端口和网络路径。

目标域名在哪里解析,会影响可达性及排错方向。SOCKS5 能在请求中表达域名或地址,但具体使用哪一种,还受客户端解析策略和请求来源影响。不能仅凭协议名称推断每次解析必然发生在服务器端。如果某些域名失败而地址访问正常,应检查解析路径及返回结果;直接把域名替换成地址测试时,还要留意 HTTPS 的证书名称和虚拟主机可能因此改变。

SOCKS5 协议定义了 UDP 相关机制,但实际入口不一定启用或允许相应转发;普通 HTTP CONNECT 也不应被直接当成通用 UDP 通道。对实时应用,应先确认原始服务说明中是否包含需要的能力。若网页正常而实时功能异常,不要把 HTTP 与 SOCKS5 来回切换作为默认修复。两种协议所需的服务端支持不同,错误切换只会引入新的握手问题。

怎样判断是否适合保留

这类通用接口的优点是语义清楚、许多受控环境已有对应服务,适合按照既有网络设计使用。限制则在于安全保护、认证及转发范围可能需要其他机制补足。选型时先确认用途是少量网页请求、特定应用转发,还是需要更广的业务覆盖,再核对服务端实际允许的范围。不要根据协议名字简短,就判断它一定更快或一定更省电。

在 iPhone、iPad 上,实际成本还取决于连接数量、服务器响应和无线网络。代理层较少时,某些任务的处理可能简单;但如果目标限制导致频繁失败重试,总体活动反而可能增加。检查时应使用相同目标任务,分别记录解析、认证与内容加载结果。仅有列表中的测试结果不足以说明目标业务可用,常见现象与进一步检查路径可在常见问题中继续查阅。

06 / 网络层隧道

WireGuard:密钥、地址与路由要一起理解

它不是只替换密码的代理类型

WireGuard 面向网络层加密隧道,使用公钥身份和固定的密码学设计来建立对等连接。与只表达单次代理目标的协议相比,它还涉及隧道内地址、对端和允许通过的地址范围。因此,配置里出现地址段和密钥并不是多余内容,而是描述网络关系的必要部分。仅有服务器地址和一个密码,通常不足以还原一份 WireGuard 配置。

这种设计适合已有明确隧道规划的网络,但要求双方对地址与路由有共同认识。用户在 Shadowrocket 中使用 WireGuard 作为出口时,仍需区分客户端自己的规则选择与 WireGuard 配置中的地址约束。前者决定请求是否交给该出口,后者影响隧道怎样接收及转发相关流量。两层限制同时存在时,只检查其中一层,可能得出相互矛盾的判断。

Private Key 与 Public Key 不能互换

Private Key 属于本端身份材料,应当妥善保管;Public Key 用于让对端识别相应身份。客户端需要知道服务器的公钥,服务器也需要配置与该客户端相对应的公钥。不能把服务器公钥填成本端私钥,也不能因为字符外观相似,就认为密钥可以互换。若配置使用 Preshared Key,它属于额外的共享材料,双方必须一致,不能凭空添加或自行生成后只修改一端。

隧道内地址不是服务器公网地址。前者用于隧道内部网络关系,后者用于找到实际接收 UDP 数据的 Endpoint。填写地址时应保留原配置要求的前缀长度;将一个隧道内地址误填为 Endpoint,客户端可能根本无法从当前网络到达。端口同样属于 Endpoint 的组成部分,不能照常见示例推断。已有配置使用域名时,还需要保证连接前能完成该域名的解析。

Allowed IPs 与保持活动的边界

Allowed IPs 用来描述与对端相关的允许地址范围,并参与路由选择及来源约束,具体呈现受实现方式影响。范围过窄可能漏掉需要经过隧道的目的地,范围过宽则可能与原有网络规划冲突。不要为了“全部能用”就随意覆盖原值。需要访问私有地址时,还应检查本地网络是否已有重叠地址段;地址重叠可以造成流量走向错误,但不是密钥认证失败。

Persistent Keepalive 用于在需要时维持网络地址转换映射,特别是在本端处于某些转换设备之后、又需要接收对端数据的场景。它不是越频繁越可靠的通用设置。过于密集的周期会增加空闲时的数据活动,在移动网络上可能影响无线休眠。若原配置没有要求,应先观察是否确有映射过期造成的恢复问题,再按实际网络条件处理,而不是无条件加上固定周期。

MTU 与“部分网页卡住”

隧道增加了封装开销,实际路径可容纳的数据包大小因此需要考虑。MTU 不合适时,有时会出现小请求正常、较大响应或特定站点卡住的现象。出现这种情况,不应立即换密钥;应先检查路径与封装条件。调整 MTU 需要基于原始值和可重复测试,小幅验证并保留记录。随意抄一个数值可能掩盖问题,也可能在另一种网络上引入新的分片或效率损失。

WireGuard 使用 UDP 承载,网络是否允许相应往返是基础条件。切换 Wi-Fi 与蜂窝网络后,端点和映射状态会变化,恢复效果还受网络策略影响。UDP 不可达时,增加保持活动并不能让被阻断的路径自动可用。应先确认 Endpoint、端口和网络条件,再观察握手与实际业务;只看到客户端处于连接状态,不能判断隧道内路由已经成功。

在速度与电量方面,较精简的协议设计有其计算优势,但设备上的总开销仍包含用户态处理、无线收发、保活与业务负载。它不是任何场景都优于应用层代理的结论。已有网络明确提供完整密钥和地址规划时,可以按该规划使用;只为导入一条普通代理分享链接时,则不应强行改成 WireGuard。选型首先服从服务端能力和网络目标,而不是字段数量或协议名气。

07 / QUIC 与拥塞控制

Hysteria2:先验证 UDP,再讨论吞吐

围绕变化链路组织传输

Hysteria2 基于 QUIC 构建代理传输,QUIC 本身通常运行在 UDP 之上,并将安全握手与可靠传输等能力结合。它的设计关注点包括在延迟和丢包变化时组织数据发送,而不是单纯减少一个密码字段。UDP 是底层承载方式,不代表交付给应用的数据都不可靠;QUIC 可以在其上提供可靠流,因此应把底层数据包与上层业务语义分别理解。

这一背景说明它为什么值得在某些变化较大的链路中测试,也说明它为什么不是所有网络的默认答案。网络必须允许相应 UDP 路径,服务器也必须提供 Hysteria2 入口。若网络策略不允许该路径,客户端无法仅靠改变带宽数值完成连接。若业务本来受目标站点限速,换一种拥塞控制方式也不会消除目标端的限制。

认证、证书与附加字段仍是前提

基础参数包括服务端地址、端口、认证材料及 TLS 相关信息。认证文本应与原始配置一致;若服务端使用特定的组合格式,不要自行拆分为用户名和密码。Server Name 需要符合服务端证书及部署要求,其用途与前文 TLS 章节相同。设备时间、证书信任链和名称不一致,都可能使握手失败,这类错误不应通过提高发送速率来处理。

部分配置包含额外的混淆信息,这只在服务端启用相应机制时才需要。填写了错误的附加密码,可能使服务器无法正确识别初始数据。不能因为另一条记录有这一字段,就给所有 Hysteria2 记录补上。导入后应核对完整参数集,并确认分享材料属于 Hysteria2,而不是仅凭相近名称判断兼容;协议代际不同,认证与封装约定也可能不同。

带宽参数不是测速结果

某些配置方式允许声明上行和下行带宽,这些值可能影响发送行为或相应拥塞控制模式,不是服务器承诺的速率。把数值填得很大,不会增加无线容量或服务器出口容量,反而可能造成排队、丢包与重传。参数是否需要填写、如何与服务端协商,应以已有部署要求和当前应用可用选项为准;不能把某个示例数字作为所有网络的最佳值。

若需要评估带宽设置,应区分上行与下行,并观察其他业务是否受到影响。单次大文件传输看似更快,但同时打开网页明显变慢,可能意味着队列积压,而不是综合体验改善。蜂窝网络容量会随位置和负载改变,固定参数很难覆盖全部条件。较稳妥的做法是保留原始配置,采用保守且可验证的变化,每次只改一个方向,再重复同一组任务。

丢包、网络切换与电量

QUIC 的流机制可以减少某些跨流等待,但无法消除无线链路自身的丢包成本,也不能让同一可靠流绕过所有缺失数据。拥塞控制需要根据反馈组织发送,服务器实现与网络条件都会影响结果。因此,“基于 UDP”不等于“任何情况下都更快”。如果某个网络中的 UDP 质量较差,传统 TCP 路径在实际业务中也可能更稳定,应通过测试而非口号判断。

在 iPhone 上持续高吞吐时,无线收发和设备温度可能成为重要因素。激进发送导致的重传会消耗数据活动,频繁重连又会增加握手。电量比较应在相同信号、相近温度和一致任务下进行,避免把一次长时间测速与另一种协议的空闲状态比较。设备发热或网络切换期间的短暂结果,只能说明当时条件,不能形成固定的协议电量排名。

如果只有 Hysteria2 在某个网络失败,而同一服务器提供的其他已确认入口可用,先检查 UDP 路径、端口与证书,再核对认证和附加字段。不要同时改写 DNS、规则和带宽参数,否则无法定位原因。若出现连接成功但网页加载异常,则继续检查目标解析、规则命中及实际业务请求。本节提供的是选型和诊断方法,不对某条连接作速度承诺,也不替代服务器端的参数说明。

先建立参数正确的基线,再观察持续传输。更高的声明带宽不等于更高的可用带宽。

08 / 选型与复核

按已有条件选择,再用业务验证

先排除服务端不支持的组合

协议选择的第一步不是比较名称,而是列出已有服务器实际提供的入口。只有 Shadowsocks 参数时,就先核对对应方法;已有完整 WireGuard 配置时,才具备讨论隧道地址和密钥的基础。订阅中同时包含多种类型,也不意味着每条记录具有相同服务器、相同路径和相同资源条件。比较结果可能反映整个部署差异,不能全部归因于协议本身。

第二步是明确业务需求。主要浏览网页时,应重视首次加载、解析和短连接表现;持续传输时,应重视稳定吞吐与设备温度;实时应用还需确认 UDP 或相关转发能力。需要访问已有私有网络时,地址规划和路由往往比单次延迟更重要。选型应围绕可验证的任务进行,而不是追求一个同时覆盖全部场景的排名。

已有条件优先核对不要据此推断
Shadowsocks 入口方法、密码、UDP 支持算法名称决定全部速度
VMess / VLESS 入口UUID、传输、TLS、路径同一 UUID 可跨协议使用
Trojan 入口密码、证书、Server Name端口可达等于认证成功
HTTP / SOCKS5 入口认证、保护方式、转发范围有密码等于整段链路加密
WireGuard 配置密钥、Endpoint、地址与路由握手成功等于所有地址可达
Hysteria2 入口UDP、TLS、认证、发送参数声明带宽等于真实吞吐

建立可重复的测试顺序

先保存当前能工作的配置,并确认测试期间选中了哪条 SERVER 记录。固定网络、Global Routing 姿态和访问目标,停止不相关的大流量任务。先做基本连通性检查,再打开实际网页或应用,最后才进行持续传输。每轮记录是否成功、首次响应是否异常、是否在一段时间后中断,不必追求一个孤立的最小延迟数字。可重复的现象比偶然的最好结果更有参考价值。

测试电量时,应把空闲保持与持续使用分开。保持屏幕亮度、信号条件和任务时长大致一致,并观察设备温度。系统电池统计是一个观察入口,不是实验室功耗仪;统计区间包含其他后台活动,百分比还受总耗电影响。若无法控制这些条件,就只记录“在当前任务下观察到的表现”,不要把它写成某种协议的固定属性。

按失败阶段走排错分支

完全无法连接时,先查服务器地址解析与端口路径,再查协议类型、身份参数和外层传输。出现明确的证书错误时,转向名称、设备时间与信任链;出现认证拒绝时,检查密码、UUID 或密钥映射。连接后仅部分目标失败,应查看规则命中、DNS 结果和目标自身状态。连接一段时间后失效,则记录是否伴随网络切换、映射过期或持续大流量,避免每次都从密码开始重填。

Connectivity Test 只能反映其执行的测试,不能代替所有实际业务。若测试有结果但网页打不开,可以先比较不同域名,再检查域名解析和最终策略;若只在 Config 下失败,可与临时的 Proxy 姿态对照,以判断是否与分流有关。对照完成后恢复原配置,并只保留已经证明有效的调整。需要逐步操作时,返回快速上手使用说明,不要一次修改多个页面的选项。

保留记录,避免配置漂移

订阅更新可能改变入口、参数或备注。更新后出现异常时,应先确认记录是否已替换,以及当前仍选中哪一条;手工编辑订阅生成的记录,也可能在后续更新时被覆盖。可以保存不含敏感材料的测试笔记,记录字段类别和现象,但不要把完整密码、私钥或带认证信息的订阅地址作为公开排错内容。分享页面截图前,也应检查是否暴露了这些信息。

最终应保留一套用途清楚、参数可追溯、业务验证通过的配置,而不是积累大量无法解释的试验选项。协议负责连接格式,传输负责承载,TLS 负责对应层的保护,规则决定出口选择;任何一层都不能代替其他层。购买与恢复问题查阅已购恢复说明,连接现象查阅常见问题,配置结构则查阅相关日志文章。按这一分工检查,才能把每次调整限制在有证据支持的范围内。

Shadowrocket 正版下载