WireGuard-UI 安装和配置

167 天前
 Songxwn

简介

WireGuard 是一种通信协议和免费开源软件,可实现加密的三层隧道协议 ,其设计目标是易用性、高速性能和低攻击面。 它旨在获得比 IPsec 和 OpenVPN 这两种常见的隧道协议更好的性能和更强大的功能。其报文承载在 UDP 。

2020 年 5 月,该软件的 Linux 版本达到了稳定的生产版本,并被合并到 Linux 6.3 内核中,并在一些 Linux 发行版中向后移植到早期的 Linux 内核。

WireGuard-UI 则是用来管理 WireGuard 配置文件的 Web 可视化管理开源项目,可以方便的生成配置,通过邮件、二维码分发。

项目地址:https://github.com/ngoduykhanh/wireguard-ui

功能

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

配置开机启动

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

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


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

修改管理员默认密码

全局配置

WG 服务器配置

客户端配置增加

创建客户端,填入名字和邮箱地址。

提交后,选择应用保存配置。

可以下载配置文件,生成配置文件二维码,通过邮件发送配置文件和二维码图片等

查看客户端状态

绿色为已连接的客户端,可以查看对接公网 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 自动配置证书,加密其访问

个人博客

https://songxwn.com/

3314 次点击
所在节点    Linux
25 条回复
ixdeal
167 天前
这个比 wireguard easy 配置和自定义地方多点,不错不错。
x86
167 天前
不错不错
x86
167 天前
,挺喜欢这类面板类程序,部署太方便了
jfcai
167 天前
这个可以啊,方便多了
shoper
167 天前
请教下,能否在同一台 vps 上同时配置 ss 和 wiedguard 呢?其实需求就是想在 vps 上用 surfshark 的节点做落地解锁下流媒体应用。我把 surfshark 的 wireguard 节点配置 COPY 到 VPS 上后启动,这台 vps 就失联了。也尝试加了
PostUp = ip -4 rule add from 10.14.0.2/16 lookup main prio 18
PostDown = ip -4 rule delete from 10.14.0.2/16 lookup main prio 18
但并没有起作用
jasonyang9
167 天前
我总是找不到这类 gui 的使用场景。。。因为简单的 hub-spoke 拓扑我可以写一个脚本来自动生成各节点的配置档,另外这类 ui 也很难或根本不能导入已有的节点配置。。。,另一方面,复杂的拓扑必须精确设计和设定路由防火墙等等,换句话说必须手搓😂
Ga2en
167 天前
非常感谢,马一下先
Songxwn
167 天前
@jasonyang9 方便接入终端,而不是站点到站点
mantouboji
167 天前
wireguard 就那么几行文本配置文件,一个 vi 一个 qrencode 就足够了,犯得着弄这么复杂的 GUI ?

又不是要开商业机场。
loveqianool
167 天前
tediorelee
167 天前
支持 ipv6 不?
bigshawn
167 天前
等个 docker
yyysuo
167 天前
我在用 wg-easy ,勉强能用,比楼主这个设置的项目少一些。
Achophiark
167 天前
也在用 wg-easy,另一个选择,不错
ysc3839
166 天前
我个人选择在 NetworkManager 里面配置 WireGuard
bobryjosin
166 天前
习惯手搓,不过这个面板也不错
wangweitung
166 天前
能 docker 部署么
ospider
166 天前
不错,我一直想弄个这个东西来着
billytom
166 天前
楼主做的不错!
iorilu
166 天前
wireguard 能访问 openai 和 chatgpt 吗

前几天折腾了下, 看了个 warp 和 wireguard 教程, 弄了个节点, 结果访问不了 openai

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/994791

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX