请稍侯

wireguard-UI 安装配置

02 November 2024

WireGuard-UI

# 重启 wireguard-ui 及其配置热更新服务
systemctl daemon-reload
systemctl restart wireguard-ui.service
systemctl restart wgui.{path,service}

# 重启wg0服务
systemctl restart [email protected]

Tip: 配置好peer后,如果listening port 51820 是在aliyun ecs 上记得在安全组入口方向上添加策略规则:允许自定义 UDP 目的:51820/51820 源:所有IPv4(0.0.0.0/0)


WireGuard-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=[email protected]
# 邮件发送人地址
EMAIL_FROM_NAME=admin
# 邮件人名字
SMTP_HOSTNAME=smtp.exmail.qq.com
# SMTP服务器域名或IP
SMTP_PORT=465
# SMTP服务器端口
SMTP_USERNAME=[email protected]
# 邮箱登录账号
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

配置开机启动

systemctl daemon-reload
systemctl start wireguard-ui.service
systemctl enable wireguard-ui.service
systemctl status wireguard-ui.service 

# 重新加载UI服务文件、启动、配置开机、查看状态


systemctl restart [email protected]

systemctl enable [email protected]

# 配置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 [email protected]

[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,传输流量等信息。
修改 /opt/wireguard-ui/db/clients/xxx.json 中的 allowed_ips 里添加家里内网网段(192.168.100.0/24).

配置路由转发

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
# 查看当前配置

参考
WireGuard-UI 安装和配置|
使用WireGuard-UI 搭建一个WireGuard管理平台
wireguard实现虚拟私有网络搭建