Shadowrocket WireGuard 配置:PrivateKey、Peer 与 MTU 参数逐项说明

介绍在 Shadowrocket 中添加 WireGuard 类型服务器的步骤,逐项解释 PrivateKey、PublicKey、Address、MTU、Endpoint 等字段的含义与常见填写错误。

本文速览

本文适合已经持有自己服务商提供的 WireGuard 参数、准备在 Shadowrocket 手动配置的用户。先分清本机与 Peer 的密钥,再核对 Address、Endpoint 和 MTU,最后用 Global Routing 与连接现象定位问题。示例地址只说明格式,不是可用服务;排查过程不需要公开 PrivateKey 或完整配置。

一、添加前先确认参数属于哪一端

Shadowrocket(小火箭)是 Apple 平台的付费客户端,主要用于 iPhone 与 iPad。唯一获取入口是 App Store,开发者为 Shadow Launch Technology Limited,应用 ID 为 932747118,采用一次性买断。系统要求以 App Store 页面标注为准。客户端买断 ≠ 线路套餐;本站不提供、不销售、不推荐节点或订阅。

WireGuard 使用密钥识别通信双方。配置中的 [Interface] 通常描述本机,[Peer] 描述远端。Shadowrocket 的服务器编辑表单不是原始配置文件编辑器,字段可能分开展示;填写时应按含义对应,不能把整个配置文件粘贴进单个字段。

32 字节
WireGuard 密钥的原始长度;配置中使用 Base64 表示
UDP
WireGuard 的外层传输;不能只检查同端口 TCP
51820
本文示例端口;实际必须填写服务商指定值

开始前应取得本机 PrivateKey、本机 Address、远端 PublicKey、Endpoint,以及服务商要求的其他参数。若配置含 PresharedKey,也要一并保留。只有一串 PublicKey 或一个服务器地址,不足以完成配置。服务端还需要登记与本机 PrivateKey 配对的 PublicKey,并允许对应的隧道地址。

二、从 Home 添加 WireGuard 类型服务器

先保留原始参数,再创建单独的测试记录。下列路径以英文界面词说明;各字段的排列以当前应用为准。不要把 WireGuard 原始配置当作 Subscribe 链接添加,也不要假设已有订阅中的其他协议参数能够直接转换成 WireGuard。

  1. 打开添加页

    进入 Home → 右上角「+」→ Type,选择 WireGuard。确认当前编辑的是单个服务器记录,而不是 Subscribe 项目。

  2. 填写远端

    把 Endpoint 对应的主机和端口填入服务器地址、端口字段。例如 vpn.example.com:51820 表示主机为 vpn.example.com,端口为 51820;若表单分栏,不要在主机栏重复附加端口。

  3. 填写本机

    按原始配置填写 PrivateKey 与 Address。Address 是分配给本机的隧道地址,不是 Endpoint,也不是当前 Wi-Fi 的局域网地址。

  4. 核对 Peer

    在对应字段填入远端 PublicKey。仅在服务商配置明确包含 PresharedKey 时填写该项;不要用 PublicKey 代替,也不要自行添加一个随机值。

  5. 保存并测试

    按原配置核对 MTU 等可用字段后保存,返回 Home 选中刚添加的记录。首次测试可暂用 Global Routing → Proxy,再开启 Home 的连接开关;首次建立系统 VPN 配置时按系统提示确认。

三、PrivateKey、PublicKey 与 Peer 的对应关系

最常见的密钥错误不是长度不对,而是填反了通信双方。PrivateKey 留在本机;Peer 的 PublicKey 用来识别远端。服务端配置中需要记录的则是本机 PublicKey。两端看到的 Peer 指向相反,因此不能把服务端整段 Peer 参数原样当成本机的 Peer 参数。

本机参数

PrivateKey
本机私钥,必须与服务端登记的本机 PublicKey 配对。
Address
本机隧道地址,例如 10.7.0.2/32;以分配值为准。
MTU
隧道接口允许的最大 IP 包长度,先遵循原始配置。

PrivateKey 与 Address 属于本机侧,不从远端 Endpoint 推算。

Peer 参数

PublicKey
远端公钥,必须与实际连接的服务端私钥配对。
Endpoint
远端可达的主机及 UDP 端口,例如 vpn.example.com:51820。
PresharedKey
可选的额外共享密钥;启用时两端必须一致。

Peer 表示通信对端,不表示订阅分组或规则策略组。

标准 WireGuard 密钥的 Base64 文本通常为 44 个字符,末尾包含 =。这个特征只能帮助发现截断或复制错误,不能证明密钥配对正确。复制时保留末尾字符,去掉误带入的空格、换行和引号;不要把 PrivateKey = 这样的字段名一并填入值中。

四、Address、Endpoint 与 AllowedIPs 不可混填

Address 描述隧道内的本机地址,Endpoint 描述隧道外的远端入口。以 10.7.0.2/32 为例,斜杠后的数值是 CIDR 前缀长度,不是端口。不要把它改成 10.7.0.2:32。如果服务商同时分配 IPv4 与 IPv6,应分别对应填写,不要自行生成一个看似相近的地址。

字段格式示例检查重点
Address10.7.0.2/32本机隧道地址;必须与服务端分配一致。
Endpointvpn.example.com:51820主机可解析,UDP 端口与远端监听一致。
IPv6 Endpoint[2001:db8::1]:51820这是组合形式的示例;主机与端口分栏时按字段分别填写。
AllowedIPs0.0.0.0/0, ::/0原始 WireGuard 配置中的 Peer 地址范围,不是 Shadowrocket 的 Rule 文本。
DNS10.7.0.1仅为格式示例;实际地址须可经当前路由访问。

上述域名及地址均用于说明语法,不能据此建立连接。Endpoint 不加 https://,也不填写订阅路径。若原始 Endpoint 使用域名,建立隧道前必须能够解析它;因此“连接后使用哪个 DNS”与“连接前能否解析 Endpoint”是两个不同问题。

在原生 WireGuard 配置中,AllowedIPs 参与 Peer 的出站选择与入站源地址检查。客户端常见的 0.0.0.0/0 与 ::/0 表示覆盖全部 IPv4、IPv6 地址范围;服务端对某个客户端的 Peer 往往只允许该客户端分配到的地址。两端不能机械地填写同一范围。Shadowrocket 中业务流量是否交给该服务器,还要看 Global Routing、当前 Config 和策略选择,不应把 AllowedIPs 当成应用内分流规则。

五、MTU 与 PersistentKeepalive 的调整边界

MTU 不是带宽数值。WireGuard 封装会增加外层数据开销,隧道内允许的包长度需要适配实际路径。原配置已指定 MTU 时先照填;未指定时先保留应用的默认处理。不要因为某个网页加载慢,就同时改 MTU、DNS、端口与密钥,否则无法判断哪项改动产生了影响。

PersistentKeepalive 用于定期发送保活包,常见用途是维持 NAT 映射,不是提升带宽。原始配置中的 PersistentKeepalive = 25 表示约每 25 秒发送保活;这是常见设置示例,不表示 Shadowrocket 的固定默认值。只有当前界面提供对应字段且服务商要求时才按其配置填写,不要把整行写进其他参数栏。

六、用 Global Routing 区分协议问题与规则问题

保存 WireGuard 记录只完成了服务器参数配置。Home 负责选择与连接,Config 负责规则配置,Settings 包含 On Demand 等设置。排查时先固定同一个服务器、同一个目标与同一个网络,再比较 Global Routing 的不同选项;不要切换服务器后把现象全部归因于规则。

Proxy

推荐

用于本轮初始排查:让进入 Shadowrocket 的一般业务流量按 Proxy 方式处理,减少 Config 规则分支的影响。仍需确认选中的是待测 WireGuard 记录;此选项不会修复错误密钥或不可达的 Endpoint。

适合:先验证 WireGuard 参数和远端转发能力

Config

按当前配置中的规则和策略处理流量。若 Proxy 下目标正常、Config 下异常,应检查规则顺序、命中的策略以及策略实际选用的服务器,而不是立刻重新生成密钥。

适合:参数验证完成后的规则分流与逐项核对

Direct

让一般业务流量直接连接。目标在此状态可访问,只能说明直连路径可用,不能证明 WireGuard 通道可用,也不适合用来确认 WireGuard 的出口结果。

适合:与直连网络现象作对照

Global Routing 中还可能使用 Scene 按场景切换路由设置。初次排查应先固定选项,不让场景条件改变测试路径。下面是 Config 中 [Rule] 段的语法示例,不是 WireGuard 服务器参数;测试前应先备份当前 Config,不要直接覆盖整个配置文件。

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

这些规则按顺序匹配:DOMAIN-SUFFIX 匹配域名后缀,IP-CIDR 匹配地址范围,GEOIP 按 IP 地理数据库判断,FINAL 承接前面未命中的流量。示例中访问 example.com 的子域名会先命中第一行;其余流量并非一律直连,而是继续向下匹配。PROXY 最终使用的服务器还需在应用中核对。

七、按现象提交排查信息,不提交私钥

完成以上步骤后,仍应区分“无法与远端建立有效通信”与“已有隧道流量但目标不可用”。前者优先核对密钥、Endpoint 与 UDP 可达性,后者再检查 DNS、服务端转发、AllowedIPs 和 MTU。WireGuard 对无效请求可能不返回可读错误,因此界面没有明确报错并不代表所有字段正确。

观察现象优先检查下一步动作
发起请求后只有发送量增加Endpoint、UDP 路径、Peer 密钥及 PresharedKey核对原参数,请服务商检查服务端是否收到请求。
连接后域名目标普遍失败DNS 可达性、解析结果、当前路由保留失败域名与时间,区分解析失败和连接目标失败。
Proxy 正常,Config 异常Config 规则命中与策略选择检查目标命中的规则,以及 PROXY 所选服务器。
空闲一段时间后请求失败NAT 映射、网络切换、保活要求重连作对照,再与服务商核对 PersistentKeepalive。
小请求成功,大响应停顿路径 MTU、丢包、服务端转发一次只改一个参数,记录调整前后相同请求的结果。

联系自己的服务商时,可提供故障发生时间、Wi-Fi 或蜂窝网络、当前 Global Routing、脱敏后的 Endpoint、是否有收发变化,以及单变量测试结果。不要提交 PrivateKey、PresharedKey、完整配置文件或带凭据的订阅链接。若密钥已泄露,应申请更换身份并撤销旧配置,而不是仅修改记录名称。

Shadowrocket 正版获取说明