在 Shadowrocket(小火箭)填写 WireGuard,先区分本机的 Interface 与远端的 Peer:本机 Private Key、隧道地址来自 Interface,远端 Public Key、Endpoint、Allowed IPs 来自 Peer。本文以用户已有自己的服务商与配置资料为前提,说明字段归属、添加步骤以及连接失败时的核对顺序。文中的地址只用于解释格式,不能用于实际连接。
一、先分清 Interface 与 Peer 的身份
WireGuard 使用密钥对识别通信双方,而不是通过账号和密码登录。服务商交付的配置通常包含 [Interface] 与 [Peer] 两部分;这里的“本机”指使用这份客户端配置的设备,“远端”指要连接的服务器。抄写时必须保留这个方向,不能看到 Public Key 就把本机公钥填进远端公钥栏。
按配置段落区分本机与远端
Interface:本机身份
PrivateKey:本机私钥,需要保密。Address:分配给本机的隧道地址,可带 CIDR 前缀长度。MTU:隧道接口的最大传输单元,可能未指定。DNS:配置文件给出的解析服务器信息,不是远端连接地址。
Peer:远端身份
PublicKey:远端公钥,用来识别对端。Endpoint:远端域名或 IP 与 UDP 端口。AllowedIPs:归属这个 Peer 的目标地址范围。PresharedKey:可选的预共享密钥,双方必须一致。
字段归属以交付给本机的客户端配置为准,不要拿服务器端配置直接逐项照填。
例如,客户端配置中的 Address = 10.66.0.2/32 表示本机在隧道内使用的 IPv4 地址;Endpoint = 192.0.2.10:51820 才是建立通信时访问的远端地址。把两者互换,既不会得到正确的远端入口,也不会得到正确的隧道源地址。
二、Private Key 与 Public Key 分别填哪一个
Shadowrocket 的 WireGuard 编辑项中,Private Key 对应客户端 [Interface] 下的 PrivateKey;Peer 的 Public Key 对应客户端 [Peer] 下的 PublicKey。界面带空格,配置文件关键字通常不带空格,含义并没有改变。
本机密钥核对
- 来源
- 客户端配置的 [Interface]
- Private Key
- 完整复制 PrivateKey 的值
- 本机 Public Key
- 由本机私钥推导,用于远端登记
- 保密范围
- 私钥不放入截图、聊天记录或公开文档
自行更换私钥会改变本机身份,需要同步更新远端登记的客户端公钥。
远端密钥核对
- 来源
- 客户端配置的 [Peer]
- Public Key
- 完整复制该 Peer 的 PublicKey
- Preshared Key
- 仅在资料明确提供时填写
- 对应关系
- 远端公钥必须与当前 Endpoint 所在服务匹配
公钥与预共享密钥不是同一种字段,不能相互替代。
WireGuard 密钥区分大小写,常见文本形式是长度为 44 个字符的 Base64 字符串,末尾可能带 =。复制时不要带上 PrivateKey = 这样的字段名,也不要漏掉末尾字符。长度符合格式只能说明外观可能正确,不能证明密钥与服务器登记内容一致。
三、Endpoint、隧道地址与 MTU 的对应方法
Endpoint 同时包含远端地址和 UDP 端口。若编辑页将地址与端口拆开,就拆成两项填写;不要把整个“地址:端口”字符串塞进只接受地址的输入框。51820 是常见示例端口,不是所有 WireGuard 服务都使用的固定值,实际填写必须遵循自己的资料。
| 配置字段 | 格式示例 | 填写与核对要点 |
|---|---|---|
| Endpoint | 192.0.2.10:51820 |
拆分时地址为 192.0.2.10,端口为 51820;传输使用 UDP。 |
| IPv6 Endpoint | [2001:db8::10]:51820 |
方括号用于完整 Endpoint 中区分地址与端口;独立地址栏按该栏接受的格式填写。 |
| Address | 10.66.0.2/32 |
这是本机隧道地址;若界面拆分地址与前缀长度,应分别填写。 |
| AllowedIPs | 10.66.0.0/24 |
表示该 Peer 对应的地址范围,不是本机地址,也不是域名列表。 |
| MTU | 1420 |
单位为字节;这是说明用数值,不是适用于所有网络的固定答案。 |
| PersistentKeepalive | 25 |
单位为秒,用于定期发送保活包;若编辑页提供对应项,再按资料填写。 |
MTU 影响隧道单个数据包的大小。数值过大时,某些路径可能出现小请求正常、大响应停滞等现象,但这些现象也可能由 DNS、远端服务或丢包造成。先保留服务商指定值;没有指定时保留应用默认值,不要把“降低 MTU”作为所有故障的第一步。
- 需要试验 MTU 时,先记录原值,每次只修改这一项,重连后重复访问同一测试目标。
- 如果当前值为 1420,可把 1380 作为一次较小调整的测试值;没有改善就恢复原值,而不是持续降低。
- 不要把配置中的 DNS 地址填入 Endpoint,也不要假定添加服务器时会自动套用文件内全部 DNS 设置。
四、Allowed IPs 与 Shadowrocket 分流规则不是一层设置
AllowedIPs 同时参与 WireGuard 的 Peer 选择与接收地址校验。对发往隧道的流量,它用于确定目标地址对应哪个 Peer;对收到并解密的流量,它用于检查源地址是否属于该 Peer 允许的范围。它只描述 IP 网络,不接受 example.com 这样的域名。
0.0.0.0/0 覆盖全部 IPv4 地址,::/0 覆盖全部 IPv6 地址,但这不等于强制 Shadowrocket 把所有应用流量交给这条服务器。Global Routing 的姿态与 Config 规则先影响流量走向;当流量实际交给 WireGuard 后,还需要该 Peer 的 Allowed IPs 覆盖目标地址。
Config:按规则使用
推荐按当前 Config 中的规则选择策略。用于恢复日常配置前,应确认目标流量的规则确实指向预期服务器或策略组,并核对 FINAL 兜底。
适合:已经准备好规则、需要明确区分直连与代理流量的使用场景。
Proxy:临时隔离规则因素
在适用的代理路由范围内统一使用代理,可用于减少 Config 分流对测试的干扰;它不能修复错误密钥,也不能扩展远端实际可达的网段。
适合:确认服务器参数后,临时排查是否因规则未命中而直连。
Direct:直连路径
流量使用直连路径。此时能打开公网网页,不能作为 WireGuard 服务器配置成功的证据,也不能据此判断远端私有网段是否可达。
适合:核对本地网络本身是否能够访问同一个公网测试目标。
如果服务商只允许访问 10.66.0.0/24,不要为了测试公网网页而擅自把 Allowed IPs 改成双栈全地址范围。即使客户端接受这个改动,远端也可能没有提供公网转发、IPv6 路由或对应的访问权限。应使用资料明确允许访问的目标验证连接。
五、在 Home 添加并验证 WireGuard
添加前保留原始资料,并记录当前 Global Routing。Home 中的服务器条目、Config 中的规则文件和 Settings 中的应用设置是不同对象:建立服务器条目并不表示已经切换到某份规则文件。以下步骤采用手动输入方式,编辑页的可用字段以应用内实际显示为准。
-
核对资料
确认客户端配置包含 Interface 私钥与地址,以及 Peer 公钥、Endpoint 和 Allowed IPs;若提供 Preshared Key 或 MTU,一并记录,避免只复制文件的一半。
-
选择类型
进入 Home → 右上角「+」→ Type → WireGuard。先确认 Type,避免把 WireGuard 公钥填进其他协议的 Password 字段。
-
填写字段
按本机与远端分组填写。将 Endpoint 的地址和端口对应到编辑页的相关输入项,再核对 Private Key、Peer Public Key、隧道地址以及可用的附加项。
-
保存选中
保存并返回 Home,点选刚添加的服务器,确认左侧选中标记。若当前规则使用策略组,还应核对该组实际选中的服务器,不能只看 Home 的默认选择。
-
连接测试
打开 Home 连接开关,首次使用时按系统提示允许添加 VPN 配置。使用 Connectivity Test 检查测试目标的连通结果,再访问服务商明确允许的目标地址。
-
恢复设置
若为排查临时切换了 Global Routing,验证后恢复原有姿态。到 Settings → On Demand 核对按需连接设置,排查期间避免它触发自动连接或断开,干扰手动测试。
六、常见问题:按身份、路径、目标逐项排查
私钥和公钥都填了,为什么仍然超时?
先确认 Public Key 来自客户端文件的 Peer,而不是本机公钥;再检查 Endpoint 地址、UDP 端口和 Preshared Key。WireGuard 不会像账号登录那样保证返回“密码错误”,超时也可能是 UDP 路径不通,不能只凭这一现象判定密钥错误。
为什么换个 Wi-Fi 就不能用了?
保持同一服务器、同一目标和同一 Global Routing,分别测试 Wi-Fi 与蜂窝网络,避免同时改动多个条件。若仅一个网络失败,优先核对该网络的 UDP 可达性、Endpoint 域名解析和路径 MTU,再检查 Settings → On Demand 是否对该网络设置了不同动作。
IP 地址能访问,域名却打不开,怎么查?
先确认两次访问指向同一服务,再检查当前 Config 中的 DNS 设置和域名规则。直接访问 IP 与使用域名可能命中不同规则,也可能因 TLS 证书名称不同而产生不同结果;不要据此直接替换 Peer 公钥或远端端口。
同一份配置能同时放到 iPhone 和 iPad 吗?
是否允许多设备使用由已有服务的配置决定。两台设备同时使用同一私钥与隧道地址,可能使远端识别到的通信端点反复变化,出现一台恢复、另一台中断。需要同时在线时,应向已有服务商确认是否能分别分配独立身份和隧道地址。
Allowed IPs 填了全部地址,为什么仍有网站直连?
返回 Home 检查 Global Routing,再到 Config 核对当前启用文件中的 DOMAIN-SUFFIX、IP-CIDR 和 FINAL 等规则及其策略。Allowed IPs 不会覆盖应用层分流;如果目标已被规则送往 DIRECT,就没有进入这条 WireGuard 路径。
七、保存前的最终检查与敏感资料处理
完成一次可重复的验证后,保留原始配置与最终使用值的对应记录。手工修改、重新导入或更新已有订阅之后,都应重新核对实际条目;不能假定本地编辑值一定会在后续更新中保留。涉及服务地址或密钥变更时,以自己的服务商最新交付资料为准。
- 身份一致:本机 Private Key 与远端登记的客户端公钥成对,Peer Public Key 对应当前远端服务。
- 地址明确:Endpoint 是远端入口,Address 是本机隧道地址,Allowed IPs 是 Peer 对应的 IP 网络范围。
- 路径可核对:记录测试所用网络、Global Routing、选中服务器与目标地址,每次只变更一个条件。
- 保留回退:更改 MTU、规则或连接姿态前记录原值,验证不通过时恢复,而不是叠加多项试错设置。
- 资料脱敏:求助时删除 Private Key、Preshared Key 和已有订阅链接中的凭据;分享配置文件前也执行同样检查。
Shadowrocket 是 Apple 平台的付费客户端,以 iPhone 与 iPad 使用为主,唯一获取入口是 App Store,开发者为 Shadow Launch Technology Limited。客户端一次性买断,客户端买断 ≠ 线路套餐;系统要求与购买适用性以 App Store 页面标注为准。本文只解释已有配置的填写和验证,不改变服务商授予的网络访问范围。