Shadowrocket WireGuard 配置详解:Private Key、Peer、Allowed IPs 与 MTU 怎么填

对照服务商提供的 WireGuard 配置,逐项解释 Interface 与 Peer 各参数在 Shadowrocket 中的对应位置,以及 MTU 与保活参数应如何设置。

本文速览

本文适合已经持有 WireGuard 配置、需要在 Shadowrocket 手动核对字段的用户。先分清本机的 Interface 与对端的 Peer,再检查密钥、Endpoint、Allowed IPs;只有基础连接可用后,才按实际现象调整 MTU 和 Persistent Keepalive。文中的地址与端口仅用于解释格式,不能作为连接资料使用。

先读配置:Interface 是本机,Peer 是对端

WireGuard 配置通常分成 [Interface] 和 [Peer] 两段。前者描述这台设备使用的 Private Key、隧道内 Address,以及可能附带的 DNS、MTU;后者描述要连接的对端,包括 Public Key、Endpoint、Allowed IPs 和可选的 Persistent Keepalive。Shadowrocket 的字段排列可能与文本配置不同,但不能把两段中的密钥互换。

在 Shadowrocket 的 Home 页面点击右上角「+」,在 Type 中选择 WireGuard,再对照已有资料填写相应字段。若服务商给的是完整配置文本,应先看清每行属于哪一段;不要仅凭一张参数截图猜测缺失值。不同展示方式下字段的分组和名称可能有差异,以当前应用界面显示为准。

2 段
Interface 描述本机;Peer 描述对端
51820
下文 Endpoint 的示例端口,并非固定端口
/0
Allowed IPs 中匹配全部地址的前缀长度

下面的文本只演示字段归属。示例密钥并非可用凭据,example.com 也不是可连接的服务地址;实际填写时,应逐项使用用户已有配置中的原值。

[Interface]
PrivateKey = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
Address = 10.66.0.2/32
DNS = 10.66.0.1

[Peer]
PublicKey = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=
Endpoint = wg.example.com:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

填写 Interface:Private Key、Address 与 DNS

Private Key 是本机身份的私钥,应从已有配置的 PrivateKey 一行完整复制。它不是 Peer 的 PublicKey,也不是账号密码。复制时留意首尾空格、换行和字符是否遗漏;不要把私钥贴进公开讨论或故障截图。若已有配置中没有私钥,应向原配置提供方核对,而不是自行替换成示例值。

Address 是分配给本机的隧道内地址,通常连同前缀长度一起给出,例如 10.66.0.2/32。这里的 /32 属于地址配置的一部分,不是 Endpoint 的端口。如果资料还列出 IPv6 地址,应按原配置提供的格式一并核对;不要将服务端地址填进本机 Address。

  1. 打开编辑入口

    在 Home 点击右上角「+」→ Type → WireGuard,找到本机参数与 Peer 参数的填写位置;已有条目则进入该条目的编辑页面核对。

  2. 核对本机参数

    将 [Interface] 下的 PrivateKey 对应到 Private Key,将 Address 对应到本机地址字段;保留资料给出的前缀长度。

  3. 核对对端参数

    将 [Peer] 下的 PublicKey、Endpoint 与 AllowedIPs 分别填到相应字段,保存前再次确认密钥归属。

  4. 保存后验证

    返回 Home,选择刚保存的条目并连接。先确认是否能建立连接,再测试目标地址;不要在尚未核对密钥和 Endpoint 时反复调整 MTU。

DNS 指定使用隧道时的名称解析地址,不等同于本机 Address。资料若给出 DNS = 10.66.0.1,应先确认该地址确实属于现有服务配置,再检查 Shadowrocket 中相应的 DNS 设置与当前配置是否一致。能连接对端但只能访问 IP、域名无法解析时,DNS 才是需要重点核对的一环;单凭这类现象不能直接断定密钥错误。

填写 Peer:Public Key、Endpoint 与保活

Public Key 是对端的公钥,由已有配置提供。它与本机 Private Key 必须分别放在正确位置;字符不匹配时,即使 Endpoint 可达,也无法完成预期的 WireGuard 握手。若资料额外给出 PresharedKey,应核对界面中对应的 Pre-shared Key 字段并按原值填写;没有提供时,不需要凭空生成一个。

Endpoint 由主机名或 IP 地址与端口组成,例如 wg.example.com:51820。其中 51820 只是格式示例,实际端口以用户已有配置为准。复制时不要漏掉冒号,也不要把 Address 的隧道内 IP 当成 Endpoint。若 Endpoint 使用域名,连接前还需要能够解析该域名;域名解析失败与端口不可达是不同的排查方向。

保活取舍:先沿用配置,再根据网络现象调整

配置已给出数值
  • 按 PersistentKeepalive 原值填写,例如资料明确给出的 25 秒。
  • 保存后观察切换网络、设备唤醒时是否需要重新建立连接。
配置未给出数值
  • 先保留界面默认状态,不把示例数值当成通用要求。
  • 若连接闲置后不易恢复,先核对 Endpoint 与网络,再向原配置提供方确认是否需要保活。

Persistent Keepalive 是按间隔发送维持映射的数据包;它不能修正错误的 Public Key、端口或 Allowed IPs。

WireGuard 通过密钥识别对端,通过 Endpoint 指定向哪里发送数据。因而「条目能保存」只说明字段形式被接受,不代表对端已经完成握手。排查时应把配置保存、连接建立与目标访问分开观察,避免把所有失败都归因于同一个开关。

Allowed IPs:决定哪些目标地址交给 Peer

Allowed IPs 不是订阅地址,也不是服务器的访问名单。在本机配置里,它定义哪些目标地址应交给该 Peer。0.0.0.0/0 覆盖全部 IPv4 地址,::/0 覆盖全部 IPv6 地址;两者同时出现,表示该 Peer 接收这两类地址的流量。若资料只列出特定网段,就不要为了图省事擅自改成 /0。

例如 10.66.0.0/24 只匹配该 IPv4 网段。若用户的目标是访问这个网段,而其他地址仍按原有方式处理,这种写法与全地址写法的覆盖范围不同。前缀越短,匹配的地址范围通常越大;/32 则只匹配单个 IPv4 地址。填写时要区分本机 Address = 10.66.0.2/32 与 Peer 的 AllowedIPs = 10.66.0.0/24:数值看起来相近,作用却不同。

两种 Allowed IPs 范围

指定网段
  • 示例:10.66.0.0/24。
  • 只将匹配该范围的目标地址交给 Peer;适合原配置明确要求访问特定网段的情况。
全部地址
  • 示例:0.0.0.0/0, ::/0。
  • 覆盖 IPv4 与 IPv6 的全部目标地址;应确认这确实是原配置要求的范围。

先照录已有配置,再测试具体目标;不要仅因某个网页打不开,就扩大 Allowed IPs 的覆盖范围。

还需要区分 WireGuard 的 Allowed IPs 与 Shadowrocket 的 Global Routing。前者决定交给某个 Peer 的地址范围,后者决定应用如何处理请求:Proxy、Direct、Config 等姿态会影响测试结果。若当前处于 Direct,仅凭网页可访问与否,不能判断新建的 WireGuard 条目是否正在承担该请求;使用 Config 时还须检查规则命中与策略选择。

MTU 怎么填:先用原值,再按现象检查

MTU 限制隧道中单个数据包的大小。WireGuard 的封装会占用一部分传输空间,底层网络的路径限制也可能不同,因此不存在适合所有连接的统一数值。已有配置明确给出 MTU 时,先照原值填写;没有给出时,先保持 Shadowrocket 当前默认设置,不要在连接尚未建立时用猜测值覆盖它。

如果握手或基础访问可以完成,但某些页面长时间加载、较大的内容传输中断,MTU 可以列入排查范围。不过同样的现象也可能来自 DNS、目标服务或网络变化。更稳妥的顺序是:先核对密钥与 Endpoint,再检查 Allowed IPs 和 Global Routing,最后在保留原配置记录的前提下,按原配置提供方的建议调整 MTU,并在同一网络、同一目标上复测。

从 Wi‑Fi 切换到蜂窝网络后,路径条件可能变化;原先一次成功的测试并不能证明设置在所有网络下都相同。Settings → On Demand 涉及按网络条件连接的行为,属于另一组设置。排查参数本身时,先在明确的网络环境下手动选择同一条 WireGuard 配置测试,避免把自动连接条件变化误判成 MTU 问题。

连接后如何排查:按故障出现的位置逐项核对

排查时先确认正在使用的是刚编辑的条目,再记录故障发生在「无法建立连接」「连接后特定网段不可达」还是「域名与内容加载异常」哪一步。三种现象对应的检查重点不同。保存配置后立即同时改动密钥、DNS、Allowed IPs 与 MTU,会让结果失去可比性。

保存了配置,为什么仍连不上?

先在 Home 确认选中了目标条目,再逐字核对本机 Private Key、Peer Public Key、Endpoint 的主机与端口。保存成功不代表对端已经完成握手;不要先从 MTU 开始试错。

隧道连上了,指定网段却访问不到?

检查 Peer 的 Allowed IPs 是否包含目标地址。例如目标是 10.66.0.20,10.66.0.0/24 可以覆盖它;还要核对 Global Routing 与现有规则是否让该请求使用目标配置。

IP 能访问,域名却打不开?

核对原配置的 DNS 值是否正确录入,并确认 DNS 地址在当前连接条件下可达。先用同一网络分别测试 IP 与域名,不要仅凭一次网页报错判断 WireGuard 密钥有误。

切换网络后需要重新连接?

先确认新网络能解析并到达 Endpoint,再查看已有配置是否规定 Persistent Keepalive。若启用了 Settings → On Demand,也要核对其网络条件是否与手动连接测试一致。

只有部分页面加载缓慢?

记录出现问题的网络和目标,先排除 DNS 与 Allowed IPs 的差异;若基础连接正常且问题集中在较大内容传输,再依据已有配置检查 MTU。每次只改一项并复测。

WireGuard 配置中的密钥和地址必须与用户已有服务资料一致。Shadowrocket 是在 Apple 平台提供的付费客户端,iPhone、iPad 用户应通过 App Store 获取,开发者信息可在商店页核对;系统要求以 App Store 页面标注为准。客户端的购买与 WireGuard 连接资料是两件事,购买应用不会生成服务商的连接参数。

核对 Shadowrocket 获取入口与入门步骤

先在 App Store 核对开发者 Shadow Launch Technology Limited,再使用已有的 WireGuard 配置完成字段填写。需要了解首次打开后的基本操作,可继续阅读入门指南。

去正版核验页 看教程
App Store 正版核验