Shadowrocket WireGuard 配置详解:私钥、Peer 公钥、Allowed IPs 与 MTU

解释 WireGuard 的密钥对与 Peer 概念,逐项说明 Private Key、Public Key、Pre-shared Key、Allowed IPs、MTU 在 Shadowrocket 中的填写位置,以及这些参数对连接的影响。

本文速览

在 Home 添加 WireGuard 前,先准备用户已有服务商提供的完整参数。本文按本地身份、远端 Peer、地址范围、MTU 与验证顺序说明填写方法,重点区分客户端私钥和远端公钥,并解释为什么“保存成功”“出现 VPN 标识”和“业务请求成功”不是同一个结果。已有订阅的用户也可按本文核对导入后的字段,不必重新手填。

一、先区分本地 Interface 与远端 Peer

在 Home 打开已有 WireGuard 条目的编辑页,先把原始配置中的 [Interface] 与 [Peer] 分开核对。前者描述本地隧道身份和本地地址,后者描述通信对端。Shadowrocket 的表单可能将这些字段放在同一编辑页,但字段的归属仍然不同,不能按出现顺序盲目复制。

在 Private Key 填入本地客户端私钥,在远端 Peer 对应的 Public Key 填入服务端公钥。服务端同时需要登记这个客户端私钥所对应的公钥。只有双方对身份的记录相互对应,才能建立预期的加密通信;把客户端公钥填到远端公钥栏,即使格式正确也不能完成正确的身份验证。

32 字节
WireGuard 密钥原始长度;配置中通常使用 Base64 表示
UDP
WireGuard 外层传输;端口必须与远端监听值一致
51820
常见的示例端口,不是所有服务都使用的固定端口

在原始配置中看到 Endpoint = 203.0.113.10:51820 时,Address 对应远端地址,Port 对应端口;这里的地址属于文档示例网段,不能用于实际连接。不要把 [Interface] 下的隧道地址填成远端 Address,也不要因为端口示例常见就覆盖服务商给出的其他端口。

二、在 Home 添加 WireGuard 并逐项保存

在 Home 右上角点 +,进入 Add Server 后将 Type 设为 WireGuard,再填写对应字段。以下顺序用于手动核对;不同界面布局可能折叠部分高级项,具体字段是否显示以当前编辑页为准。原始配置中的键名和表单标签不一定完全相同,例如 PresharedKey 对应 Pre-shared Key。

  1. 选择类型

    进入 Home → + → Type → WireGuard。先确定协议类型,再填写内容,避免把 WireGuard 密钥误放入其他协议的 Password 字段。

  2. 填写端点

    把 Peer 的 Endpoint 拆分到 Address 与 Port。若原值包含 IPv6 地址,应按表单要求分别填写地址和端口,不要把用于分隔端口的方括号混入普通地址值。

  3. 填写身份

    在 Private Key 填本地私钥,在 Peer 对应的 Public Key 填远端公钥。若原配置带有 Pre-shared Key,再填写双方约定的同一值。

  4. 核对地址

    将 Interface 的 Address 对应到本地隧道地址项,核对 IPv4、IPv6 与前缀长度。MTU 按已有配置填写,不把本地隧道地址当作 DNS 或远端服务器地址。

  5. 保存验证

    保存后回到 Home,选择该条目并启动连接;首次出现系统 VPN 配置授权提示时,核对后允许添加。随后用明确走该条目的请求验证,不能仅凭保存结果判断连接可用。

三、Private Key、Public Key 与 Pre-shared Key 的对应关系

在编辑页核对密钥时,应从完整原始配置复制,避免前后空格、换行和遗漏末尾字符。Private Key、Public Key 与 Pre-shared Key 都可能呈现为相似长度的 Base64 文本,但外观相近不代表可以互换。尤其不能把服务器私钥复制到客户端;客户端需要的是服务器公钥。

本地身份

Private Key
本地客户端私钥,来源于此客户端的身份配置。
客户端公钥
由本地私钥导出,供服务端登记此客户端 Peer。
Interface Address
隧道内部地址,例如文档示意值 10.66.0.2/32,实际值由已有配置确定。
变更影响
更换本地私钥后,服务端必须同步登记新客户端公钥。

本地私钥只用于本地身份,不应发给其他使用者或放进排查截图。

远端 Peer

Public Key
远端服务端的公钥,用于确认通信对端身份。
Pre-shared Key
可选的额外共享密钥;启用时两端必须一致。
Endpoint
远端可达的主机地址与 UDP 端口,对应 Address、Port。
Allowed IPs
与此 Peer 关联的目标或来源地址前缀范围,不是端点地址。

原配置未设置 Pre-shared Key 时,不要自行编写一个值填入。

在排查记录里只保留字段是否存在、地址前缀和端口等必要信息,并遮盖 Private Key、Pre-shared Key 与完整订阅链接。Public Key 不是私钥,但仍可能成为识别某条配置的标识;公开交流时也应按最少必要信息原则处理。

四、Allowed IPs 与 Global Routing 分别控制什么

在用户已有的 WireGuard 原始配置中,查看 [Peer] 下的 AllowedIPs。它描述与该 Peer 关联的 IP 前缀:发送方向用于选择可交给这个 Peer 的目标范围,接收方向用于约束这个 Peer 允许使用的内层来源地址。某些实现还会据此生成路由,因此不能把它理解为一个普通备注。

在 Shadowrocket 中,先通过 Global Routing 与 Config 规则决定某个请求使用哪个策略,再考虑该 WireGuard 条目本身能否承载目标流量。两者属于不同层次。若当前 WireGuard 编辑页提供 Allowed IPs,就按原值核对;若没有该字段,不要把它写进 Address、Public Key 或其他无关输入框,也不要假定原始配置的全部路由语义会自动映射成 Config 规则。

配置值覆盖范围核对重点
0.0.0.0/0全部 IPv4 目标范围不包含 IPv6;不代表 Shadowrocket 的全部请求必然选择此条目。
::/0全部 IPv6 目标范围仍需隧道地址、远端转发和访问路径支持 IPv6。
10.66.0.0/24一个指定的 IPv4 子网只是地址范围示例,不能替代用户实际分配的网段。

在 Home → Global Routing 进行验证时,可按下面两种姿态区分“条目自身是否可用”和“规则是否选择了它”。日常姿态仍需结合现有配置决定;Global Routing 中的 Direct 不经过代理条目,Scene 则用于场景化选择,不应把它们与 Allowed IPs 的地址范围混为一谈。

Config:按已有规则使用

推荐

按照当前 Config 中的规则和策略处理请求。核对 DOMAIN-SUFFIX、GEOIP、IP-CIDR 与 FINAL 指向的策略,确认目标请求确实会选择相应的 WireGuard 条目。

适合:已有规则配置,日常按目标分流。

Proxy:隔离规则因素

临时使用当前代理选择验证请求,以减少 Config 规则选择带来的变量。该姿态不会修复错误密钥、不可达端点或远端转发问题,也不保证所有类型流量都可用。

适合:短时核对所选条目,验证后恢复原姿态。

五、MTU 怎么填:先保留原值,再判断路径问题

在 WireGuard 编辑页找到 MTU 后,优先保留已有配置给出的值。MTU 限制隧道内单个 IP 包的大小;WireGuard 的外层封装还要占用额外空间,所以隧道内可以使用的大小通常小于底层链路 MTU。不能直接把 Wi-Fi 或蜂窝链路的数值照搬进去。

在连接能建立、短请求能完成,但较大响应停顿时,才把路径 MTU 列为候选原因之一。单纯“网站打不开”不足以确认 MTU 问题,DNS、远端出口与分流选择也会出现相似表现。常见配置中的 1420 只是起点,不是对全部网络都适用的固定答案。

六、按现象排查:保存成功后仍无法访问

在 Home 选中刚保存的 WireGuard 条目后,先确认连接开关与实际请求使用的策略,再观察请求结果。系统出现 VPN 标识,表示相应的网络扩展处于运行状态,不等于远端已经完成握手。WireGuard 也不保证在空闲时持续产生业务流量,因此应主动发起一个可重复的测试请求。

观察到的现象优先核对后续操作
保存时报告字段格式问题密钥是否完整、端口是否为数字、地址格式是否正确。对照原配置逐项粘贴,清除多余空白,不重新编造密钥。
连接后请求持续超时Endpoint、UDP 可达性、远端公钥,以及服务端登记的客户端公钥。保持参数不变,在允许的另一接入网络复测,并请自己的服务商检查握手记录。
远端确认已握手但无法访问本地隧道地址、Allowed IPs、远端转发及出口配置。先核对地址分配,再区分目标不可达和域名解析失败。
部分域名失败,其他请求正常DNS 结果、Config 命中策略、IPv4 与 IPv6 路径差异。对照同一目标的解析与连接记录,不直接归因于密钥。
小响应正常,大响应停顿路径 MTU、丢包与远端链路情况。记录原值后做单变量 MTU 对照,不能仅凭一次请求下结论。

在 Settings → On Demand 中核对自动连接条件,避免手动断开后又被条件触发连接,导致误判测试状态。On Demand 决定何时触发连接,不负责更正 WireGuard 参数。完成排查后恢复原来的 Global Routing 与 On Demand 设置,并保留有效参数记录。

七、保存前的最终核对与客户端获取

回到条目编辑页,按下面的清单做最后一次核对,再保存配置。若条目来自已有订阅,后续更新后也应检查关键字段是否仍与服务端一致;本地手动修改与订阅源内容之间的差异,需要由用户自己记录和管理。

获取 Shadowrocket 时,先进入本站正版核验页,再前往 App Store。开发者为 Shadow Launch Technology Limited,应用 ID 为 932747118。Shadowrocket 是一次性买断的闭源商业应用,客户端买断 ≠ 线路套餐,连接参数来自用户已有的服务配置。应用以 iPhone、iPad 使用为主,其他 Apple 设备兼容性及系统要求以 App Store 页面标注为准。

App Store 正版入口核对开发者与应用 ID