记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

WireGuard-UI部署

WireGuard-UI部署

WireGuard 是一种通信协议和免费开源软件,可实现加密的三层隧道协议 ,其设计目标是易用性、高速性能和低攻击面。 它旨在获得比 IPsec 和 OpenVPN 这两种常见的隧道协议更好的性能和更强大的功能。其报文承载在UDP。
WireGuard-UI则是用来管理WireGuard配置文件的 Web 可视化管理开源项目,可以方便的生成配置,通过邮件、二维码分发。
Docker一键部署
docker-compose.yaml
XML/HTML代码
  1. version: "3"
  2.  
  3. services:
  4.   wg:
  5.     build: .
  6.     #image: ngoduykhanh/wireguard-ui:latest
  7.     container_name: wgui
  8.     cap_add:
  9.       - NET_ADMIN
  10.     network_mode: host
  11.     environment:
  12.       - SENDGRID_API_KEY
  13.       - EMAIL_FROM_ADDRESS
  14.       - EMAIL_FROM_NAME
  15.       - SESSION_SECRET
  16.       - WGUI_USERNAME=alpha
  17.       - WGUI_PASSWORD=this-unusual-password
  18.       - WG_CONF_TEMPLATE
  19.       - WGUI_MANAGE_START=false
  20.       - WGUI_MANAGE_RESTART=false
  21.     logging:
  22.       driver: json-file
  23.       options:
  24.         max-size: 50m
  25.     volumes:
  26.       - ./db:/app/db
  27.       - /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代码
  1. # 关闭防火墙
  2. ufw disable
  3. # 安装WG本体
  4. apt -y install wireguard wget tree
  5. # 从Github下载,或通过sftp上传。(建议下载最新)
  6. cd /opt
  7. mkdir wireguard-ui
  8. wget https://github.com/ngoduykhanh/wireguard-ui/releases/download/v0.5.2/wireguard-ui-v0.5.2-linux-amd64.tar.gz
  9. # 解压到指定文件夹
  10. tar -zxvf wireguard-ui-v*.tar.gz -C ./wireguard-ui/
  11. # 查看当前目录结构应该如下
  12. tree /opt
  13. /opt
  14. ├── wireguard-ui
  15. │   └── wireguard-ui
  16. └── wireguard-ui-v0.5.2-linux-amd64.tar.gz
配置UI开机启动和参数配置
编写配置文件
vim /opt/wireguard-ui/.env
XML/HTML代码
  1. # 配置绑定IP和端口,默认为5000
  2. BIND_ADDRESS=0.0.0.0:5000
  3. # 邮件发送人地址
  4. EMAIL_FROM_ADDRESS=admin@qq.com
  5. # 邮件人名字
  6. EMAIL_FROM_NAME=admin
  7. # SMTP服务器域名或IP
  8. SMTP_HOSTNAME=smtp.exmail.qq.com
  9. # SMTP服务器端口
  10. SMTP_PORT=465
  11. # 邮箱登录账号
  12. SMTP_USERNAME=admin@qq.com
  13. # 邮箱登录密码
  14. SMTP_PASSWORD=Ps1234
  15. # 登录方式
  16. SMTP_AUTH_TYPE=LOGIN
  17. # 加密方式,一般为SSL
  18. SMTP_ENCRYPTION=SSL
  19.  
  20. # 配置Web界面网站图标,可不配置。
  21. #WGUI_FAVICON_FILE_PATH=/tmp/1.ico
配置启动文件
vim /etc/systemd/system/wireguard-ui.service
XML/HTML代码
  1. [Unit]
  2. Description=WireGuard UI Daemon
  3. Wants=network-online.target
  4. After=network-online.target
  5.  
  6. [Service]
  7. User=root
  8. Group=root
  9. Type=simple
  10. WorkingDirectory=/opt/wireguard-ui
  11. EnvironmentFile=/opt/wireguard-ui/.env
  12. ExecStart=/opt/wireguard-ui/wireguard-ui
  13.  
  14. [Install]
  15. WantedBy=multi-user.target
配置开机启动
XML/HTML代码
  1. # 重新加载UI服务文件、启动、配置开机、查看状态
  2. systemctl daemon-reload
  3. systemctl start wireguard-ui.service
  4. systemctl enable wireguard-ui.service
  5. systemctl status wireguard-ui.service
  6.  
  7. # 配置wg0 接口的wg服务开机启动。
  8. systemctl restart wg-quick@wg0.service
  9. systemctl enable wg-quick@wg0.service
设置配置文件修改,自动重新加载生效。
WireGuard-UI 只负责配置信息生成。可以使用 systemd 来监视更改并重新加载配置,使新客户端配置自动生效。
如下,创建两个服务文件
vim /etc/systemd/system/wgui.service
XML/HTML代码
  1. [Unit]
  2. Description=Restart WireGuard
  3. After=network.target
  4.  
  5. [Service]
  6. Type=oneshot
  7. ExecStart=/usr/bin/systemctl reload wg-quick@wg0.service
  8.  
  9. [Install]
  10. RequiredBy=wgui.path
  11.  
  12. vim /etc/systemd/system/wgui.path
  13.  
  14. [Unit]
  15. Description=Watch /etc/wireguard/wg0.conf for changes
  16.  
  17. [Path]
  18. PathModified=/etc/wireguard/wg0.conf
  19.  
  20. [Install]
  21. WantedBy=multi-user.target
配置为开机启动
XML/HTML代码
  1. # 重新加载,配置开机启动,启动。
  2. systemctl daemon-reload
  3. systemctl enable wgui.{path,service}
  4. systemctl start wgui.{path,service}
访问、管理、添加客户端配置
Web访问浏览器打开
http://192.168.1.1:5000 默认账号密码:admin
XML/HTML代码
  1. 修改管理员默认密码
  2.  
  3. 全局配置
  4. 如客户端访问目标地址或域名
  5. 客户端的DNS服务器
  6. 接口MTU配置(建议1420,甚至1400)
  7. 握手保活间隔
  8. 防火墙标记
  9. 路由表 Table
  10. 配置文件路径(默认即可)
  11.  
  12. WG服务器配置
  13. 配置客户端分配IP地址范围
  14. 配置服务器端端口
  15. 配置启动shell脚本
  16. 配置关闭shell脚本
  17. 重新生成私钥
  18.  
  19. 客户端配置增加
  20. 创建客户端,填入名字和邮箱地址。
提交后,选择应用保存配置。
可以下载配置文件,生成配置文件二维码,通过邮件发送配置文件和二维码图片等
查看客户端状态
绿色为已连接的客户端,可以查看对接公网IP,传输流量等信息。
配置路由转发
wireguard-ui 和wireguard 只管把WG客户端接入到Linux服务器上,并不管流量怎么在服务器上转发。
所以需要自己配置路由转发和NAT等
XML/HTML代码
  1. # 配置服务器支持路由转发
  2. vim /etc/sysctl.conf
  3. net.ipv4.ip_forward=1
  4. # 配置生效
  5. sysctl -p
策略路由示例
XML/HTML代码
  1. # 创建路由表,并配置默认路由
  2. ip route add default via 192.168.182.2 table 150
  3. ip route show table 150
  4. # 将WG客户端流量,指向指定的路由表。
  5. ip rule add from 10.252.1.0/24 table 150
  6. ip rule show
PS:配置开机启动,可以写为shell脚本,作为wg0 接口的UP 启动脚本即可。
配置UI Https访问
可使用Caddy 自动配置证书,加密其访问。
WireGuard 管理命令
XML/HTML代码
  1. # 查看当前状态
  2. wg \ wg show
  3. # 查看当前配置
  4. wg showconf wg0
类似程序:

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):