节点与线路

WireGuardEndpoint配置示例说明及实操部署


WireGuardEndpoint配置示例说明及实操部署

本文围绕WireGuard Endpoint配置示例说明展开,结合常见的跨节点办公组网场景,从配置前置校验、端侧参数定义、两端联动部署到故障排查全流程给出可落地的实操步骤,所有操作均基于标准开源WireGuard协议实现,不涉及第三方定制化私有功能,适合有基础Linux网络运维经验的用户参考落地。

配置前的基础环境校验

在开始编辑WireGuard Endpoint配置文件之前,首先要确认两端节点的网络连通基础,也就是公网可访问的节点需要开放WireGuard默认使用的UDP端口,同时两端的内核已经加载WireGuard内核模块,可通过modprobe wireguard命令校验模块加载状态,避免后续配置完成后服务无法启动。

很多新手容易忽略的是,作为服务端的WireGuard Endpoint节点需要配置IP转发规则,可通过sysctl net.ipv4.ip_forward命令查看转发状态,如果返回值为0,需要修改sysctl配置文件开启永久转发,否则隧道建立后也无法正常转发跨端的业务流量。

服务端WireGuard Endpoint配置示例说明

标准的服务端配置文件通常存放在/etc/wireguard/wg0.conf路径下,第一部分定义本地私钥、监听UDP端口和隧道内部的虚拟IP段,其中私钥需要提前通过wg genkey命令生成,不要直接复制公开示例中的私钥用于生产环境。

配置文件的Peer段用来定义允许接入的对端节点公钥、预共享密钥和允许接入的虚拟IP地址段,这里的Endpoint字段在服务端配置中可以暂时留空,因为移动接入的客户端节点公网IP不固定,只有固定公网IP的对端节点才需要在服务端Peer段填写对应的Endpoint地址。

客户端WireGuard Endpoint配置示例说明

客户端配置文件的Interface段同样需要生成独立的私钥,虚拟IP要填写服务端Peer段中为该客户端分配的单节点IP,不能和其他隧道节点的虚拟IP冲突,DNS字段可以根据自身网络需求设置为公共递归DNS或者内网部署的DNS服务器地址。

客户端配置的Peer段中必须填写服务端的公钥,以及服务端真实的公网IP加UDP端口组成的Endpoint参数,这也是WireGuard Endpoint配置示例说明中最核心的字段之一,该字段会告诉客户端隧道对端的接入地址,所有隧道流量都会发往这个指定的UDP地址。

部署后的连通性验证方式

两端配置文件编辑完成后,通过wg-quick up wg0命令启动隧道服务,执行wg show命令可以查看当前隧道的运行状态,如果看到对应的Peer节点出现最新的握手时间字段,说明两端的WireGuard节点已经完成密钥协商,基础隧道链路已经打通。

接下来可以通过ping命令访问对端的隧道虚拟IP,验证三层连通性,如果需要让客户端所有流量都走WireGuard隧道,只需要在客户端Peer段的AllowedIPs字段填写0.0.0.0/0即可,配置后要注意检查本地路由表的生成状态,避免出现路由冲突导致本地网络中断。

常见配置误区与故障定位

很多用户配置完成后隧道一直无法握手,首先要排查的就是防火墙规则,不仅是服务端的公网入站规则要放开对应UDP端口,还要确认服务端的iptables或者nftables转发规则没有拦截隧道内部的虚拟IP流量,不要默认认为云服务器的安全组已经放开对应端口。

另外不要混淆公钥和私钥的填写位置,WireGuard的每一个节点的私钥都是仅自己持有,对端Peer段填写的必须是对端节点生成的公钥,一旦公私钥填反,隧道永远无法完成握手,这类问题通过查看系统日志的WireGuard服务报错信息可以快速定位。

整套WireGuard Endpoint配置示例说明的实操流程完全遵循开源协议的标准规范,不需要依赖额外的管控平台,所有配置都可以通过纯文本编辑完成,适合中小团队的跨地域办公组网、异地数据中心互联等场景落地使用。

网络加速编辑组
从延迟、抖动和丢包入手,分析不同网络环境下的连接体验。
查看更多文章
配置入门

找到适合当前设备的指南

遇到视频会议共享屏幕相关问题,可从“分别验证语音、视频和共享功能”开始阅读。网页版会议可用不一定代表桌面客户端设置相同,需要结合具体环境判断。