官方手册 · 协议技术参考

Shadowrocket
协议类型与参数参考

先核对服务器支持的协议,再理解认证、传输与规则的分工。协议名称不是速度排名,也不能代替实际连接测试。

Shadowrocket 覆盖 iPhone、iPad、Mac、Windows、安卓和 Linux。iPhone / iPad 版 App Store $2.99 一次性付费,Mac(Apple 芯片与 Intel)、Windows、安卓、Linux 版免费;系统要求以 App Store 页面标注为准。获取渠道与安装放行说明见获取应用,电脑与安卓安装包由本站 /dl/ 提供。

本页以用户已有自己的订阅或服务器信息为前提,重点解释如何在 Add Server 中选对类型、读懂字段以及定位协议层故障。首次连接请先沿着快速上手主线完成导入、选择与验证,再回到本页查阅具体协议;本页不是重复操作步骤的教程。

认证与传输分开核对 以服务端参数为准 比较相同网络与目标
01 / REFERENCE

协议选型:先拆分连接的层次

从已有信息确定可选范围

选择协议的第一步,不是比较名称,而是确认服务器实际开放了什么。已有订阅通常包含类型、地址、端口和认证信息,导入后应先保留原始参数,再逐项核对。手动添加时,Add Server 的类型必须与服务端一致;把同一个地址从 Shadowsocks 改成 Trojan,并不会让服务器自动使用另一种协议。若只有一个完整配置,就先验证它,不要为了尝试而改写认证字段。

一次连接至少涉及四层:设备到服务器的网络可达性、协议身份认证、承载数据的传输方式,以及客户端决定哪些请求进入该连接的规则。地址和端口错误属于可达性问题;密码或 UUID 错误通常属于认证问题;WebSocket 路径不匹配属于传输问题;网站没有进入预期策略则可能属于规则问题。这些层次可以分别失败,因此“开关已打开”只能说明连接服务启动,不能证明所有请求都已成功送达。

代理协议、传输与加密不是同一个字段

Shadowsocks、VMess、VLESS、Trojan 描述不同的代理协议设计,TCP、UDP、WebSocket 则涉及数据承载方式,TLS 负责连接中的身份验证与加密保护。部分类型把这些功能组合在一起,部分类型要求外层另行提供。订阅里出现多个相关字段并不一定是重复设置;核对时要保留组合关系,不应因为已经填写密码,就认为 TLS 的 Server Name 可以随意删除。

速度也要分开观察。首次打开网页包含域名解析、建立连接、完成握手和下载内容,单次延迟测试通常不能覆盖整个过程。长文件下载看持续吞吐,交互应用更关心往返时延与抖动,网络切换则考验重连行为。协议改变的往往只是其中一部分,服务器负载、跨网路径和无线信号仍可能成为主要限制。因此,本手册不提供脱离网络条件的固定速度或耗电排序。

层次核对内容常见现象
网络入口地址、端口、TCP / UDP 可达性连接超时,尚未进入认证
协议认证密码、UUID、密钥与方法服务器可达,但会话建立失败
传输保护TLS、Server Name、路径与 Host证书错误或传输握手失败
请求分流Config、规则顺序与策略只有某些请求没有按预期处理

在 iOS 上把电量归因做完整

iOS 的电量消耗不只来自密码运算。无线电被频繁唤醒、连接反复失败重试、后台应用持续上传,都会延长设备活跃时间。一个理论上计算量较少的协议,如果需要不断重新握手,也可能比保持稳定的另一种连接更耗电。对比时应记录屏幕是否点亮、使用 Wi-Fi 还是蜂窝网络、测试持续多久,以及是否同时运行视频或下载任务,避免把整机耗电都归因到客户端。

规则模式同样影响测试范围。Global Routing 的配置、代理、直连分别对应 Config、Proxy、Direct:Config 按当前配置分流,Proxy 将适用流量交给所选代理策略,Direct 用于直接连接。排错时可以暂时改变模式来隔离规则影响,但一次只改变这一项,测试结束恢复原状。若切换模式与更换协议同时进行,即使结果改善,也无法确定是哪一步起了作用。

实际选型顺序应当是:先满足服务端兼容,再满足业务需要,最后比较设备上的表现。确认是否需要 UDP、是否涉及内网地址、是否经常在网络之间切换,再在现有可用配置中做同条件测试。需要快速认出各种类型,可结合协议概览文章阅读;首次导入不顺利时,则回到快速上手检查信息是否完整,而不是直接重写整份配置。

02 / SHADOWSOCKS

Shadowsocks:对称加密与精简转发

设计背景与边界

Shadowsocks 的设计重心是以相对精简的协议完成加密代理转发:客户端向服务器描述目标,再由服务器建立到目标的连接。它主要依赖双方约定的密码和加密方法,不以网站证书作为基本认证条件。理解这一点有助于区分字段:普通 Shadowsocks 配置中的 Password 与 Method 是一组必要条件,不能把另一个协议的密码原样套入,也不能仅因端口相同就判断两种服务可以互换。

不同加密方法的报文格式和密钥要求可能不同。较新的方法与较早的方法并非只存在“强弱”差异,还可能有不同的密钥编码、长度及实现兼容要求。服务端给出哪种方法,客户端就应选择哪种方法;若列表没有对应选项,应确认信息是否适用于当前客户端,而不是寻找名字相近的选项替代。导入后仍应检查方法名称,尤其注意订阅转换过程是否遗漏了它。

地址、端口、密码与方法逐项核对

Server 填写服务器域名或 IP 地址,Port 填写实际监听端口。地址通常不包含网页路径,端口也不应混入地址输入框。Password 必须按提供的信息完整保存,注意复制时的空格、换行以及全角字符。Method 表示具体加密方式,不是任意偏好。若地址可以解析而连接持续失败,应同时核对端口与方法,不要把“域名能打开网页”当作代理端口正常的证据。

有些配置还附带额外传输参数,这些参数不属于所有 Shadowsocks 服务的共同要求。只有在已有信息明确提供时才启用,并保持对应的名称和参数一致。不能看到其他配置里有某个选项,就给当前连接照样添加;额外封装会改变服务端预期的数据格式。若导入条目与手动填写的结果不同,可以逐字段比较,但先保留导入条目作为参照,避免修复过程中丢失原始信息。

字段含义检查方法
Server / Port服务入口核对域名与监听端口,不附网页路径
Password认证及密钥派生相关信息完整复制,检查空格与编码
Method加密方法与报文约定与服务端逐字一致
UDP数据报转发能力同时确认服务端、网络与目标需求

TCP 成功不代表 UDP 已经可用

网页浏览大多可以通过 TCP 完成,但实时通信、部分域名解析和使用 QUIC 的应用可能涉及 UDP。Shadowsocks 的 TCP 与 UDP 转发需要分别满足条件:服务端支持相应能力、网络允许对应数据通过、客户端配置没有关闭它。网页正常而实时业务失败时,应检查这条分支。不要仅凭一次网页加载,就断言当前连接适合所有应用,也不要只凭一个应用失败就认定整条连接失效。

在 iPhone 和 iPad 上,精简转发通常意味着需要关注的封装层次较少,但这不等于始终更快或更省电。设备芯片对算法的处理效率、长连接数量以及网络重传都可能改变实际结果。若同一配置在 Wi-Fi 正常、蜂窝网络超时,应先比较入口端口与网络可达性;若只有高负载时明显变慢,则要结合服务器负载和持续吞吐观察,不能从协议名称直接得出结论。

排错可以按“信息是否完整、入口是否可达、认证是否一致、具体业务是否支持”四步进行。先查看订阅更新是否成功,再核对当前选中的条目,避免修改了一个条目却在测试另一个。认证相关错误应回查密码和方法;超时优先查地址、端口和当前网络;只有部分请求异常时再看规则与 UDP。这样能够保留明确的因果关系,而不是在多个设置之间反复试探。

当已有服务器只提供 Shadowsocks 时,优先使用完整匹配的配置即可,不必为了协议名称更换类型。若用户同时持有多种可用配置,再以相同目标和相近时间比较网页首次加载、持续传输与后台待机表现。记录改善出现在哪个环节,比给协议贴上“轻量”或“高速”的结论更有用,也更便于之后在网络条件变化时重新判断。

03 / VMESS · VLESS

VMess 与 VLESS:认证和传输分别核对

相似字段不代表相同协议

VMess 将用户身份认证与协议自身的数据保护机制结合,配置中常见 UUID、加密选项和传输设置。VLESS 则采用较精简的认证与转发设计,协议本身不提供同等的内容加密职责,通常需要配合适当的外层安全机制。二者都可能使用 UUID,也都可能搭配 TCP 或 WebSocket,但这只是字段形态相似,不能据此混用类型。服务器标明 VLESS 时,选择 VMess 并填入同一 UUID 仍然不匹配。

这类设计将协议与传输组合起来,能够适应不同部署方式,也增加了核对字段的数量。阅读已有信息时,建议按“协议类型、用户认证、底层传输、TLS 保护”分成四组,而不是把所有字段看成一张平面清单。若某一组缺失,应向原信息来源确认,不要从域名或端口猜测。端口使用常见的安全网页端口,也不能单独证明服务启用了 TLS。

UUID、加密与时间条件

UUID 用来标识协议中的用户身份,不是任意备注。复制时要保持完整结构,避免把显示名称、订阅地址或其他凭据填进这一栏。VMess 的加密相关选项应遵循提供的参数;若涉及旧配置中的额外认证参数,也应按原值保留,不把历史教程中的固定数字当作所有服务的标准。客户端导入结果与服务端实际设置一致,比追求某个通用示例更重要。

设备时间也可能影响认证或外层证书验证。发生认证失败时,先确认系统日期、时间与时区处于正常状态,再检查 UUID 和相关参数;不要通过随意改变系统时间来绕过错误。若刚更新订阅后异常,而旧条目仍可连接,可以对比协议类型和认证字段是否变化。需要注意,导入成功只表示客户端解析了信息,不表示远端已经接受这组身份。

WebSocket 的 Host 与 Path 各有职责

WebSocket 为代理数据提供一种承载方式。Path 表示服务端用于接收升级请求的路径,通常需要保留前导斜杠和大小写;Host 则用于 HTTP 请求中的主机标识。它们与连接入口地址可能相同,也可能不同,具体取决于部署方式。缺少路径、把路径误填进 Server,或者让 Host 与服务端期望不一致,都可能使底层 TCP 已连接,却无法完成传输握手。

TLS 的 Server Name 又是另一层含义,主要参与握手中的服务器名称指示与证书名称验证。Host 正确不保证 Server Name 正确,反之亦然。若已有配置明确给出三者,应分别填写,不要为了“统一”而全部改成服务器 IP。通过 IP 连接但使用域名进行证书验证是可能的安排,前提是原有服务端配置确实支持,而不是客户端自行拼凑。

字段组常见内容错误影响
协议身份VMess / VLESS、UUID类型或认证不匹配
数据保护协议加密选项、TLS双方安全参数不一致
传输承载TCP / WebSocket、Path无法建立预期传输
名称字段Host、Server Name路由或证书验证异常

理解额外封装的实际代价

在 iOS 上,增加传输层可能带来额外握手、报文头和缓冲处理,但实际代价取决于连接是否复用以及业务持续时间。短网页请求可能对首次握手敏感,持续下载则更容易受链路吞吐限制。不能因为 VLESS 的协议职责较精简,就断言所有 VLESS 组合都比所有 VMess 组合快;若二者所用服务器、TLS 和传输方式不同,比较结果首先反映的是整套连接,而非单独协议。

只有当用户已有多种服务端配置时,才有比较组合的意义。先固定规则模式与目标,保留一份可工作的基线;随后分别观察首次请求、连续请求和网络切换后的恢复。若仅 WebSocket 组合失败,应回查路径与 Host;若所有 TLS 组合都报证书相关错误,则优先检查系统时间和 Server Name。将失败限定到一组字段,可以避免把认证、传输和规则问题同时扩大。

04 / TROJAN · TLS

Trojan:先建立 TLS,再完成协议认证

把证书身份与用户密码分开理解

Trojan 将代理会话放在 TLS 连接之内,先依靠 TLS 建立受保护的通道,再在通道中提交协议认证与目标信息。这里存在两个不同身份:证书用于验证所连接的服务器,Password 用于证明客户端具有访问权限。密码正确不能弥补证书名称错误,证书有效也不能证明密码被服务器接受。排错时应按握手顺序观察,而不是把所有失败统一解释为密码错误。

这种组合把较多安全职责交给 TLS,因此服务器名称、证书有效期与设备信任条件尤为重要。它并不意味着用户需要手工填写每一种 TLS 选项;已有订阅通常已经给出必要设置。先维持导入结果,再根据错误定位缺失项。若在没有完整参数的情况下随意尝试不同名称,可能让连接到达另一个服务入口,导致现象更加难以解释。

Server、Server Name 与证书链

Server 是网络连接实际要访问的地址,Server Name 是 TLS 握手和名称验证使用的重要信息。使用域名连接时,两者经常一致;使用 IP 连接时,则可能仍需保留原有域名作为 Server Name。证书验证还涉及有效期与信任链,因此名称正确只是必要条件之一。若证书已经过期或中间证书配置有误,应该修正服务端,而不是反复更换客户端密码。

设备时间偏差、网络认证页面和错误的域名解析,都可能制造看似相近的 TLS 故障。公共 Wi-Fi 尚未完成网页登录时,访问可能被引导到认证入口;若解析得到错误地址,也可能连到不属于该服务的证书。遇到这类问题,应先确认网络本身可以正常使用,再检查域名解析结果与 Server Name。不要在尚未确认连接对象时提交更多凭据或扩大信任范围。

认证、传输与业务支持的边界

Trojan 的 Password 应完整保留大小写和符号,不要把订阅链接中的整段文本直接填入。若已有信息额外指定传输方式,也必须与服务端一致;不能因为普通 Trojan 常见于某种承载方式,就删除配置里明确要求的附加字段。导入后可以检查类型、地址、端口、密码和 TLS 名称五项,再查看其他传输参数。这个顺序能够先排除最常见的结构错误。

UDP 能否正常使用仍取决于服务端支持、客户端设置和实际网络条件。即便协议能够转发某类数据,也不代表所有应用都具有相同表现。实时业务对延迟与抖动更敏感,长时间下载则更容易受服务器出口带宽影响。若普通网页正常而某个实时应用异常,应单独验证相应业务,不要以网页成功替代业务测试,也不要盲目增大各种超时参数来掩盖问题。

iOS 上观察连接复用与重连

TLS 握手需要交换数据并进行计算,首次连接的成本与后续稳定传输并不相同。在频繁创建短连接的场景中,握手数量可能影响响应和电量;在长连接持续工作时,这部分成本被分摊,链路质量往往更加重要。服务端与客户端是否使用相关复用机制,也会改变观察结果。因此,测试时应分别记录首次打开和连续访问,不要把已经建立会话后的速度当作冷启动表现。

从 Wi-Fi 切换到蜂窝网络可能改变设备地址和可达路径,已有 TCP 连接通常需要重新建立。若切换后长时间没有恢复,应先停止当前任务,确认新网络正常,再测试重新连接的时间;不要立即清空配置。后台连接反复失败会增加重试与无线电活跃时间,表现为耗电上升。此时应查失败原因,而不是先把加密运算认定为耗电来源。

如果用户已有稳定可用的 Trojan 配置,日常使用中更重要的是保留正确的证书验证与认证参数,并在订阅更新后确认它们没有被意外覆盖。若需要与其他协议比较,应选择相近网络路径、相同目标与相同测试时段,明确记录比较的是整套服务表现。协议层的说明能够帮助定位问题,但不能替代对服务端运行状态和业务目标可达性的核实。

05 / HTTP · SOCKS5

HTTP 与 SOCKS5:区分代理入口和目标连接

两种通用代理的设计起点

HTTP 代理来自网页请求转发场景,客户端可以向代理提交请求,也可以通过 CONNECT 请求建立到目标的隧道。SOCKS5 则是更通用的代理协商协议,用来描述需要连接的目标地址与端口,不要求业务内容本身是网页。它们都能出现在 Shadowrocket 的服务器类型中,但仅凭类型名称,不能推断入口已加密、支持所有业务,或具备与其他协议相同的认证机制。

需要特别区分“到代理服务器的连接”和“代理服务器到目标网站的连接”。目标网站使用 HTTPS,保护的是相应 TLS 会话中的内容;这不自动证明设备到代理入口的全部协商信息受到外层加密保护。普通 HTTP 或 SOCKS5 入口本身不应被当成加密隧道的同义词。应依据已有服务的说明确定入口是否受保护,以及是否适合跨越不受信任的网络使用。

HTTP CONNECT 与 HTTPS 入口并非同义

通过 HTTP 代理访问安全网站时,CONNECT 通常负责申请一条到目标的连接,随后目标 TLS 数据在其中传输。支持 CONNECT 不等于代理入口本身使用 TLS;这是两个独立概念。某些入口还会限制允许连接的目标端口,导致常见网页正常而其他业务失败。遇到这种情况,应确认服务允许的范围,而不是不断修改目标域名或认为客户端规则一定写错。

如果已有信息明确提供受 TLS 保护的 HTTP 代理入口,就应按其要求选择对应类型和相关证书名称设置。反之,不能只把端口改成常见安全端口,就认为普通入口已经变成安全入口。认证方式也要一致:用户名和密码应放在相应字段,不宜把它们拼成地址后再尝试导入。若服务采用特定认证限制,还需确认客户端与服务端的具体支持情况。

SOCKS5 的地址类型与 UDP 条件

SOCKS5 可以在协议中表达 IP 地址或域名,但实际由哪一端解析域名,还取决于客户端的请求处理和 DNS 配置。若设备已把域名解析成 IP,后续交给代理的可能就是 IP;若保留域名形式,则可能由远端处理。不能只看“SOCKS5 支持域名”就推断所有解析都发生在远端。排查某个域名失败时,应同时观察 DNS 与代理请求,而不是将两者混为一谈。

SOCKS5 规范中的 UDP ASSOCIATE 提供数据报转发机制,但服务器是否实现、是否允许,以及网络是否可以到达其 UDP 转发地址,都需要分别满足。只有 TCP CONNECT 可用的入口,可能足够处理网页,却不满足实时应用需求。如果业务必须使用 UDP,应先从已有服务的能力说明确认支持,再做业务级测试。单次 TCP 延迟成功不能验证这部分功能。

检查项HTTPSOCKS5
主要协商方式请求转发或 CONNECT目标地址与连接命令
入口加密取决于入口是否另有 TLS基础协议本身不提供内容加密
用户认证按入口支持的方式配置按入口要求填写用户名与密码
UDP不能从普通 CONNECT 推断支持需服务端与网络支持对应机制

适用范围与 iOS 测试方法

这两种类型常用于已有的组织网络入口、测试环境或特定业务代理,选用理由通常是兼容既有设施,而不是协议名称带来的性能优势。只有在用户已经获得允许使用的地址和凭据时,才进行配置。若入口仅在指定网络可达,离开该网络后失败是部署边界,不一定是手机设置问题;需要先确认访问范围,而不是重复导入相同信息。

在 iOS 上,协议协商较简单不代表整体耗电一定更低。若入口限制连接数、频繁关闭会话,或应用持续重试不支持的业务,无线电活跃时间仍会增加。对比时应把网页加载与 UDP 业务拆开,并观察失败是否集中在某类目标。确认权限、入口保护和业务支持之后,再判断是否适合当前场景;不要用关闭认证或忽略证书验证的方式追求一次偶然成功。

06 / WIREGUARD

WireGuard:密钥身份、隧道地址与路由范围

先理解它处理的是网络层数据

WireGuard 以网络层隧道为设计基础,与“为某个目标建立代理连接”的思路不同。配置除了远端地址,还需要本端地址、密钥身份和允许进入隧道的地址范围。把它放进客户端的统一连接管理中,并不会消除这些网络层条件。用户应取得完整配置,而不是仅凭一个域名和密码尝试手动拼接;缺少隧道地址或对端公钥时,通常无法建立符合预期的通信关系。

WireGuard 使用公钥标识通信对端,本端私钥用于证明本端身份,对端公钥用于指定接受的远端身份。它们不是可互换的两个字符串。客户端私钥应当保密,对端服务器也必须配置与该客户端对应的公钥;只在手机里填入一组新密钥,服务器不会自动认识它。若配置由管理方提供,应保留双方已经约定的密钥配对,不随意重新生成后覆盖。

Endpoint、Address 与 Allowed IPs

Endpoint 表示隧道对端的网络入口,通常由主机和 UDP 端口构成;Address 表示本端在隧道中的地址,不是服务器公网地址。Allowed IPs 在 WireGuard 的基础语义中同时关联目标路由范围与对端允许的地址范围,客户端集成后的具体处理还要结合应用设置。理解这些职责有助于排查“握手成功但访问失败”:身份握手只证明双方建立了会话,不证明每个目标都具有正确路由。

若需要访问组织内网,目标网段必须与已提供的配置范围相符,服务端也需要具备转发与返回路径。若本地 Wi-Fi 网段恰好与远端内网重叠,还可能出现路由选择歧义。此时反复更换密钥通常没有帮助,应先确认目标地址实际走向何处。对于 IPv6,也要检查是否有相应地址和路由条件,不能只因 IPv4 可用就假设另一套地址空间同时可用。

字段职责注意事项
Private Key本端身份保持私密,不发到公开排错记录
Public Key对端身份区分本端公钥与服务器公钥
Endpoint远端网络入口确认 UDP 地址及端口可达
Address / Allowed IPs隧道地址与允许范围核对网段、返回路径和地址冲突

Keepalive 与移动网络的取舍

WireGuard 使用 UDP,移动设备经由地址转换设备访问远端时,空闲映射可能过期。Persistent Keepalive 的目的之一是通过周期性报文维持相关映射,不是提高带宽。较频繁的保活意味着更多无线电活动,较少的保活则可能使某些网络上的空闲后恢复变慢。应遵循已有配置,并在确有空闲恢复问题时针对性验证,不套用对所有手机都相同的固定间隔。

网络切换后,底层出口地址可能改变,WireGuard 的机制允许在满足条件时适应对端地址变化,但实际体验仍受新网络的 UDP 可达性、地址转换和服务端策略影响。Wi-Fi 正常、蜂窝网络不通时,先比较 UDP 是否可达,再看运营网络和对端限制。不能把具备地址更新机制理解为所有切换都不会中断,也不应以一次恢复较快就推断任何网络都能维持会话。

MTU 与 DNS 要分别验证

隧道封装会占用报文空间,路径可承载的有效大小与 MTU 设置不匹配时,可能出现小请求正常而大响应停滞的现象。但这种现象也可能来自丢包或服务器问题,所以调整前先保存原值,每次只改一个参数并重复相同请求。不要将网上某个 MTU 数字当作通用答案,也不要因为网页打不开就立即把它调到很小,造成不必要的吞吐损失。

DNS 决定域名如何得到地址,路由决定数据发向哪里,两者在隧道场景中经常同时出现,却不具有相同职责。直接访问已知内网地址成功、使用名称失败时,应优先核对内网 DNS 及其可达路径。对需要内网互通的用户,完整的地址规划比协议测速更重要;对普通网页场景,则仍需结合 Shadowrocket 的实际策略验证请求是否进入预期连接。

07 / HYSTERIA2

Hysteria2:QUIC、UDP 路径与带宽参数

设计重点是传输行为,不是固定速度承诺

Hysteria2 以 QUIC 为基础组织代理传输。QUIC 建立在 UDP 之上,结合加密、连接管理和多路数据流,使其传输行为不同于普通 TCP 承载。这样的设计能够在某些高时延或丢包条件下提供不同的表现,但不能消除物理带宽限制,也不能保证在所有无线网络上更快。服务器、网络是否允许 UDP,以及拥塞控制相关参数是否合理,都会影响最终结果。

理解多路数据流时,也要保留边界:不同流之间可以减少某些传输层阻塞的相互影响,但同一条连接仍共享网络资源和拥塞状态。底层无线链路严重拥塞时,不会因为改成 QUIC 就凭空获得带宽。若对比时同时换了服务器或目标,结果很难归因到协议。应先确认现有服务支持 Hysteria2,再在同条件下与其他可用配置比较,而不是把协议名当作优化开关。

认证、证书与可选参数逐组核对

基本信息通常包括服务器地址、端口、认证信息和 TLS 相关名称。认证字符串必须与服务端一致,Server Name 与证书验证也应保持正确。虽然底层使用 UDP,TLS 的身份验证职责并不会因此消失。若认证失败,应回查认证字段;若证书验证异常,则检查名称、时间与信任链。二者的处理路径不同,不能通过反复修改密码解决一个名称不匹配的问题。

有的服务还提供额外混淆相关参数,这些字段只有在服务端明确启用并给出对应信息时才填写。客户端单独开启某个选项,会让服务端无法按原来的格式处理数据。导入订阅后若连接失败,可先与原始信息逐项比对,尤其检查参数是否在转换或手动编辑时被遗漏。不要把另一条连接的附加字段复制过来,也不要依赖默认值猜测服务端实际部署。

带宽字段不是购买额度,也不是越大越好

部分配置会涉及上传与下载带宽提示,这些数值可能参与具体拥塞控制行为。它们不代表客户端能够获得的带宽额度,也不是显示得越大速度越高。过高估计可能导致排队、丢包或抖动增加,过低估计则可能限制吞吐;具体影响还与协商和服务端策略有关。应先阅读已有配置说明,保持合理的实际链路预期,不将蜂窝网络瞬时峰值当作持续可用能力。

填写时还要核对单位与方向:上传指设备向外发送,下载指设备接收;不同界面或信息源的单位可能不同,不能直接复制一个裸数字后假定含义相同。若需要调整,先在稳定网络上观察多次持续传输,再小幅修改并记录效果。只测一个很短的文件,往往主要反映连接建立和缓存,不足以支持带宽参数判断,也不足以说明长时间使用的电量表现。

在 iOS 上分别观察吞吐、温度和恢复

高吞吐意味着更多数据处理、无线传输和应用活动,即使完成任务更快,短时间的功耗也可能更高。比较电量时应同时记录任务是否更早结束、屏幕状态与设备温度,不能只看某一刻电池下降的速度。若在蜂窝网络持续高负载下明显发热,先降低测试负载并确认信号质量;弱信号和反复重传也会推高整机能耗,不应只归因于协议计算。

若 Wi-Fi 可用而另一网络超时,可以先验证同一地址和端口的 UDP 路径;若小请求正常、持续传输不稳,再查丢包、拥塞参数和报文大小相关问题。网络切换后的恢复能力需要在实际设备上验证,不能仅由 QUIC 具备某些机制就推断客户端与服务端在所有组合下都能保持连接。对经常移动的使用场景,应把切换测试列为独立项目。

已有 Hysteria2 服务适合不适合当前任务,应从业务结果判断:网页是否稳定、长任务是否按时完成、实时通信是否出现抖动,以及后台空闲是否持续重试。若只是希望改进首次网页打开速度,应先排除 DNS 和 TLS 配置问题;若是持续下载受限,则再看路径和服务端能力。按照现象选择测试项,比在不了解单位和服务端条件时反复调大参数更有效。

08 / VALIDATION

场景验证:把协议、DNS 与规则分开排错

用同一套任务建立基线

协议比较应服务于实际任务。日常网页访问先看首次响应和连续加载;长文件传输看稳定吞吐与中途断连;实时通信看时延、抖动和 UDP 业务;内网访问则优先看地址规划、DNS 与返回路径。用户已有多个配置时,先选择一个能完成任务的基线,再比较其他配置。若所有配置都失败,应先检查当前网络和目标本身,避免在不具备测试条件时得出协议结论。

一次有效对比要尽量固定设备、网络、目标、规则模式与测试时间,暂停后台大流量任务,并记录是否为首次连接。每组重复几次,以常见表现而不是最好的一次作为参考。Connectivity Test 可以帮助筛查明显不可达的条目,但结果不等于完整网页体验,更不能证明 UDP、内网或长连接一定正常。将连接测试、实际访问和持续传输拆开,才能看到差异来自哪个环节。

Global Routing 三种模式用于隔离变量

Config 按当前配置规则决定连接策略,Proxy 用于把适用流量交给代理路径,Direct 用于直接连接。若 Config 异常而 Proxy 正常,通常应该回查规则与策略指向,而不是立即改密码;若两种需要代理的模式都失败,再回查入口、认证和传输。Direct 的测试只能提供本地网络基线,目标在直连条件下不可达时,也不能单独证明代理协议有问题。

下面片段展示按域名后缀选择策略、按地址段直接连接,并用最终规则处理其余请求的基本结构。示例属于 Shadowrocket 的 .conf 规则内容,不是可连接的服务器配置,也不包含认证信息。PROXY 需要在实际配置中对应有效策略;导入或修改前先备份,并确认当前 Config 确实选中了所编辑的文件。规则通常按顺序匹配,前面的宽泛条件可能使后面的具体条件无法生效。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY

域名规则依赖客户端在适当环节掌握域名信息,IP 规则则匹配地址;两者不能简单互相替代。网站可能涉及多个资源域名,应用也可能直接使用 IP,因此“主页面走了预期策略”不等于所有关联请求相同。GEOIP 结果还受到地址数据库与目标地址变化影响。只让指定网站使用代理的场景,可继续阅读指定网站走 PROXY 的规则说明,再根据自己的目标补充条件。

从错误现象回到相应层次

完全超时先核对网络、地址和端口;明确认证错误回查密码、UUID 或密钥配对;TLS 错误检查系统时间、Server Name 和证书;握手成功但业务失败,则进一步检查目标可达性、DNS、UDP 与路由。若只有一个域名失败,先测试其他已知目标;若所有域名失败而已知 IP 可达,再集中检查 DNS。每次只修改一组设置,验证后记录结果,不把多个猜测同时写入配置。

使用场景优先核对需要避免的结论
首次网页很慢DNS、握手、冷启动与目标响应单凭延迟值判断完整加载
实时业务异常UDP、抖动、规则与应用需求网页正常就认为所有业务正常
内网名称打不开内网 DNS、网段与返回路径只更换协议认证信息
后台耗电增加重试、保活、应用活动与信号把整机耗电全部归因于加密

保留可复现记录,再决定是否换协议

排错记录应包含设备网络、目标类型、Global Routing 模式、错误阶段和发生条件,不需要暴露完整订阅地址、密码或私钥。分享截图或文字前,应删除认证内容和个人标识;只保留有助于复现的协议类型与非敏感字段。已有订阅发生更新后,可以对比类型、传输与名称字段,但保留原条目,避免在尚未确认新配置可用时失去工作基线。

最终选择应以兼容性与可复现结果为准:能完成任务、切换后可恢复、持续运行没有异常重试,比一次测试的最高数值更有参考价值。常见导入与连接问题可回到快速上手的故障排查,界面词可查概念速查,功能行为可查功能说明。若问题落在服务端认证、证书或路由范围,应向已有信息的提供方核对对应配置,而不是在客户端不断更换无关选项。