Tạo VPN server với WireGuard trên Docker

Trong hướng dẫn này, mình chỉ cho bạn cách tạo máy chủ VPN riêng của bạn với WireGuard chạy trong Docker. Mình hướng dẫn các bước cài đặt, cấu hình và cách thêm máy khách vào máy chủ VPN của bạn.

Trong trường bài chia sẻ này mình sử dụng Ubuntu 20.04 LTS và các bản phân phối khác tương tự. Các bạn tham khảo thêm tại đây 

1.Cài đặt Docker và Docker-Compose

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo usermod -aG docker $USER
newgrp docker

2.Tạo một docker-compose file

Đầu tiên, Tạo một thư mục /opt/wireguard-server và file docker-compos.yaml mới trong thư mục này.
mkdir /opt/wireguard-server

vim /opt/wireguard-server/docker-compose.yaml

version: "2.1"
services:
 wireguard:
  image: linuxserver/wireguard
  container_name: wireguard
  cap_add:
   - NET_ADMIN
   - SYS_MODULE
  environment:
   - PUID=1000
   - PGID=1000
   - TZ=Aisa/Ho_Chi_Minh
   - SERVERURL=wireguard.domain.com #optional
   - SERVERPORT=51820 #optional
   - PEERS=1 #optional
   - PEERDNS=auto #optional
   - INTERNAL_SUBNET=10.10.100.0 #optional
  volumes:
   - /opt/wireguard-server/config:/config
   - /lib/modules:/lib/modules
  ports:
   - 51820:51820/udp
  sysctls:
   - net.ipv4.conf.all.src_valid_mark=1
  restart: unless-stopped

3.Thiết lập WireGuard Server

Chúng ta khởi động bằng command sau:
cd /opt/wireguard-server
docker-compose up -d

4.Phân phối tạo các file config đến client

Tất cả file config được lưu trữ tại /opt/wireguard-server/config. Chúng ta cần copy file peer1/peer1.conf cho client và đổi tên thành wg0.conf để kết nối với server. Nếu muốn kết nối với QR code chúng ta dùng command sau để in command lên terminal.
docker exec -it wireguard /app/show-peer <peer-number>

5. Thêm nhiều config cho client

Trong file docker-compose ta điều chỉnh lại thông số  PEERS=2 và restart lại container
docker-compose up -d --force-recreate

Vậy là xong! Bạn đã có 1 VPN cho riêng mình rồi, vượt qua những tháng ngày “cá mập cắn cáp”

Chúc bạn cài đặt thành công!

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top