WireGuard 相关生态工具使用指南

WireGuard 相关生态工具使用指南

本文档旨在整理和说明一些与 WireGuard 相关的优秀开源工具,涵盖从代理服务到服务器管理的各个方面,并提供基本的使用方法。


1. monius/docker-warp-socks

功能

这个 Docker 镜像通过利用 Cloudflare WARP 服务,快速在您的服务器上创建一个 SOCKS5 代理。这对于访问受地理限制的内容或需要通过 WARP 网络路由流量的场景非常有用。

使用方法

1
2
3
4
5
6
7
8
9
10
11
docker run -d --restart=always \
--name warp-socks \
-e "WGP_USER=your_user" \
-e "WGP_PASS=your_password" \
--cap-add NET_ADMIN \
--cap-add SYS_MODULE \
--sysctl net.ipv6.conf.all.disable_ipv6=0 \
--sysctl net.ipv4.conf.all.src_valid_mark=1 \
-v /lib/modules:/lib/modules \
-p 9091:1080 \
monius/docker-warp-socks

参数说明:

  • -e "WGP_USER=your_user": 设置SOCKS5代理的用户名。
  • -e "WGP_PASS=your_password": 设置SOCKS5代理的密码。
  • -p 9091:1080: 将容器的1080端口(SOCKS5默认端口)映射到主机的9091端口。

注意事项

您提到在国外的VPS和OrbStack上运行失败,这通常是由于以下原因:

  • 内核限制: 很多轻量级VPS(特别是基于OpenVZ等虚拟化技术的)不允许用户加载自定义内核模块。此容器需要 NET_ADMINSYS_MODULE 权限来创建WireGuard网络接口,如果主机环境不支持,容器将无法启动。
  • 缺少WireGuard模块: 容器本身不包含WireGuard内核模块,它依赖于主机操作系统(通过 -v /lib/modules:/lib/modules 挂载)。如果您的VPS或OrbStack环境没有预装或无法加载WireGuard内核模块,则会失败。
  • 解决方案: 尝试在支持完整KVM虚拟化的VPS上运行,或者选择一个明确支持Docker和自定义内核模块的供应商。对于本地环境,确保您的Docker Desktop或OrbStack配置允许容器访问必要的系统权限。

2. pufferffish/wireproxy

功能

monius/docker-warp-socks 类似,wireproxy 也是一个利用 Cloudflare WARP 提供SOCKS5代理的工具。但它本身是一个用Go语言编写的轻量级二进制文件,也可以通过Docker运行,通常资源占用更少。

使用方法

如果您遇到内核模块问题,wireproxy 的一个优势是它有纯用户态的实现(boringtun),不强制依赖主机的内核模块。

1
2
3
4
5
6
7
docker run -d --restart=always \
--name wireproxy \
-p 9092:1080 \
--cap-add NET_ADMIN \
pufferffish/wireproxy \
--bind-address 0.0.0.0:1080 \
--config /etc/wireguard/wgcf.conf

注意: 此方法同样需要 NET_ADMIN 权限。它通常比上一个方案有更好的兼容性。


3. vx3r/wg-gen-web

功能

一个带有Web界面的WireGuard配置生成和管理工具。它允许您通过一个简单的网页来添加和移除客户端、生成配置文件和二维码,非常适合自建小型VPN服务。

使用方法

推荐使用 docker-compose 进行部署。

创建一个 docker-compose.yml 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
version: '3.8'
services:
wg-gen-web:
image: vx3r/wg-gen-web:latest
container_name: wg-gen-web
environment:
- WG_CONF_DIR=/etc/wireguard
- WG_HOST=YOUR_SERVER_IP
- WG_PORT=51820
- WG_ADMIN_USERNAME=admin
- WG_ADMIN_PASSWORD=your_admin_password
volumes:
- ./wireguard_config:/etc/wireguard
ports:
- "8080:8080"
- "51820:51820/udp"
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
restart: unless-stopped

然后运行 docker-compose up -d。之后可以通过 http://YOUR_SERVER_IP:8080 访问管理界面。


4. wg-easy/wg-easy

功能

这是另一个非常流行且易于使用的WireGuard Web UI管理工具。它的界面直观,功能齐全,支持一键创建、禁用客户端和显示二维码。

使用方法

您的命令基本正确,但存在一个小语法错误。以下是修正并带有注释的版本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
docker run -d \
--name=wg-easy \
-e WG_HOST=YOUR_SERVER_IP \
-e PASSWORD=YOUR_ADMIN_PASSWORD \
-e WG_DEFAULT_ADDRESS=10.8.0.x \
-e WG_DEFAULT_DNS=1.1.1.1 \
-e WG_ALLOWED_IPS=0.0.0.0/0 \
-e WG_PERSISTENT_KEEPALIVE=25 \
-v /root/.wg-easy:/etc/wireguard \
-p 51820:51820/udp \
-p 51821:51821/tcp \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--sysctl="net.ipv4.ip_forward=1" \
--restart unless-stopped \
weejewel/wg-easy

修正与说明:

  • WG_HOST: 必须是您服务器的公网IP地址。
  • PASSWORD: 设置Web UI的登录密码。
  • WG_ALLOWED_IPS: 0.0.0.0/0 是一个常用设置,表示所有客户端流量都将通过VPN服务器路由。您之前的 10.0.8.0/24) 最后的括号是中文的,会导致错误。
  • -v /root/.wg-easy:/etc/wireguard: 将WireGuard的配置持久化到主机的 /root/.wg-easy 目录,请确保该目录存在。
  • 访问方式: http://YOUR_SERVER_IP:51821

5. place1/wg-access-server

功能

一个功能更全面的WireGuard一体化访问服务器。它将Web UI和WireGuard后端打包在一起,支持基于OIDC的身份验证,更适合需要用户管理和认证的企业或团队场景。

使用方法

1
2
3
4
5
6
7
8
9
10
11
docker run -d \
--name=wg-access-server \
--cap-add NET_ADMIN \
--cap-add SYS_MODULE \
-p 8000:8000/tcp \
-p 51820:51820/udp \
-v /root/wg-access-server-data:/data \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--sysctl="net.ipv4.ip_forward=1" \
--restart=unless-stopped \
place1/wg-access-server

说明:

  • 首次运行时,访问 http://YOUR_SERVER_IP:8000
  • 它会引导您创建一个管理员账户。
  • 之后,您就可以通过Web界面管理用户和设备,它会自动处理底层的WireGuard配置。
  • 所有数据都保存在主机的 /root/wg-access-server-data 目录中。

WireGuard 相关生态工具使用指南
https://kingjem.github.io/2023/05/15/software/wg-related-ecosystem-usage/
作者
Ruhai
发布于
2023年5月15日
许可协议