飞牛 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,点击新增项目按钮。

注意:管理面板密码 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

配置管理面板密码

构建完,需要进一步操作来生成用于配置的密码。

修改 docker-compose.yml 配置文件。

注意:如果配置 PASSWORD_HASH 不用任何双单引号就需要把所有 $ 符号加倍,即 $ab$c$$ab$$c ,正确的配置有这几种形式,PASSWORD_HASH='$ab$c'PASSWORD_HASH="$ab$c"PASSWORD_HASH=$$ab$$c

添加和使用节点

在浏览器打开 http://IP:5000 即可打开管理面板,输入密码登录。

点击上方右边的新建,输入该新节点的名称即可,然后通过二维码或者下载配置文件,给手机或电脑 Wireguard 软件添加配置。

我们只需要连接校园网,不进行任何认证操作,直接在 Wireguard 软件连接节点就行了。