共计 3238 个字符,预计需要花费 9 分钟才能阅读完成。
简介
WireGuard 是一种通信协议和免费开源软件,可实现加密的三层隧道协议,其设计目标是易用性、高速性能和低攻击面。它旨在获得比 IPsec 和 OpenVPN 这两种常见的隧道协议更好的性能和更强大的功能。其报文承载在 UDP。
2020 年 5 月,该软件的 Linux 版本达到了稳定的生产版本,并被合并到 Linux 5.6 内核中,并在一些 Linux 发行版中向后移植到早期的 Linux 内核。
它最初是为 Linux 内核发布的,现在是跨平台(Windows、macOS、BSD、iOS、Android)并且可以广泛部署。
WireGuard-UI 则是用来管理 WireGuard 配置文件的 Web 可视化管理开源项目,可以方便的生成配置,通过邮件、二维码分发。
项目地址:https://github.com/ngoduykhanh/wireguard-ui
功能
易用的 Web 用户界面
访问认证
管理记录额外的客户端信息(姓名、电子邮件等)
使用二维码 / 文件 / 电子邮件分发客户端配置
Web UI
安装
环境介绍
1、使用二进制文件进行安装。
2、系统使用 Ubuntu 22.04+(也适用于 Debian 11+)
3、使用 systemd 管理服务。
4、注意关闭防火墙或开放对应端口。
安装 WireGuard 和 下载 WireGuard-UI
ufw disable | |
# 关闭防火墙 | |
apt install wireguard wget tree -y | |
# 安装 WG 本体 | |
cd /opt | |
mkdir wireguard-ui | |
wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/v0.5.2/wireguard-ui-v0.5.2-linux-amd64.tar.gz | |
# 从 Github 下载,或通过 sftp 上传。(建议下载最新) | |
tar -zxvf wireguard-ui-v*.tar.gz -C ./wireguard-ui/ | |
# 解压到指定文件夹 | |
tree /opt | |
/opt | |
├── wireguard-ui | |
│ └── wireguard-ui | |
└── wireguard-ui-v0.5.2-linux-amd64.tar.gz | |
# 查看当前目录结构应该如上。 |
配置 UI 开机启动和参数配置
编写配置文件
vim /opt/wireguard-ui/.env | |
BIND_ADDRESS=0.0.0.0:5000 | |
# 配置绑定 IP 和端口,默认为 5000 | |
EMAIL_FROM_ADDRESS=admin@qq.com | |
# 邮件发送人地址 | |
EMAIL_FROM_NAME=admin | |
# 邮件人名字 | |
SMTP_HOSTNAME=smtp.exmail.qq.com | |
# SMTP 服务器域名或 IP | |
SMTP_PORT=465 | |
# SMTP 服务器端口 | |
SMTP_USERNAME=admin@qq.com | |
# 邮箱登录账号 | |
SMTP_PASSWORD=Ps1234 | |
# 邮箱登录密码 | |
SMTP_AUTH_TYPE=LOGIN | |
# 登录方式 | |
SMTP_ENCRYPTION=SSL | |
# 加密方式,一般为 SSL | |
#WGUI_FAVICON_FILE_PATH=/tmp/1.ico | |
# 配置 Web 界面网站图标,可不配置。 |
配置启动文件
vim /etc/systemd/system/wireguard-ui.service
将下列内容根据自己情况修改后填写进去:
[Unit] | |
Description=WireGuard UI Daemon | |
Wants=network-online.target | |
After=network-online.target | |
[Service] | |
User=root | |
Group=root | |
Type=simple | |
WorkingDirectory=/opt/wireguard-ui | |
EnvironmentFile=/opt/wireguard-ui/.env | |
ExecStart=/opt/wireguard-ui/wireguard-ui | |
[Install] | |
WantedBy=multi-user.target |
配置开机启动
重新加载 UI 服务文件
systemctl daemon-reload
启动
systemctl start wireguard-ui.service
配置开机自启动
systemctl enable wireguard-ui.service
查看状态
systemctl status wireguard-ui.service
systemctl restart wg-quick@wg0.service | |
systemctl enable wg-quick@wg0.service | |
# 配置 wg0 接口的 wg 服务开机启动。 |
设置配置文件修改,自动重新加载生效。
WireGuard-UI 只负责配置信息生成。可以使用 systemd 来监视更改并重新加载配置,使新客户端配置自动生效。
如下,创建两个服务文件
vim /etc/systemd/system/wgui.service
[Unit] | |
Description=Restart WireGuard | |
After=network.target | |
[Service] | |
Type=oneshot | |
ExecStart=/usr/bin/systemctl reload wg-quick@wg0.service | |
[Install] | |
RequiredBy=wgui.path | |
vim /etc/systemd/system/wgui.path
[Unit] | |
Description=Watch /etc/wireguard/wg0.conf for changes | |
[Path] | |
PathModified=/etc/wireguard/wg0.conf | |
[Install] | |
WantedBy=multi-user.target |
配置为开机启动
systemctl daemon-reload | |
systemctl enable wgui.{path,service} | |
systemctl start wgui.{path,service} | |
# 重新加载,配置开机启动,启动。 |
访问、管理、添加客户端配置
Web 访问
浏览器打开
http://192.168.1.1:5000 默认账号密码:admin
修改管理员默认密码
全局配置
- 如客户端访问目标地址或域名
- 客户端的 DNS 服务器
- 接口 MTU 配置(建议 1420,甚至 1400)
- 握手保活间隔
- 防火墙标记
- 路由表 Table
- 配置文件路径(默认即可)
WG 服务器配置
- 配置客户端分配 IP 地址范围
- 配置服务器端端口
- 配置启动 shell 脚本
- 配置关闭 shell 脚本
- 重新生成私钥
客户端配置增加
创建客户端,填入名字和邮箱地址。
提交后,选择应用保存配置。
可以下载配置文件,生成配置文件二维码,通过邮件发送配置文件和二维码图片等
查看客户端状态
绿色为已连接的客户端,可以查看对接公网 IP,传输流量等信息。
配置路由转发
wireguard-ui 和 wireguard 只管把 WG 客户端接入到 Linux 服务器上,并不管流量怎么在服务器上转发。
所以需要自己配置路由转发和 NAT 等
vim /etc/sysctl.conf | |
net.ipv4.ip_forward=1 | |
# 配置服务器支持路由转发 |
sysctl -p | |
# 配置生效 |
策略路由示例
ip route add default via 192.168.182.2 table 150 | |
ip route show table 150 | |
# 创建路由表,并配置默认路由 | |
ip rule add from 10.252.1.0/24 table 150 | |
ip rule show | |
# 将 WG 客户端流量,指向指定的路由表。 |
PS:配置开机启动,可以写为 shell 脚本,作为 wg0 接口的 UP 启动脚本即可。
配置 UI Https 访问
可使用Caddy 自动配置证书,加密其访问。
WireGuard 管理命令
wg \ wg show | |
# 查看当前状态 | |
wg showconf wg0 | |
# 查看当前配置 |
转自:https://1024.day/d/2652 对格式略有修改。
原作者 Blog:https://songxwn.com/
更多资源请 点击这里 关注 TG 频道