51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Ubuntu部署WireGuard-UI管理平台

文章介绍:使用github-ngoduykhanh的WireGuard-UI开源项目,简单搭建一个WireGuard管理平台,与传统相比多了Web管理平台,利于管理员编辑服务端和客户端配置文件,创建用户,查看用户在线状态,支持邮件发送配置文件。

一、项目来源 {#一-项目来源}

github-ngoduykhanh

二、部署前准备 {#二-部署前准备}

1、一台linux系统

个人测试使用,可以使用VMware Workstation 安装Ubuntu,点我跳转安装Ubuntu

2、SSH管理工具

点我:可以下载MobaXterm中文最新版本(可以激活,激活方法可以见跳转博客)

3、WireGuard客户端

点我:可以跳转WireGuard官方下载页面

三、正式部署 {#三-正式部署}

3.1、关闭防火墙 {#3-1-关闭防火墙}

ufw disable

3.2、安装WireGuard {#3-2-安装WireGuard}

sudo apt install -y wireguard

3.3、安装额外命令 {#3-3-安装额外命令}

  1. wget: 用于在命令行中下载文件的工具。可以通过指定 URL 来下载文件,支持断点续传和使用 HTTP、HTTPS、FTP 协议等。

  2. tree: 用于以树状图形式显示目录结构的工具。它可以递归地列出目录和文件,并以树形结构显示它们之间的关系。

  3. tar: 用于在 Linux 系统上创建和提取归档文件的工具。它可以创建 tar 存档文件,也可以将文件从 tar 存档中提取出来。tar 常用于打包和解压文件。

    sudo apt install -y wget tree tar

3.4、创建WireGuard-ui目录 {#3-4-创建WireGuard-ui目录}

cd /opt;mkdir wireguard-ui

3.5、下载WireGuard-ui {#3-5-下载WireGuard-ui}

截止2024年3月3号,当前最新版本是v0.6.2,建议安装前看一下最新版本
WireGuard-UI-Releases 地址

sudo wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/v0.6.2/wireguard-ui-v0.6.2-linux-amd64.tar.gz

3.6、解压文件至wireguard-ui目录 {#3-6-解压文件至wireguard-ui目录}

tar -zxvf wireguard-ui-v*.tar.gz -C ./wireguard-ui/

3.7、查看opt目录结构 {#3-7-查看opt目录结构}

tree /opt

yydy_2024-03-03_14-35-42

3.8、配置WireGuard-UI-Web管理和邮件参数 {#3-8-配置WireGuard-UI-Web管理和邮件参数}

nano /opt/wireguard-ui/.env

邮件配置可选,如果需要使用邮件发送用户的配置文件或者QR二维码则需要填写正确

BIND_ADDRESS=0.0.0.0:5000
# 配置绑定IP和端口,默认为5000(5000端口是web管理端口,可以自定义)
EMAIL_FROM_ADDRESS=your-qq@qq.com
# 邮件发送人地址
EMAIL_FROM_NAME=your-name
# 邮件人名字
SMTP_HOSTNAME=smtp.qq.com
# SMTP服务器域名或IP(qq的smtp地址默认不改)
SMTP_PORT=465
# SMTP服务器端口(默认不改)
SMTP_USERNAME=your-qq@qq.com
# 邮箱登录账号
SMTP_PASSWORD=Ps1234
# 邮箱登录密码(不是qq号的登录密码,是第三方登录的授权码)
SMTP_AUTH_TYPE=LOGIN
# 登录方式(默认不改)
SMTP_ENCRYPTION=SSL
# 加密方式,一般为SSL(默认不改)
#WGUI_FAVICON_FILE_PATH=/opt/wireguard-ui/logo.ico
# 配置Web界面网站图标,可不配置

3.9、配置启动文件 {#3-9-配置启动文件}

nano /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
`

yydy_2024-03-03_15-00-08

3.10、配置开机启动 {#3-10-配置开机启动}

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

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

yydy_2024-03-03_15-01-39

3.11、重启wg0服务 {#3-11-重启wg0服务}

systemctl restart wg-quick@wg0.service

3.12、开机自启wg0接口 {#3-12-开机自启wg0接口}

systemctl enable wg-quick@wg0.service

3.13、查看接口状态 {#3-13-查看接口状态}

ip addr

yydy_2024-03-03_15-05-18

3.14、配置systemd服务 {#3-14-配置systemd服务}

WireGuard-UI 只负责配置信息生成。可以使用 systemd 来监视更改并重新加载配置,使新客户端配置自动生效。

3.14.1、配置wgui.service服务 {#3-14-1-配置wgui-service服务}

nano /etc/systemd/system/wgui.service

[Unit]
Description=Restart WireGuard
After=network.target

\[Service\]
Type=oneshot
ExecStart=/usr/bin/systemctl restart wg-quick@wg0.service

`[Install]
RequiredBy=wgui.path
`

yydy_2024-03-03_15-08-26

3.14.2、配置wgui.path服务 {#3-14-2-配置wgui-path服务}

wgui.path 是 systemd 中的一个路径单元,用于监视特定路径下的文件或目录。当该路径下的文件或目录发生变化时,可以触发相关的服务单元进行处理。

nano /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
`

3.14.3、配置wgui服务开机自启 {#3-14-3-配置wgui服务开机自启}

重新加载,配置开机启动,启动服务

systemctl daemon-reload
systemctl enable wgui.{path,service}
systemctl start wgui.{path,service}

四、Web管理 {#四-Web管理}

浏览器打开http://your-ip:5000
默认用户名密码都是:admin

yydy_2024-03-03_15-15-05
yydy_2024-03-03_15-21-03

4.1、添加管理员 {#4-1-添加管理员}

如果需要删除admin管理员,需要先退出admin登录,然后使用新管理员登录,在删除admin管理员(可选)

yydy_2024-03-03_15-22-29

4.2、全局配置 {#4-2-全局配置}

  • 如客户端访问目标地址或域名
  • 客户端的DNS服务器
  • 接口MTU配置(建议1420,甚至1400)
  • 握手保活间隔
  • 防火墙标记
  • 路由表 Table
  • 配置文件路径(默认即可)

yydy_2024-03-03_15-30-35

4.3、服务端配置 {#4-3-服务端配置}

  • 配置客户端分配IP地址范围
  • 配置服务器端端口
  • 配置启动shell脚本
  • 配置关闭shell脚本
  • 重新生成私钥

yydy_2024-03-03_15-34-49

4.4、查看wg0接口IP {#4-4-查看wg0接口IP}

发现接口IP还是10网段,所以web这里更改后不会同步到底层接口中,还需底层运行重载配置【更新:在3.14.1中增加:ExecStart=/usr/bin/systemctl restart wg-quick@wg0.service重启wg0网卡,这里如果发现接口IP变了的情况下,不用在执行下面的4.5步骤,直接看4.6步骤即可。】

ip addr

yydy_2024-03-03_15-36-05

4.5、重启wg0接口 {#4-5-重启wg0接口}

systemctl restart wg-quick@wg0.service

yydy_2024-03-03_15-43-59

4.6、添加客户端 {#4-6-添加客户端}

yydy_2024-03-03_15-47-19
yydy_2024-03-03_15-48-12

4.7、获取客户端配置 {#4-7-获取客户端配置}

4.7.1、直接下载 {#4-7-1-直接下载}

可以直接把yydy.conf配置文件下载下来,发送给用户,然后用WireGuard客户端打开就可以直接连接

yydy_2024-03-03_15-49-25

4.7.2、扫描二维码 {#4-7-2-扫描二维码}

点击QR code可以显示该用户的配置二维码,直接用客户端扫描二维码可以快速添加

yydy_2024-03-03_15-52-05

4.7.3、邮件发送配置 {#4-7-3-邮件发送配置}

yydy_2024-03-03_15-53-31
yydy_2024-03-03_15-58-04
yydy_2024-03-03_15-59-27

五、客户端连接测试 {#五-客户端连接测试}

5.1、Windows连接 {#5-1-Windows连接}

yydy_2024-03-03_16-11-34

测试发现,连接成功可以通100.255.255.1,但是不能通内网宿主机网络,以及外网,为了能通过VPN隧道上网或者连接内网,还需要进行下面的操作

yydy_2024-03-03_16-25-58

5.2、开启路由转发 {#5-2-开启路由转发}

  1. 临时开启路由转发:
    这会立即在系统中启用路由转发,但重启后会失效。

    sudo sysctl -w net.ipv4.ip_forward=1
    
  2. 永久开启路由转发:
    这会使系统在每次启动时都启用路由转发。

    • 编辑 /etc/sysctl.conf 文件:

      sudo nano /etc/sysctl.conf
      
    • 在文件中找到并取消注释以下行(如果不存在,则添加):

      net.ipv4.ip_forward=1
      
    • 保存并关闭文件,然后重新加载配置:

      sudo sysctl -p
      

5.3、配置iptables {#5-3-配置iptables}

iptables -I INPUT -p udp --dport 51820 -m comment --comment "wireguard" -j ACCEPT && iptables -t nat -A POSTROUTING -s 100.255.255.0/24 -j MASQUERADE

5.4、安装iptables-persistent {#5-4-安装}

sudo apt-get install -y iptables-persistent && sudo service netfilter-persistent save

5.5、重启wg0服务 {#5-5-重启wg0服务}

systemctl restart wg-quick@wg0.service

5.6、客户端重连验证 {#5-6-客户端重连验证}

yydy_2024-03-03_16-45-32

六、Web查看客户端状态 {#六-Web查看客户端状态}

yydy_2024-03-03_16-51-56

七、底层查看客户端状态 {#七-底层查看客户端状态}

7.1、查看当前状态 {#7-1-查看当前状态}

wg show

yydy_2024-03-03_16-55-52

7.2、查看当前配置 {#7-2-查看当前配置}

wg showconf wg0

yydy_2024-03-03_16-56-41

赞(2)
未经允许不得转载:工具盒子 » Ubuntu部署WireGuard-UI管理平台