Web Analytics

gluetun-webui

⭐ 288 stars Vietnamese by Sir-Scuzza

🌐 Ngôn ngữ

Gluetun WebUI

Một giao diện web nhẹ để giám sát và điều khiển Gluetun — container máy khách VPN cho Docker.

Trạng thái: Đã kết nối Node 25 Docker


Tính năng

---

Ảnh chụp màn hình

alt text


Yêu cầu

> Hỗ trợ linux/amd64linux/arm64 (hoạt động trên Mac Intel/Apple Silicon, Linux và Windows).


Khởi động nhanh

Tùy chọn A1: Một phiên bản (Khuyến nghị)

Thêm gluetun-webui vào file compose hiện tại của bạn cùng với Gluetun:

gluetun-webui:
  image: scuzza/gluetun-webui:latest
  container_name: gluetun-webui
  ports:
    
  • "127.0.0.1:3000:3000"
environment:
  • GLUETUN_CONTROL_URL=http://gluetun:8000
# Uncomment if Gluetun auth is enabled: #- GLUETUN_API_KEY=yourtoken #- GLUETUN_USER=username #- GLUETUN_PASSWORD=password networks:
  • your_network_name
restart: unless-stopped read_only: true tmpfs:
  • /tmp
security_opt:
  • no-new-privileges:true
cap_drop:
  • ALL
healthcheck: test: ["CMD", "wget", "-qO-", "http://localhost:3000/api/health"] interval: 30s timeout: 5s start_period: 10s retries: 3

Tùy chọn A2: Nhiều phiên bản

Giám sát từ 2 phiên bản Gluetun trở lên với các bảng điều khiển riêng biệt:

gluetun-webui:
  image: scuzza/gluetun-webui:latest
  container_name: gluetun-webui
  ports:
    
  • "127.0.0.1:3000:3000"
environment:
  • GLUETUN_1_NAME=VPN - London
  • GLUETUN_1_URL=http://gluetun-1:8000
  • GLUETUN_1_API_KEY=token1
  • GLUETUN_2_NAME=VPN - Amsterdam
  • GLUETUN_2_URL=http://gluetun-2:8000
  • GLUETUN_2_API_KEY=token2
  • GLUETUN_3_NAME=VPN - Singapore
  • GLUETUN_3_URL=http://gluetun-3:8000
  • GLUETUN_3_API_KEY=token3
networks:
  • your_network_name
restart: unless-stopped read_only: true tmpfs:
  • /tmp
security_opt:
  • no-new-privileges:true
cap_drop:
  • ALL

Tùy chọn B: Tự xây dựng trên máy local

git clone https://github.com/Sir-Scuzza/gluetun-webui.git
cd gluetun-webui
docker compose up -d --build
Sau đó chạy (một trong hai tùy chọn):

docker compose up -d

Giao diện người dùng có sẵn tại http://localhost:3000


Thiết lập mạng

Cả Gluetun và gluetun-webui đều phải nằm trên cùng một mạng Docker để http://gluetun:8000 có thể phân giải đúng.

Cùng tệp compose — chỉ cần thêm cả hai dịch vụ vào cùng một mạng (phổ biến nhất):

services:
  gluetun:
    networks:
      
  • arr-stack
gluetun-webui: networks:
  • arr-stack
networks: arr-stack: driver: bridge

Các file compose riêng biệt — tham chiếu mạng hiện tại của Gluetun như một mạng ngoài. Tìm tên mạng của bạn bằng lệnh docker network ls:

networks:
  ext-network:
    external: true
    name: your_gluetun_network_name


Hỗ trợ Multi-VPN

Nhiều phiên bản

gluetun-webui hỗ trợ giám sát và điều khiển nhiều phiên bản Gluetun đồng thời. Mỗi phiên bản sẽ hiển thị dưới dạng một bảng điều khiển riêng biệt trong lưới phản hồi.

Cấu hình: Sử dụng các biến môi trường được đánh số:

gluetun-webui:
  image: scuzza/gluetun-webui:latest
  environment:
    # Instance 1
    
  • GLUETUN_1_NAME=VPN 1
  • GLUETUN_1_URL=http://gluetun-1:8000
  • GLUETUN_1_API_KEY=token1 # optional
# Instance 2
  • GLUETUN_2_NAME=VPN 2
  • GLUETUN_2_URL=http://gluetun-2:8000
  • GLUETUN_2_API_KEY=token2 # optional
# Instance 3
  • GLUETUN_3_NAME=VPN 3
  • GLUETUN_3_URL=http://gluetun-3:8000
  • GLUETUN_3_USER=admin
  • GLUETUN_3_PASSWORD=secret # optional (HTTP Basic auth)

Hỗ trợ: Tối đa 20 instance (thông qua GLUETUN_1_URL đến GLUETUN_20_URL) Tương thích: 1 bảng điều khiển toàn chiều rộng → 2 nửa chiều rộng → 3 một phần ba chiều rộng → 4 một phần tư chiều rộng → cuộn khi từ 5 trở lên

Tương thích ngược

Nếu không cấu hình biến có đánh số, sẽ chuyển về chế độ một instance cũ:

environment:
  
  • GLUETUN_CONTROL_URL=http://gluetun:8000 # legacy
  • GLUETUN_API_KEY=token

Xác thực theo từng phiên bản

Mỗi phiên bản có thể có xác thực khác nhau:

# Instance with API key
  • GLUETUN_1_API_KEY=my-secret-token

Instance with HTTP Basic auth

  • GLUETUN_2_USER=admin
  • GLUETUN_2_PASSWORD=mysecret

Instance with no auth

  • GLUETUN_3_URL=http://gluetun-3:8000 # auth optional

---

Cấu hình

| Biến | Mặc định | Mô tả | |---|---|---| | GLUETUN_1_ đến GLUETUN_20_ | _(trống)_ | Cấu hình đa phiên bản (tối đa 20 phiên bản) | | GLUETUN_{N}_URL | – | URL máy chủ điều khiển HTTP Gluetun cho phiên bản N | | GLUETUN_{N}_NAME | Instance {N} | Tên hiển thị cho phiên bản N | | GLUETUN_{N}_API_KEY | _(trống)_ | Mã Bearer cho phiên bản N (nếu bật xác thực) | | GLUETUN_{N}_USER | _(trống)_ | Tên người dùng cho HTTP Basic auth (phiên bản N) | | GLUETUN_{N}_PASSWORD | _(trống)_ | Mật khẩu cho HTTP Basic auth (phiên bản N) | | GLUETUN_CONTROL_URL | http://gluetun:8000 | – chỉ cho một phiên bản (sử dụng nếu không có biến GLUETUN_1_*) | | GLUETUN_API_KEY | _(trống)_ | – Mã Bearer cho một phiên bản | | GLUETUN_USER | _(trống)_ | – Tên người dùng cho HTTP Basic auth | | GLUETUN_PASSWORD | _(trống)_ | – Mật khẩu cho HTTP Basic auth | | PORT | 3000 | Cổng web UI lắng nghe | | TRUST_PROXY | false | Đặt thành true nếu chạy phía sau reverse proxy (nginx, Traefik, v.v.) |


Bảo mật

Cấu hình reverse-proxy

Nếu bạn chạy gluetun-webui phía sau reverse proxy (nginx, Traefik, Caddy, v.v.), hãy đặt TRUST_PROXY=true trong biến môi trường:

gluetun-webui:
  image: scuzza/gluetun-webui:latest
  environment:
    
  • GLUETUN_CONTROL_URL=http://gluetun:8000
  • TRUST_PROXY=true # Required for reverse proxies

Điều này cho phép ứng dụng phân tích đúng các header X-Forwarded-For và các header liên quan để giới hạn tốc độ và phát hiện IP chính xác. Lưu ý: Chỉ bật tính năng này nếu bạn thực sự đứng sau một reverse proxy, vì nó tin tưởng các header proxy từ reverse proxy của bạn.

Xác thực reverse-proxy

Các điều khiển khởi động/dừng VPN không có xác thực tích hợp sẵn. Nếu bạn cung cấp giao diện UI ra ngoài localhost, hãy đặt nó sau một reverse proxy với xác thực HTTP Basic.

Caddy (Caddyfile):

your.domain.com {
  basicauth {
    user $2a$14$
  }
  reverse_proxy localhost:3000
}
Tạo một mã băm với: caddy hash-password

Nginx (nginx.conf):

location / {
  auth_basic "Restricted";
  auth_basic_user_file /etc/nginx/.htpasswd;
  proxy_pass http://localhost:3000;
}
Tạo một tệp mật khẩu với: htpasswd -c /etc/nginx/.htpasswd user

Traefik (nhãn Docker):

labels:
  
  • "traefik.enable=true"
  • "traefik.http.routers.gluetun-webui.rule=Host(your.domain.com)"
  • "traefik.http.routers.gluetun-webui.middlewares=auth"
  • "traefik.http.middlewares.auth.basicauth.users=user:$$apr1$$"
Tạo một hash với: htpasswd -nb user password


Lời cảm ơn

---

Giấy phép

MIT

--- Tranlated By Open Ai Tx | Last indexed: 2026-05-29 ---