本文速览

已有自己的服务商与 WireGuard 配置时,从 Home → + → Type → WireGuard 添加服务器。客户端 Private Key、对端 Public Key、隧道地址与 Endpoint 必须成套对应;DNS 决定解析,MTU 影响封装后的报文大小。本文按字段来源、填写顺序和故障现象说明核对方法,适合手动录入或检查已有配置的用户。

一、填写前先确认配置来源与字段层级

Shadowrocket(小火箭)的 WireGuard 类型需要有效的对端配置,不能仅凭一个服务器地址建立连接。前提是用户已有自己的服务商与配置,或已管理相应的 WireGuard 对端。本站不提供、不销售、不推荐节点或订阅。若现有资料只有普通订阅链接,先确认其中是否确实包含 WireGuard 类型记录,不要把订阅 URL 填进服务器地址。

常见 WireGuard 配置把内容分成 [Interface] 与 [Peer] 两部分。前者描述本机身份和隧道接口,后者描述远端身份及连接目标。Shadowrocket 将这些信息映射到服务器编辑表单;字段排列与显示名称以当前界面为准,下面保留配置原始键名,便于逐项核对。

2 层
Interface 是本机;Peer 是对端
UDP
Endpoint 需要可达的 UDP 服务
51820
端口示例,不是所有服务的固定值

收到配置后,先保留一份安全备份,再做录入。不要在公开求助内容中附上 Private Key、Preshared Key 或完整订阅链接;这类信息可能直接关联连接权限。只需核对格式时,可说明字段长度、是否存在空格以及所在配置段,无需披露具体密钥。

二、Private Key 与 Public Key:本机私钥、对端公钥不能互换

[Interface] 中的 PrivateKey 是客户端私钥,必须与对端已登记的客户端公钥相配。[Peer] 中的 PublicKey 则是服务器的公钥,用于识别远端。两者看起来都像一串 Base64 文本,但用途不同,不能根据外观判断,也不能把客户端自己的公钥填进对端 Public Key。

本机身份与地址

PrivateKey
取自客户端配置的 [Interface],不是服务器私钥。
Address
使用对端分配给此客户端的隧道地址。
DNS
参考原配置提供的解析器,并核对 Shadowrocket 的实际 DNS 设置。
MTU
优先沿用配置明确给出的数值,未给出时不要随意指定。

本机地址与密钥应来自同一份有效配置,避免混用不同设备的资料。

远端身份与连接

PublicKey
取自 [Peer],对应远端服务器的公钥。
Endpoint
远端域名或 IP 地址,加实际监听的 UDP 端口。
PresharedKey
仅在原配置提供时填写,双方必须一致。
PersistentKeepalive
按原配置设置保活间隔,不用于替代有效密钥或修复错误端口。

PublicKey 和 PresharedKey 是两个独立字段,不可相互替代。

标准 WireGuard 密钥编码为 Base64 后通常是 44 个字符,末尾可见 =。长度看起来正确只说明格式可能成立,不代表密钥对应关系正确。粘贴时去掉前后的空格、引号与换行,但保留密钥本身的 +、/、= 等字符。

三、Address、Endpoint 与端口:区分隧道内外地址

Address 是隧道内部地址,Endpoint 是连接远端时使用的外部入口。两者不能交换。例如,配置给客户端分配 10.66.0.2/32,并给出 192.0.2.10:51820 作为 Endpoint:前者说明本机在隧道中的身份,后者说明加密 UDP 报文发往哪里。这里的 Endpoint 使用文档专用地址,仅用于解释格式,不能实际连接。

字段格式示例填写判断
Address10.66.0.2/32来自客户端分配信息;若界面分列地址与前缀,按字段分别填写。
Endpoint 主机192.0.2.10填写远端域名或 IP,不带 https://,不带 URL 路径。
Endpoint 端口51820填实际 UDP 监听端口;示例数值不是通用默认答案。
IPv6 Endpoint[2001:db8::10]:51820合写时用方括号区分 IPv6 地址与端口;分列字段按界面填写。

/32 是 IPv4 前缀长度,不是端口;IPv6 单地址配置中也可能出现 /128。如果界面要求单独填写 IPv4 地址,就不要把端口或整个 Endpoint 一并粘入。IPv6 地址只在原配置明确分配并且链路支持时填写,不能凭空补出一个地址。

AllowedIPs 在 WireGuard 中描述 Peer 可承载的目标范围及来源校验范围,不是客户端 Address 的另一种写法。即使原配置含有 0.0.0.0/0 和 ::/0,Shadowrocket 中具体连接是否选用该服务器,仍需结合 Global Routing 与 Config 规则判断,不能仅凭这两项断言所有应用都会使用它。

四、在 Home 添加 WireGuard 并做最小化验证

首次填写时先验证单个服务器,不同时修改路由、DNS 和 MTU。这样出现故障时,能明确是哪一步改变了结果。下面的入口用于添加 WireGuard 服务器;Config 用于配置文件与规则,不要将两种入口混为一谈。

  1. 选择类型

    进入 Home → + → Type → WireGuard。返回编辑页后确认类型仍为 WireGuard,再继续填写。

  2. 填写入口

    将 Endpoint 的主机与端口填入对应栏位。例如文档示例 192.0.2.10:51820 应拆为地址与端口;实际操作使用自己的有效参数。

  3. 核对密钥

    填写客户端 Private Key 与对端 Public Key,再按原配置补充本机隧道地址;仅在明确提供时填写 Preshared Key。

  4. 保存并选择

    保存服务器,回到 Home 选中该条目。首次连接按系统提示允许添加 VPN 配置;授权表示允许建立系统 VPN 配置,不证明远端已经可达。

  5. 验证连接

    在 Home → Global Routing 临时选择 Proxy,启动连接并访问自己有权访问的测试目标。验证完成后恢复原先的 Global Routing 设置,再检查日常分流。

Global Routing 下的 Proxy 可用于减少规则变量,但仍不能绕过服务器本身的访问权限和网络限制。Direct 不适合验证 WireGuard 是否承载流量;Config 则需要确认测试目标确实命中使用该服务器的策略。系统显示 VPN 已连接,只代表本地隧道状态,不等同于完成远端密钥协商或业务访问成功。

五、DNS 与 MTU 怎么填:先沿用,再单独调整

DNS 决定域名如何解析,不负责修复密钥错误。传统 WireGuard 配置中的 DNS 常由使用该配置的应用解释,不是协议握手字段。将 WireGuard 参数手动录入 Shadowrocket 时,不应假设原文件中的 DNS 会自动成为当前配置的解析器;还要检查 Settings → DNS 以及当前 Config 中的 DNS 设置,以实际启用的配置为准。

MTU 是接口允许承载的最大报文大小。WireGuard 还会增加外层封装开销,因此底层路径能承受的大小会限制隧道内报文。填得过大时,可能出现小请求正常、大页面或上传停住的现象;填得过小则增加分包与处理开销。此类现象也可能由丢包或服务器负载造成,不能只凭“加载慢”就确定是 MTU。

沿用配置或默认处理

推荐

原配置明确给出 MTU 时先保持原值;未给出时,优先保留应用默认处理,不把网上常见数值当作每条线路的固定答案。

适合:首次录入、连接稳定、尚未出现可重复的大报文故障。

手动降低 MTU

仅在原值下能重复出现小请求正常、大传输停滞时试调。例如原值为 1420,可记录结果后试 1380;这两个数字是测试示例,不是已测得的最佳值。

适合:同一网络、同一目标下可复现的问题,且每次只改变 MTU。

每轮测试记录网络类型、原 MTU、调整值以及同一操作的结果。如果降低后没有稳定改善,恢复原值,再查 UDP 可达性、丢包和服务端路由。不要同时换 DNS、改端口和降低 MTU,否则即使恢复访问,也无法判断真正原因。

六、按故障现象排查:从密钥到路由逐层检查

排障顺序应从连接基础条件开始,再看业务访问。端口可达、密钥匹配、地址正确、对端转发与返回路径成立后,DNS 和分流检查才有意义。如果服务端由用户自行管理,可同时查看对端最近握手时间和收发计数;若由已有服务方管理,提供脱敏后的时间与现象即可。

观察现象优先检查下一步操作
启动后业务请求一直超时Endpoint、UDP 端口、双方密钥与 PresharedKey逐项对照同一份原始配置;普通网页能打开不能证明该 UDP 端口可达。
对端有握手但访问不通Address、对端 AllowedIPs、转发与返回路径确认客户端地址属于已分配范围,并由对端检查相应路由与访问权限。
部分域名打不开DNS、Config 规则与目标权限确认实际使用的解析器和策略,不先更换 Private Key。
小请求正常,上传或大页面停住路径 MTU、丢包、服务器状态固定网络与测试目标,记录原值后单独试调 MTU。
两台设备交替掉线是否复用客户端密钥与地址为不同设备使用分别登记的身份与地址,再分别验证。
更新后手改参数消失记录是否由订阅管理核对订阅更新是否覆盖该记录;需要独立测试时另存手动条目。

若 Proxy 下测试正常,恢复 Config 后失败,应检查实际命中的规则和策略,而不是重新生成 WireGuard 密钥。例如 DOMAIN-SUFFIX,example.com,PROXY 只匹配 example.com 及其子域名;IP-CIDR 按地址网段匹配,GEOIP 按 IP 地理数据库匹配,FINAL 用于未被前面规则匹配的连接。规则自上而下处理,目标使用哪个策略需要结合当前配置确认。

WireGuard 可以只填写服务器地址和端口吗?

不可以。还需要匹配的客户端 Private Key、对端 Public Key 及本机隧道地址;对端也必须登记对应身份。存在 PresharedKey 时,双方配置还必须保持一致。

PersistentKeepalive 填 25 是否一定更稳定?

25 秒是常见的 NAT 保活间隔示例,不是必填标准。它可以帮助维持部分网络中的 UDP 映射,但会产生定期报文,不能修复密钥错误、错误端口或不支持该连接的网络。优先沿用原配置。

订阅更新后需要重新核对哪些字段?

先核对 Endpoint、Public Key、客户端地址和是否新增 Preshared Key,再确认当前选中的服务器与 Global Routing。若原记录由订阅管理,手动编辑可能在下一次更新时被覆盖,不应把临时修改当作永久配置。