何 Linux 主机上安装和管理 WireGuard 的最简单方法!

一、Docker-compose.yml文件

services:
  wg-easy:
    image: ghcr.io/wg-easy/wg-easy
    container_name: wg-easy
    network_mode: bridge
    restart: unless-stopped
    environment:
      - WG_HOST=1.2.3.4
      - PASSWORD_HASH=***
      - WG_DEFAULT_ADDRESS=192.168.6.x
      - WG_DEFAULT_DNS=223.6.6.6
      - WG_ALLOWED_IPS=192.168.6.0/24
      - WG_PERSISTENT_KEEPALIVE=25
    volumes:
      - ./config:/etc/wireguard
    ports:
      - "51820:51820/udp"
      - "51821:51821/tcp"
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1

二、其他事项

  1. wg-easy登录密码使用生成
    wg-password (wgpw) 是一个脚本,它生成用于 wg-easy 的 bcrypt 密码哈希,通过要求密码来增强安全性。docker 生成 bcrypt 密码哈希,使用 bcrypt 密码哈希值替换。

    docker run --rm -it ghcr.io/wg-easy/wg-easy wgpw 'YOUR_PASSWORD'
    PASSWORD_HASH='$2b$12$coPqCsPtcFO.Ab99xylBNOW4.Iu7OOA2/ZIboHN6/oyxca3MWo7fW' // 你的密码是:YOUR_PASSWORD
  2. yml文件注意
  • docker run 命令时请确保将密码括在单引号中
  • 使用 docker-compose.yml 时,不要将生成的哈希密码括在单引号中。而是将每个 $ 符号替换为两个 $$ 符号,例如:

    - PASSWORD_HASH=$$2y$$10$$hBCoykrB95WSzuV4fafBzOHWKu9sbyVa34GJr8VV5R/pIelfEMYyG
  1. Web UI访问 在tcp映射端口上,使用http://0.0.0.0:51821登录。
  2. WG_DEFAULT_ADDRESS客户端 IP 地址范围192.168.6.x(后面是x),不是只能一客户端。
  3. nginx配置

    server {
        server_name ⚠️wg-easy.myhomelab.com;
    
        location / {
            proxy_pass http://wg-easy:51821/;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
            proxy_set_header Host $host;
        }
    }
如果觉得我的文章对你有用,请随意赞赏