WireGuard-UI 安装和配置

2023-11-24 11:53:45 +08:00
 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/

4196 次点击
所在节点    Linux
26 条回复
onR3OQ22adAGKq8g
2023-11-24 12:52:31 +08:00
这个比 wireguard easy 配置和自定义地方多点,不错不错。
x86
2023-11-24 12:54:52 +08:00
不错不错
x86
2023-11-24 12:55:11 +08:00
,挺喜欢这类面板类程序,部署太方便了
jfcai
2023-11-24 13:02:14 +08:00
这个可以啊,方便多了
shoper
2023-11-24 13:04:56 +08:00
请教下,能否在同一台 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
2023-11-24 13:07:24 +08:00
我总是找不到这类 gui 的使用场景。。。因为简单的 hub-spoke 拓扑我可以写一个脚本来自动生成各节点的配置档,另外这类 ui 也很难或根本不能导入已有的节点配置。。。,另一方面,复杂的拓扑必须精确设计和设定路由防火墙等等,换句话说必须手搓😂
Ga2en
2023-11-24 13:07:51 +08:00
非常感谢,马一下先
Songxwn
2023-11-24 13:32:52 +08:00
@jasonyang9 方便接入终端,而不是站点到站点
mantouboji
2023-11-24 13:40:26 +08:00
wireguard 就那么几行文本配置文件,一个 vi 一个 qrencode 就足够了,犯得着弄这么复杂的 GUI ?

又不是要开商业机场。
loveqianool
2023-11-24 13:48:52 +08:00
tediorelee
2023-11-24 14:28:33 +08:00
支持 ipv6 不?
bigshawn
2023-11-24 15:03:00 +08:00
等个 docker
yyysuo
2023-11-24 15:34:47 +08:00
我在用 wg-easy ,勉强能用,比楼主这个设置的项目少一些。
Achophiark
2023-11-24 17:03:18 +08:00
也在用 wg-easy,另一个选择,不错
ysc3839
2023-11-24 19:27:44 +08:00
我个人选择在 NetworkManager 里面配置 WireGuard
bobryjosin
2023-11-24 19:34:21 +08:00
习惯手搓,不过这个面板也不错
wangweitung
2023-11-24 20:48:22 +08:00
能 docker 部署么
ospider
2023-11-24 20:53:46 +08:00
不错,我一直想弄个这个东西来着
billytom
2023-11-24 20:57:34 +08:00
楼主做的不错!
iorilu
2023-11-24 22:35:44 +08:00
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