VPN 与加速器

WireGuard私钥配置实操步骤与示例详细说明

本文围绕WireGuard私钥的配置示例说明展开,面向普通用户最常接触的云服务器部署服务端、家用旁路由作为接入客户端的实操场景,完整覆盖私钥生成、写入配置、校验排查的全流程,所有操作步骤均基于WireGuard官方原生工具实现,避开手动配置密钥时的常见错误,帮助用户完成合规的VPN隧道身份配置。

WireGuard私钥的核心配置逻辑

WireGuard基于非对称加密体系设计,私钥是每个节点独有的身份凭证,仅能留存于本地运行的节点中,绝对不能对外泄露或传输到其他设备,它和对应公钥是唯一配对的关系,所有隧道内的流量加密会话,都会基于本地私钥和对端公钥协商生成临时会话密钥完成。

WireGuard官方生成的私钥是32字节原始密钥经过Base64编码后的固定长度字符串,不支持用户自定义随意设置的密钥内容,手动输入自定义字符串作为私钥会直接触发格式校验失败,所有合法的私钥都需要通过官方配套的生成工具输出,避免出现格式不兼容的问题。

配置前的前置环境准备

本次实操选择的通用场景是公网云服务器作为WireGuard服务端,家里运行OpenWrt系统的旁路由作为接入客户端,两个节点都提前通过官方软件源安装原生版本的WireGuard工具包,没有经过第三方修改的定制化二次封装版本,避免不同版本的密钥编码规则不兼容。

先登录云服务器的Linux终端,执行wg genkey命令生成服务端专属私钥,把输出的完整字符串临时存到本地记事本,紧接着把刚才生成的私钥通过管道符传入wg pubkey命令,生成和服务端私钥唯一对应的服务端公钥,两个配对的密钥做好标记,不要和后续生成的客户端密钥混淆。

再切换到OpenWrt旁路由的SSH终端,执行完全相同的wg genkey和wg pubkey命令,生成客户端专属的私钥和对应公钥,这里要注意两个节点的私钥都只留在本地对应设备上,不要把服务端私钥发送给客户端,也不要把客户端私钥上传到云服务器,避免出现密钥泄露的风险。

两端配置文件的私钥写入示例

打开云服务器端的/etc/wireguard/wg0.conf配置文件,在[Interface]区块下找到PrivateKey字段,把之前生成的服务端私钥完整粘贴到等号后面,不要多输入多余的空格也不要漏输任意一个字符,标准的配置行示例为PrivateKey = 此处替换为你生成的服务端Base64私钥字符串,这也是WireGuard私钥配置示例说明中最核心的写入步骤。

继续在服务端配置文件的[Peer]区块,也就是对应客户端的授权配置段,写入PublicKey字段,后面粘贴的是之前生成的客户端公钥,注意服务端配置里不需要填入任何客户端的私钥内容,仅通过客户端的公钥来判定接入请求是否属于预授权的合法节点。

再打开OpenWrt旁路由的WireGuard可视化配置界面,在本地节点私钥的输入框里粘贴刚才生成的客户端私钥,在远端服务端节点的公钥输入框里粘贴服务端的公钥,两端的私钥都仅在本地留存,仅互相交换对方的公钥,完全符合非对称加密的运行逻辑。

私钥配置后的验证与常见误区排查

配置完成后先在两个节点分别执行wg show命令,输出的内容里会明确显示当前节点加载的私钥对应的公钥字符串,你可以和之前生成的配对公钥做比对,如果显示的公钥和预生成的内容不一致,说明私钥粘贴过程中出现了字符错误,要重新核对完整字符串。

很多新手配置时容易搞混公私钥的填入位置,把对端的公钥填到本地私钥的字段里,启动WireGuard服务的时候会直接报密钥格式错误,服务无法正常拉起,这种情况不需要重新生成新的密钥对,只需要把对应位置的密钥替换成正确的本地私钥即可恢复正常。

还有部分用户会为了省事把同一个私钥同时配置给多个接入客户端,这种情况下多个节点的公钥完全一致,WireGuard服务端会判定所有节点是同一个身份,出现隧道连接频繁掉线、不同客户端流量互相串流的问题,每个接入节点必须使用独立生成的专属私钥,不能跨节点复用。

手机连接编辑组 - ProtonVPN
手机连接编辑组
内容编辑

整理 Android 与 iOS 的连接权限、后台运行和网络切换注意事项。

查看更多文章
连接指南

找到适合当前设备的指南

遇到手机扫码导入VPN配置相关问题,可从“仅从可信渠道导入,核对服务器和身份信息后测试”开始阅读。含密钥的二维码不能当作普通图片公开分享,需要结合具体环境判断。