使用wg-easy轻松搭建WireGuard VPN
之前一篇文章介绍了WireGuard 怎么做到异地组网,但是没有界面配置,配置起来比较硬核,而wg-easy项目通过提供友好的Web管理界面,让WireGuard的部署和使用变得更加简单直观。
什么是wg-easy?
wg-easy是一个集成了Web管理界面的WireGuard VPN解决方案,它将WireGuard的强大功能与可视化操作相结合,让用户无需手动编写复杂的配置文件即可轻松管理VPN服务。
主要特点包括:
🚀 一键部署,通过Docker快速拉起
🖥️ 直观的Web UI界面,可视化操作
👥 轻松的客户端管理,支持多设备接入
📱 二维码生成,方便移动设备配置
🔒 基于WireGuard,安全可靠
🌍 支持远程办公、家庭组网等多种场景
环境准备
在开始部署前,请确保你拥有:
一台具有公网IP的Linux服务器(云服务器或具有端口转发的内网设备)
系统已安装Docker和Docker Compose
服务器51820/udp和51821/tcp端口可用
使用Docker Compose安装
为配置文件创建一个目录:
sudo mkdir -p /etc/docker/containers/wg-easy下载 docker compose 文件
sudo curl -o /etc/docker/containers/wg-easy/docker-compose.yml https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.yml启动
wg-easycd /etc/docker/containers/wg-easy sudo docker compose up -d
设置防火墙
如果你使用防火墙,需要打开以下端口:
UDP 51820 (WireGuard)
TCP 51821 (WireGuard 后台管理界面)
这些端口可以在管理后台更改,如果你更改它们,你需要相应地更新你的防火墙规则。
使用wg-easy
安装好后,就可以配置客户端,具体配置参照 WireGuard - 内网互访搭建实战 里面的配置项含义,界面可以清晰的展示有哪些客户端,哪些是活跃的,以及流量监控,方便我们管理。
持久保持活动状态(PersistentKeepalive)
在实际使用时,我经常碰到wg失去与其它客户端连接的时候,表现看来就是上次握手时间会变得很长,后面查阅资料,默认情况下,WireGuard 在未被使用时会尽可能地保持安静,它不是一个持久保活的协议。大部分情况下,它只在对端希望发送数据包时才传输数据。当它未被要求发送数据包时,它会停止发送数据包,直到再次被要求发送。
在大多数配置中,这种方式运行良好。然而,当对端位于 NAT 或防火墙后面时,即使它没有发送任何数据包,也可能希望能够接收传入的数据包。由于 NAT 和状态防火墙会跟踪“连接”状态,如果位于 NAT 或防火墙后面的对端希望接收传入的数据包,它必须通过周期性地发送保持活动状态的数据包来保持 NAT/防火墙映射的有效性。这被称为持久保持活动状态。
当启用此选项时(PersistentKeepalive),每隔间隔秒就会向服务器端点发送一个保持活动状态的数据包。一个适用于各种防火墙的合理间隔是25 秒。将其设置为 0 会关闭此功能,这是默认设置,因为大多数用户不需要此功能,并且会使 WireGuard 稍微多话一些。此功能可以通过在配置文件中对端添加PersistentKeepalive = XX,或在命令行中设置persistent-keepalive来指定。 如果你不需要这个功能,就不要启用它。但如果你处于 NAT 或防火墙之后,并且希望在网络流量沉寂很久之后仍能接收传入连接,这个选项将使 NAT 认为"连接"保持开启状态。

总结
wg-easy极大简化了WireGuard VPN的部署和管理流程,通过直观的Web界面让即使没有深厚网络知识的用户也能轻松搭建属于自己的VPN服务器。无论是用于远程办公、家庭组网还是安全上网,wg-easy都提供了便捷高效的解决方案。
与传统WireGuard配置相比,wg-easy省去了手动编辑配置文件的繁琐步骤,通过点击和扫描就能完成客户端配置,真正实现了WireGuard的开箱即用。
现在就开始使用wg-easy,构建属于你自己的私有网络吧!