WG-Easy logoVPN

WG-Easy

Giao diện quản lý WireGuard VPN đơn giản, dễ tạo và quản lý client qua web UI.

Ghi chú review

Cần quyền NET_ADMIN và SYS_MODULE. Cấu hình đúng IP public và port UDP 51820 để client kết nối.

Hướng dẫn deploy

Chạy một container Docker với quyền đặc biệt để quản lý WireGuard. Cần mở port UDP.

  1. Mở port UDP 51820 trên firewall và router.
  2. Chạy container với cap_add NET_ADMIN và SYS_MODULE.
  3. Cấu hình WG_HOST bằng IP public hoặc domain của server.
  4. Đặt mật khẩu admin qua PASSWORD_HASH.
  5. Tạo client profiles và tải file config hoặc scan QR code.
Backup:Backup thư mục config chứa WireGuard keys và client profiles.

Copy để chạy trên server

Dùng từng block riêng: lưu compose trước, hoặc copy script bash để tạo file và chạy container.

docker-compose.ymlyaml
services:
  wg-easy:
    image: ghcr.io/wg-easy/wg-easy:latest
    container_name: wg-easy
    environment:
      WG_HOST: "YOUR_SERVER_IP"
      PASSWORD_HASH: "$$2y$$10$$your_bcrypt_hash_here"
      WG_DEFAULT_DNS: "1.1.1.1"
    volumes:
      - ./config:/etc/wireguard
    ports:
      - "51820:51820/udp"
      - "51821:51821/tcp"
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
      - net.ipv4.ip_forward=1
    restart: unless-stopped
setup.shbash
#!/usr/bin/env bash
set -euo pipefail

sudo mkdir -p /opt/wg-easy
sudo chown "$USER":"$USER" /opt/wg-easy
cd /opt/wg-easy

cat > docker-compose.yml <<'COMPOSE'
services:
  wg-easy:
    image: ghcr.io/wg-easy/wg-easy:latest
    container_name: wg-easy
    environment:
      WG_HOST: "YOUR_SERVER_IP"
      PASSWORD_HASH: "$$2y$$10$$your_bcrypt_hash_here"
      WG_DEFAULT_DNS: "1.1.1.1"
    volumes:
      - ./config:/etc/wireguard
    ports:
      - "51820:51820/udp"
      - "51821:51821/tcp"
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.conf.all.src_valid_mark=1
      - net.ipv4.ip_forward=1
    restart: unless-stopped
COMPOSE

docker compose up -d
echo "WG-Easy is running on http://SERVER_IP:51821"

Stack

Node.jsDocker