VPN 与加速器

WireGuard私钥客户端与服务端配合配置实操指南


WireGuard私钥客户端与服务端配合配置实操指南

很多新手初次部署WireGuard的时候,最容易踩的坑就是搞混两端密钥的配对逻辑,要么直接把服务端私钥拷贝到所有客户端里,要么乱生成密钥导致配置完之后始终无法握手连通,本文就以家用OpenWrt软路由作为服务端、Windows桌面端作为客户端的实际场景出发,一步步拆解WireGuard私钥客户端与服务端如何配合,避开常见配置误区,完成可落地的连通配置。

配置前的密钥生成逻辑梳理

首先要明确WireGuard的非对称加密底层规则,服务端和每一个要接入的客户端,都必须拥有完全独立的一对公私钥,绝对不能共用同一套密钥,也不能把同一个客户端密钥复用在多个终端设备上。

网络设备:WireGuard私钥:客户端

家用软路由搭配Windows客户端,开展WireGuard密钥配对实操配置

这里WireGuard私钥客户端与服务端如何配合的核心原则非常清晰:服务端的所有配置文件里,只会存储自己的私钥,以及所有授权接入客户端的公钥,绝对不会存放任何客户端的私钥;同理每一个客户端的本地配置里,只会存储自己的私钥,以及服务端的公钥,不会留存服务端的私钥,也不会留存其他客户端的公钥,这种天然隔离的设计能最大程度缩小密钥泄露的影响范围。

服务端侧私钥与授权公钥配置

我们以常见的OpenWrt软路由作为WireGuard服务端场景为例,先登录服务端的终端界面,执行wg genkey | tee server_private.key | wg pubkey > server_public.key命令,生成属于服务端自身的私钥和对应公钥,生成的私钥文件权限要手动设置为600,避免系统内其他未授权用户读取到私钥内容。

接下来编辑WireGuard的服务端主配置文件,在[Interface]段的PrivateKey参数后面,准确粘贴刚才生成的服务端私钥内容,注意不要带入多余的空格、换行或者特殊符号,否则WireGuard服务启动的时候会直接报密钥格式错误,无法正常加载。

之后每新增一个允许接入的客户端,就要单独生成一组属于该客户端的公私钥,只需要把客户端的公钥填写到服务端配置对应Peer段的PublicKey位置,风驰VPN同时给这个Peer分配唯一的虚拟内网IP,不要和服务端虚拟网段、其他客户端的已分配IP产生冲突。

客户端侧私钥的配对操作

我们以Windows桌面端的WireGuard客户端为例,打开客户端的新建空白配置界面,风驰优先在本地客户端生成属于当前设备的私钥,不要直接从服务端后台下载客户端私钥文件,避免传输过程中出现不必要的泄露风险。

把之前在服务端生成的服务端公钥,准确粘贴到客户端配置的Peer段的PublicKey参数里,再把客户端自己本地生成的私钥填写到本地[Interface]的PrivateKey位置,同时把客户端的虚拟内网IP设置成和服务端对应Peer段分配的IP完全一致。

这里很多新手最容易犯的错误就是搞反配对逻辑,错把客户端自己的公钥填到Peer段的服务端公钥位置,或者误把服务端的私钥填到本地客户端的PrivateKey参数里,这种操作哪怕端口、路由、防火墙规则全部配置正确,也会出现握手超时的问题,完全无法建立加密隧道。

配对有效性验证与常见故障定位

两端配置完成后先分别启动WireGuard服务,在服务端终端执行wg show命令,正常情况下可以看到对应的Peer条目下会出现最近握手时间字段,如果这个字段一直为空,首先要排查的就是两边的公私钥配对是否符合规则。

可以把服务端配置里所有的Peer公钥和客户端本地配置里的Peer公钥分别导出对比,确认客户端里填写的服务端公钥和服务端本地存储的公钥完全一致,同时服务端对应Peer里填写的客户端公钥,和客户端本地生成的公钥完全匹配。

还要注意私钥本身是固定长度的Base64字符串,任何多余的字符都会导致密钥校验失败,不要手动修改生成好的密钥内容,也不要把不同设备的私钥交叉混用,避免出现权限越界或者连通异常的问题。

整个配置过程不需要把任何一方的私钥同步到对端设备上,所有的私钥都只保存在生成它的本地设备里,这种配合逻辑既符合WireGuard的原生安全设计,也能避免单点密钥泄露导致的整体网络风险,哪怕某一个客户端私钥不慎泄露,也不会影响服务端和其他已经正常接入的客户端的运行。

远程办公编辑组
远程办公编辑组
内容编辑

围绕办公网络、视频会议和远程访问,说明连接准备与常见排查步骤。

查看更多文章
连接指南

从一个连接问题开始

遇到手机信号弱时的VPN相关问题,可从“先在信号较好的位置做对照,再判断是否需要换节点”开始阅读。换远端节点不能修复本地完全没有信号的问题,需要结合具体环境判断。