飞牛 Docker 搭建 WireGuard 协议绕校园网认证上网
上集回顾:WireGuard 协议绕校园网认证 · 龙介的笔记本
由于不知道哪里限制的问题导致云服务器使用一段时间后 53 端口会被拦截禁止通信就没再折腾了,但是在第二学期有幸的进了工作室,有了稳定的24小时运行的机器,而且网络极佳,校园网也是全校跨网段互通,于是就重新折腾起来了。重新编辑了本教程。
使用 wg-easy 进行搭建
介绍大概思路
在可访问外网的、可24小时稳定运行的机器上部署 Wireguard 服务,借助校园网认证使用 53 UDP 端口,绕过认证,把电脑访问的流量转发到部署 Wireguard 服务的机器上,再由该机器帮我们访问,然后把访问的结果返回给电脑。
准备工作
在你的 NAS 任意位置创建一个文件夹用来存放配置文件,以下是我的目录结构参考,不一定跟我的一样。
用户储存空间
├── server #专门存放 Docker 容器储存卷的目录
│ ├── wireguard #存放本次教程的配置文件目录
│ │ ├── docker-compose.yml #自动生成的 Docker Compose 文件
│ │ └── ... #其他自动生成的配置文件
│ │
│ └── ...
└── ...
部署 wg-easy
构建 Compose
在飞牛管理首页,点击打开 Docker,在弹出窗口的左边菜单点击进入 Compose,点击新增项目按钮。
- 项目名称自便,我填的是 wireguard-server;
- 路径选择上面准备工作创建的目录,比如我的是
/用户储存空间/server/wireguard
; - 来源选择“创建 docker-compose.yml”,拷贝以下的内容到你的页面;
- 勾选“创建项目后立即启动”,确定即可。
注意:管理面板密码 PASSWORD_HASH
环境变量需要先构建好容器才能生成出来!
services:
wg-easy:
environment:
- LANG=chs
- WG_HOST=*.*.*.* #飞牛NAS设备 IP
- PASSWORD_HASH=****** #管理面板密码
- PORT=5000 #管理页面端口
- WG_PORT=53
- WG_DEFAULT_ADDRESS=10.0.0.x
- WG_DEFAULT_DNS=8.8.8.8
- WG_MTU=1420
- WG_ALLOWED_IPS=0.0.0.0/0
- WG_PERSISTENT_KEEPALIVE=30
- UI_TRAFFIC_STATS=true
- UI_CHART_TYPE=2
container_name: wireguard-server
image: ghcr.io/wg-easy/wg-easy
restart: unless-stopped
volumes:
- ./:/etc/wireguard
ports:
- "53:53/udp"
- "5000:5000/tcp"
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
配置管理面板密码
构建完,需要进一步操作来生成用于配置的密码。
- 在左边菜单点击进入容器,找到 wireguard-server 容器;
- 将鼠标移到该容器的最右边的 ··· ,选择终端;
- 在弹出的窗口点击
/bin/bash
右边的连接; - 在黑色终端里输入
wgpw 密码
即可生成用于配置的密码,记下。
修改 docker-compose.yml
配置文件。
- 回到 Compose 界面,找到 wireguard-server;
- 先点击电源符号停止所有容器,再在最右边的 ··· 里选择详情;
- 选择 YAML 配置,把刚才生成密码替换
- PASSWORD_HASH=****** #管理面板密码
; - 修改完,在 YAML 配置上方最右边的 ··· 里选择重新构建即可。
注意:如果配置 PASSWORD_HASH
不用任何双单引号就需要把所有 $ 符号加倍,即 $ab$c
变 $$ab$$c
,正确的配置有这几种形式,PASSWORD_HASH='$ab$c'
、PASSWORD_HASH="$ab$c"
、PASSWORD_HASH=$$ab$$c
。
添加和使用节点
在浏览器打开 http://IP:5000
即可打开管理面板,输入密码登录。
点击上方右边的新建,输入该新节点的名称即可,然后通过二维码或者下载配置文件,给手机或电脑 Wireguard 软件添加配置。
我们只需要连接校园网,不进行任何认证操作,直接在 Wireguard 软件连接节点就行了。