Vượt tường lửa với WireGuard

Trước đây tôi dùng OpenVPN như là phương pháp mặc định để vượt tường lửa. Gần đây tôi phát hiện ra WireGuard là cái tên mới nổi mang lại nhiều cải tiến so với OpenVPN. Sau khi trải nghiệm nó thì tôi quyết định chia tay OpenVPN luôn. Bài này sẽ hướng dẫn nhanh cách dựng server WireGuard bằng Docker Compose.

version: "3.9"
services:
  wireguard:
    container_name: wireguard
    image: weejewel/wg-easy
    environment:
      - WG_HOST=192.168.1.2 # Change to your server IP.
      # Optional:
      - PASSWORD=password
      - WG_DEFAULT_DNS=1.1.1.1
      - WG_PORT=51820
      # - WG_DEFAULT_ADDRESS=10.8.0.x
      # - WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24
    ports:
      - "51820:51820/udp"
      - "51821:51821/tcp"
    volumes:
      - ./wireguard:/etc/wireguard
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1

Sau đó, ta dùng IP server với port 51821 để vào trang quản lý kết nối VPN.