核心原则:保留还是清除
在迁移 WireGuard 配置时,预共享密钥(Pre-Shared Key, PSK)的处理核心在于:除非你明确需要降低密钥泄露风险或进行密钥轮换,否则应直接保留原值。PSK 在 WireGuard 中是一个可选的静态 32 字节随机数,它通过 ChaCha20-Poly1305 算法为数据流提供额外的完整性保护。它不是握手过程中协商生成的,而是由管理员预先配置在对等双方。如果两端 PSK 不一致或一端缺失,隧道将无法正常建立数据通道。因此,白鲸加速器迁移的首要步骤是确认源端配置中是否启用了 `PreSharedKey` 字段,若存在,目标端必须填入完全相同的值。
检查源端配置对象
在开始复制之前,先查看当前生效的 WireGuard 配置文件。对于 Linux 系统,通常位于 `/etc/wireguard/` 目录下;对于 Android 或 iOS 客户端,则需查看导入的配置文本。重点寻找 `PreSharedKey` 行。注意,该字段在标准配置文件中是单数形式,不要误写为 `PreSharedKeys`。如果该行不存在或值为空,说明当前隧道未使用 PSK,迁移时无需添加。若该行存在且包含 Base64 编码的字符串,请完整复制该字符串。同时,检查 `PersistentKeepalive` 字段(单数),它与 PSK 无直接逻辑依赖,但同属连接保持机制,迁移时通常建议保持一致以维持心跳间隔。
目标端配置与验证
将复制的 `PreSharedKey` 填入目标设备的对等配置节中。在 Linux 上,修改 `/etc/wireguard/wg0.conf` 文件中的对应 peer 块。保存后,重新加载配置。对于使用 `wg` 命令的工具,执行 `wg-quick down wg0` 和 `wg-quick up wg0`;对于 systemd 服务,执行 `systemctl restart wireguard@wg0`。预期现象是命令行无报错,且通过 `wg show` 命令查看状态时,对等端的 `last handshake` 时间戳能够更新。如果握手时间戳停滞不前,首先检查 PSK 字符是否因复制截断或空格导致不一致,因为 PSK 的任何细微差异都会导致数据包被丢弃,且通常不会生成明确的错误日志。
网络路径与监听端口确认
迁移设备后,需确认通信路径未被阻断。WireGuard 默认使用 UDP 协议,若两端配置了 `ListenPort`,需确保防火墙允许该 UDP 端口的入站流量。注意,UDP 端口与 TCP 端口即使数字相同,也是完全独立的监听端点,配置 TCP 代理或端口转发不会自动生效于 WireGuard。检查路由表,确保目标设备到服务器端点的 IP 路由正确。如果 `AllowedIPs` 中配置了特定网段,数据包匹配基于源地址和目的地址;免费梯子若配置了 `0.0.0.0/0`,需注意这可能覆盖局域网流量,因此在企业环境中需谨慎评估路由优先级,避免本地流量被错误地注入隧道。

在进行网络迁移时,仔细核对并复制设备间的共享密钥是确保连接不断的关键步骤。
常见故障排查点
若迁移后连接建立失败,优先执行只读检查。使用 `wg show` 确认对等端是否存在于状态列表中。若缺失,检查配置语法及 PSK 格式是否为合法的 32 字节 Base64 字符串。使用 `tcpdump -i any udp port 51820`(假设监听端口为 51820)抓包,观察是否有 UDP 数据包发出及是否收到响应。若看到握手包发出但无回包,可能是防火墙丢弃了 ICMP 或 UDP 流量;免费梯子若看到回包但客户端仍无网络,则重点核对 `AllowedIPs` 是否包含了所需访问的 IP 范围。切记,PSK 错误表现为静默丢弃,而非明确的认证失败提示,因此比对配置字面值是最直接的验证手段。
白鲸加速器 


