在 Home 添加 WireGuard 前,先准备用户已有服务商提供的完整参数。本文按本地身份、远端 Peer、地址范围、MTU 与验证顺序说明填写方法,重点区分客户端私钥和远端公钥,并解释为什么“保存成功”“出现 VPN 标识”和“业务请求成功”不是同一个结果。已有订阅的用户也可按本文核对导入后的字段,不必重新手填。
一、先区分本地 Interface 与远端 Peer
在 Home 打开已有 WireGuard 条目的编辑页,先把原始配置中的 [Interface] 与 [Peer] 分开核对。前者描述本地隧道身份和本地地址,后者描述通信对端。Shadowrocket 的表单可能将这些字段放在同一编辑页,但字段的归属仍然不同,不能按出现顺序盲目复制。
在 Private Key 填入本地客户端私钥,在远端 Peer 对应的 Public Key 填入服务端公钥。服务端同时需要登记这个客户端私钥所对应的公钥。只有双方对身份的记录相互对应,才能建立预期的加密通信;把客户端公钥填到远端公钥栏,即使格式正确也不能完成正确的身份验证。
在原始配置中看到 Endpoint = 203.0.113.10:51820 时,Address 对应远端地址,Port 对应端口;这里的地址属于文档示例网段,不能用于实际连接。不要把 [Interface] 下的隧道地址填成远端 Address,也不要因为端口示例常见就覆盖服务商给出的其他端口。
二、在 Home 添加 WireGuard 并逐项保存
在 Home 右上角点 +,进入 Add Server 后将 Type 设为 WireGuard,再填写对应字段。以下顺序用于手动核对;不同界面布局可能折叠部分高级项,具体字段是否显示以当前编辑页为准。原始配置中的键名和表单标签不一定完全相同,例如 PresharedKey 对应 Pre-shared Key。
-
选择类型
进入 Home → + → Type → WireGuard。先确定协议类型,再填写内容,避免把 WireGuard 密钥误放入其他协议的 Password 字段。
-
填写端点
把 Peer 的 Endpoint 拆分到 Address 与 Port。若原值包含 IPv6 地址,应按表单要求分别填写地址和端口,不要把用于分隔端口的方括号混入普通地址值。
-
填写身份
在 Private Key 填本地私钥,在 Peer 对应的 Public Key 填远端公钥。若原配置带有 Pre-shared Key,再填写双方约定的同一值。
-
核对地址
将 Interface 的 Address 对应到本地隧道地址项,核对 IPv4、IPv6 与前缀长度。MTU 按已有配置填写,不把本地隧道地址当作 DNS 或远端服务器地址。
-
保存验证
保存后回到 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 只是起点,不是对全部网络都适用的固定答案。
- 先记录:保存原 MTU、当前接入网络、测试目标以及失败表现,保证后续可以恢复。
- 再单独调整:仅改变 MTU,重新建立连接,并用相同目标重复测试;不要同时更换 DNS、密钥和规则。
- 有条件地缩小:例如已有值为
1420时,可在理解服务配置的前提下用1380做对照,数值只是诊断示例。 - 注意 IPv6:
1280是 IPv6 的最小链路 MTU要求,涉及 IPv6 时不要把任意更小值当作通用修复方法。 - 无改善就恢复:更小 MTU 会增加传输相同数据所需的包数,不能把“越小越稳定”作为长期设置原则。
六、按现象排查:保存成功后仍无法访问
在 Home 选中刚保存的 WireGuard 条目后,先确认连接开关与实际请求使用的策略,再观察请求结果。系统出现 VPN 标识,表示相应的网络扩展处于运行状态,不等于远端已经完成握手。WireGuard 也不保证在空闲时持续产生业务流量,因此应主动发起一个可重复的测试请求。
| 观察到的现象 | 优先核对 | 后续操作 |
|---|---|---|
| 保存时报告字段格式问题 | 密钥是否完整、端口是否为数字、地址格式是否正确。 | 对照原配置逐项粘贴,清除多余空白,不重新编造密钥。 |
| 连接后请求持续超时 | Endpoint、UDP 可达性、远端公钥,以及服务端登记的客户端公钥。 | 保持参数不变,在允许的另一接入网络复测,并请自己的服务商检查握手记录。 |
| 远端确认已握手但无法访问 | 本地隧道地址、Allowed IPs、远端转发及出口配置。 | 先核对地址分配,再区分目标不可达和域名解析失败。 |
| 部分域名失败,其他请求正常 | DNS 结果、Config 命中策略、IPv4 与 IPv6 路径差异。 | 对照同一目标的解析与连接记录,不直接归因于密钥。 |
| 小响应正常,大响应停顿 | 路径 MTU、丢包与远端链路情况。 | 记录原值后做单变量 MTU 对照,不能仅凭一次请求下结论。 |
在 Settings → On Demand 中核对自动连接条件,避免手动断开后又被条件触发连接,导致误判测试状态。On Demand 决定何时触发连接,不负责更正 WireGuard 参数。完成排查后恢复原来的 Global Routing 与 On Demand 设置,并保留有效参数记录。
七、保存前的最终核对与客户端获取
回到条目编辑页,按下面的清单做最后一次核对,再保存配置。若条目来自已有订阅,后续更新后也应检查关键字段是否仍与服务端一致;本地手动修改与订阅源内容之间的差异,需要由用户自己记录和管理。
- Private Key 属于当前客户端,Peer Public Key 属于远端服务端,两者没有填反。
- Pre-shared Key 仅在双方约定时填写,未配置时保持相应的未启用状态。
- Address 与 Port 是远端端点,本地隧道地址使用已分配的地址和前缀长度。
- Allowed IPs 与目标地址范围一致,Global Routing 和 Config 策略也会选择预期条目。
- MTU 保留有依据的值,测试中修改过的设置都有原值记录。
获取 Shadowrocket 时,先进入本站正版核验页,再前往 App Store。开发者为 Shadow Launch Technology Limited,应用 ID 为 932747118。Shadowrocket 是一次性买断的闭源商业应用,客户端买断 ≠ 线路套餐,连接参数来自用户已有的服务配置。应用以 iPhone、iPad 使用为主,其他 Apple 设备兼容性及系统要求以 App Store 页面标注为准。