WireGuard-UI部署
WireGuard 是一种通信协议和免费开源软件,可实现加密的三层隧道协议 ,其设计目标是易用性、高速性能和低攻击面。 它旨在获得比 IPsec 和 OpenVPN 这两种常见的隧道协议更好的性能和更强大的功能。其报文承载在UDP。
WireGuard-UI则是用来管理WireGuard配置文件的 Web 可视化管理开源项目,可以方便的生成配置,通过邮件、二维码分发。
Docker一键部署
docker-compose.yaml
XML/HTML代码
- version: "3"
- services:
- wg:
- build: .
- #image: ngoduykhanh/wireguard-ui:latest
- container_name: wgui
- cap_add:
- - NET_ADMIN
- network_mode: host
- environment:
- - SENDGRID_API_KEY
- - EMAIL_FROM_ADDRESS
- - EMAIL_FROM_NAME
- - SESSION_SECRET
- - WGUI_USERNAME=alpha
- - WGUI_PASSWORD=this-unusual-password
- - WG_CONF_TEMPLATE
- - WGUI_MANAGE_START=false
- - WGUI_MANAGE_RESTART=false
- logging:
- driver: json-file
- options:
- max-size: 50m
- volumes:
- - ./db:/app/db
- - /etc/wireguard:/etc/wireguard
修改参数后运行命令 docker-compose up -d
浏览器打开 http://IP:5000 账号(WGUI_USERNAME)密码(WGUI_PASSWORD) 就是自己修改的参数
物理机部署
环境介绍
1、使用二进制文件进行安装。
2、系统使用Ubuntu 22.04+ (也适用于Debian 11+)
3、使用systemd管理服务。
4、注意关闭防火墙或开放对应端口。
安装WireGuard 和 下载 WireGuard-UI
XML/HTML代码
- # 关闭防火墙
- ufw disable
- # 安装WG本体
- apt -y install wireguard wget tree
- # 从Github下载,或通过sftp上传。(建议下载最新)
- 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
- # 解压到指定文件夹
- 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
XML/HTML代码
- # 配置绑定IP和端口,默认为5000
- BIND_ADDRESS=0.0.0.0:5000
- # 邮件发送人地址
- EMAIL_FROM_ADDRESS=admin@qq.com
- # 邮件人名字
- EMAIL_FROM_NAME=admin
- # SMTP服务器域名或IP
- SMTP_HOSTNAME=smtp.exmail.qq.com
- # SMTP服务器端口
- SMTP_PORT=465
- # 邮箱登录账号
- SMTP_USERNAME=admin@qq.com
- # 邮箱登录密码
- SMTP_PASSWORD=Ps1234
- # 登录方式
- SMTP_AUTH_TYPE=LOGIN
- # 加密方式,一般为SSL
- SMTP_ENCRYPTION=SSL
- # 配置Web界面网站图标,可不配置。
- #WGUI_FAVICON_FILE_PATH=/tmp/1.ico
vim /etc/systemd/system/wireguard-ui.service
XML/HTML代码
- [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
XML/HTML代码
- # 重新加载UI服务文件、启动、配置开机、查看状态
- systemctl daemon-reload
- systemctl start wireguard-ui.service
- systemctl enable wireguard-ui.service
- systemctl status wireguard-ui.service
- # 配置wg0 接口的wg服务开机启动。
- systemctl restart wg-quick@wg0.service
- systemctl enable wg-quick@wg0.service
设置配置文件修改,自动重新加载生效。
WireGuard-UI 只负责配置信息生成。可以使用 systemd 来监视更改并重新加载配置,使新客户端配置自动生效。
如下,创建两个服务文件
vim /etc/systemd/system/wgui.service
XML/HTML代码
- [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
XML/HTML代码
- # 重新加载,配置开机启动,启动。
- systemctl daemon-reload
- systemctl enable wgui.{path,service}
- systemctl start wgui.{path,service}
访问、管理、添加客户端配置
Web访问浏览器打开
http://192.168.1.1:5000 默认账号密码:admin
XML/HTML代码
- 修改管理员默认密码
- 全局配置
- 如客户端访问目标地址或域名
- 客户端的DNS服务器
- 接口MTU配置(建议1420,甚至1400)
- 握手保活间隔
- 防火墙标记
- 路由表 Table
- 配置文件路径(默认即可)
- WG服务器配置
- 配置客户端分配IP地址范围
- 配置服务器端端口
- 配置启动shell脚本
- 配置关闭shell脚本
- 重新生成私钥
- 客户端配置增加
- 创建客户端,填入名字和邮箱地址。
提交后,选择应用保存配置。
可以下载配置文件,生成配置文件二维码,通过邮件发送配置文件和二维码图片等
查看客户端状态
绿色为已连接的客户端,可以查看对接公网IP,传输流量等信息。
配置路由转发
wireguard-ui 和wireguard 只管把WG客户端接入到Linux服务器上,并不管流量怎么在服务器上转发。
所以需要自己配置路由转发和NAT等
XML/HTML代码
- # 配置服务器支持路由转发
- vim /etc/sysctl.conf
- net.ipv4.ip_forward=1
- # 配置生效
- sysctl -p
XML/HTML代码
- # 创建路由表,并配置默认路由
- ip route add default via 192.168.182.2 table 150
- ip route show table 150
- # 将WG客户端流量,指向指定的路由表。
- ip rule add from 10.252.1.0/24 table 150
- ip rule show
PS:配置开机启动,可以写为shell脚本,作为wg0 接口的UP 启动脚本即可。
配置UI Https访问
可使用Caddy 自动配置证书,加密其访问。
WireGuard 管理命令
XML/HTML代码
- # 查看当前状态
- wg \ wg show
- # 查看当前配置
- wg showconf wg0
类似程序: