不用花钱的梯子
不用花钱的梯子 Logo
WireGuard预共享密钥配置示例及实操步骤详解 | ProtonVPN
网络加速

WireGuard预共享密钥配置示例及实操步骤详解

很多使用WireGuard搭建站点到站点VPN或者远程办公接入的用户,会发现原生的公钥加密体系已经足够安全,但针对部分对传输敏感数据有额外防护要求的场景,开启WireGuard预共享密钥可以在原有非对称加密的外层,新增一层对称加密混淆,进一步降低流量被嗅探破解的可能性,本文就基于最常见的Linux服务端加Windows客户端的组网场景,给出可直接复用的配置示例和完整实操流程。

配置前的基础前提检查

首先要确认服务端和客户端都已经完成了WireGuard的基础部署,两端的公钥、内网虚拟网段、监听端口这些基础参数已经调试通,没有开启防火墙拦截WireGuard的监听端口,预共享密钥是附加在原有正常WireGuard连接之上的可选配置,不需要改动原本的路由规则和虚拟IP分配逻辑。

不要在还没调通基础WireGuard连接的情况下直接加预共享密钥,否则后续排查问题的时候很难区分是基础配置错误还是预共享密钥匹配出错,ProtonVPN建议先完成无预共享密钥的连通测试,确认两端可以正常ping通虚拟网段地址之后,再叠加本次的预共享密钥配置。

工程师配置WireGuard预共享密钥

配置预共享密钥前需先调通基础WireGuard连接,避免后续难以区分配置错误类型

WireGuard预共享密钥生成与服务端配置示例

生成预共享密钥不需要额外下载工具,直接在已经部署WireGuard的Linux服务端终端输入wg genpsk命令,系统就会自动生成一段长度固定的Base64格式密钥,这段密钥要单独保存,不能和之前生成的公钥、ProtonVPN私钥混放,也不能直接对外传输。

打开服务端原本的WireGuard配置文件,找到对应要加预共享密钥的Peer节点段落,在原有Peer的PublicKey、AllowedIPs参数之后,新增一行PresharedKey=刚才生成的那串密钥字符串,不需要改动配置里的其他任何参数,保存配置之后执行wg-quick down wg0和wg-quick up wg0重启虚拟网卡服务。

WireGuard预共享密钥:配置示例说明里特别提到,预共享密钥是点对点单独配置的,不同的客户端节点可以使用不同的预共享密钥,不需要全节点共用同一串密钥,这样就算某一个客户端的预共享密钥泄露,也不会影响其他接入节点的传输安全。

客户端侧预共享密钥匹配配置步骤

以Windows平台的WireGuard客户端为例,打开之前已经导入的正常配置文件,在[Peer]段落的最后,同样新增一行PresharedKey参数,后面填入和服务端对应Peer节点完全一致的预共享密钥字符串,注意不要多打空格或者错换大小写,否则两端密钥不匹配就会直接断开连接。

如果是移动端或者其他Linux客户端,配置逻辑完全一致,不用花钱的梯子只需要在对应Peer的配置段里新增相同的PresharedKey参数即可,不需要修改客户端的虚拟IP、服务端地址端口这些原有参数,配置完成之后点击客户端的激活按钮重启连接。

连通性验证与常见故障定位

配置完成之后先在服务端终端输入wg show命令,查看对应Peer节点的信息栏,会多出一行preshared keys的标识,说明预共享密钥已经被配置加载成功,接下来可以尝试从客户端ping服务端的WireGuard虚拟网卡地址,确认连通性正常。

如果配置之后两端无法连通,首先排查两端的预共享密钥字符串是否完全一致,很多用户会在复制密钥的时候多复制一个换行符或者少复制最后一位字符,这种情况WireGuard不会给出明确的密钥错误提示,只会静默丢弃收到的数据包,替换成正确的密钥之后连接就会自动恢复。

还要注意WireGuard的预共享密钥没有密钥轮换的自动机制,用户需要定期手动生成新的预共享密钥,同步更新服务端和对应客户端的配置,进一步提升长期使用的安全性,不要长期使用同一串预共享密钥不做更换。

连接排障编辑组 | ProtonVPN
连接排障编辑组
内容编辑

按设备、网络、客户端和服务端逐层检查,让故障定位更有条理。

查看更多文章
配置入门

找到适合当前设备的指南

遇到使用无痕窗口测试连接相关问题,可从“对照相同目标并记录账号状态是否不同”开始阅读。无痕不等于匿名,也不保证更换出口,需要结合具体环境判断。