Cài đặt VPN Server WireGuard trên Docker

Trong bài viết hôm nay mình chia sẻ các bạn cách tạo máy chủ VPN riêng của bạn với  WireGuard  chạy trên  Docker .

A. Tổng quan

WireGuard là giải pháp VPN miễn phí, mã nguồn mở được phát triển nhằm thay thế giải pháp IPSec . WireGuard được phát triển như là module của Kernel với mục tiêu kế thừa các tính năng sẵn có của Kernel Linux , từ đó tối ưu hiệu năng giải pháp. Hiện nay giải pháp WireGuard đang dần trở nên phổ biến. Và đặc biệt hơn, WireGuard đã chính thức được phát hành cùng Kernel version 5.6 vào tháng 3 năm 2020, tức tất cả phiên bản, distro Linux sử dụng Kernel từ verion 5.6 trở đi sẽ có sẵn giải pháp WireGuard . WireGuard  sử dụng các giao thức mã hóa và các thuật toán để bảo vệ dữ liệu. Ban đầu,  WireGuard  được phát triển dành cho  Linux . Hiện nay, nó đã phổ biến trên  Windows, macOS, BSD, iOS và Android .

Điều kiện máy chủ cần đáp ứng :

  1. Cài đặt Docker trên Ubuntu
  2. Cài đặt Docker Compose trên Ubuntu 22.04.

B. Cài đặt Wireguard

Bước 1: Tạo một docker-compose file

Đầu tiên, các bạn tạo một thư mục  /opt/wireguard-server  và file  docker-compose.yaml  mới trong thư mục này.
Đàm Trung Kiên
mkdir /opt/wireguard-servervim /opt/wireguard-server/docker-compose.yaml
Sau đó hãy thêm nội dung dưới đây vào file
version: "2.1"services:wireguard:image: linuxserver/wireguardcontainer_name: wireguardcap_add:- NET_ADMIN- SYS_MODULEenvironment:- PUID=1001- PGID=1002- TZ=Aisa/Ho_Chi_Minh-SERVERURL=IP_SERVER #optional- SERVERPORT=51820 #optional-PEERS=4#optional # Bạn điền số lượng client cần kết nối- PEERDNS=auto #optional- INTERNAL_SUBNET=10.10.100.0 #optionalvolumes:- /opt/wireguard-server/config:/config- /lib/modules:/lib/modulesports:- 51820:51820/udpsysctls:- net.ipv4.conf.all.src_valid_mark=1restart: unless-stopped
Trong đó, bạn cần thay thế nội dung sau:
  • SERVERURL : Bạn điền IP Server
  • SERVERPORT : Số máy client bạn muốn kết nối.

Bước 2: Thiết lập WireGuard Server

Chúng ta khởi động bằng command sau:
Đàm Trung Kiên
cd /opt/wireguard-serverdocker-compose up -d

Thêm nhiều config cho client

Nếu bạn cần điều chỉnh lại số lượng config cho client, bạn chỉ cần điều chỉnh lại thông số Peer trong file docker-compose.yaml tại đường dẫn: /opt/wireguard-server
Điều chỉnh xong, bạn cần restart lại container với command sau:
Đàm Trung Kiên
docker-compose up -d --force-recreate

C. Thiết lập Wireguard đến client

  • Trên PC
Để config Wireguard đến client trên PC, đầu tiên các bạn hãy Download App Wireguard:Tại đâySau khi đã cài đặt App thành công, bây giờ chúng ta sẽ đi lấy cấu hình của Client trên Server. Trước đó mình đã thiết lập để tạo ra 4 peer tương ứng với 4 client, để xem các peer đã tạo bạn di chuyển đến đường dẫn:
Đàm Trung Kiên
cd /opt/wireguard-server/config/
Tại đây bạn sẽ thấy các peer được tạo ra, mỗi một peer sẽ tương ứng với 1 client.
Bây giờ mình sẽ kết nối với với peer1 (client1), thì các bạn thực hiện mở file cấu hình như sau:
Đàm Trung Kiên
vim /opt/wireguard-server/config/peer1/peer1.conf
Bây giờ hãy mở App Wireguard trên PC và chọn Add Tunnel như hình.
Dán nội dung File cấu hình đã copy trước đó vào
Tiếp đó hãy Active lên
  • Trên Mobile
Với Mobile thì chúng ta thực hiện dễ dàng hơn, bạn chỉ cần dùng lệnh bên dưới để in ra mã QR code rồi thực hiện scan qua App Wireguard trên Mobile. Ví dụ mình sẽ làm cho Peer2 (Client2), thì sử dụng command sau:
Đàm Trung Kiên
docker exec -it wireguard /app/show-peer 2 #### Bạn thay 2 bằng số Peer mình mình muốn.
Và kết quả mã QR code sẽ được in ra như hình.
Bây giờ bạn chỉ cần mở App trên Mobile và scan QR code này là được.
Sau khi đã kết nối thành công vào thiết bị Client, bây giờ hãy kiểm tra kết nối mạng xem VPN có ra được mạng không nhé. Và như hình là mình đã ra mạng thành công.
Chúc các bạn thực hiện
Thêm đánh giá post

Pages