WireGuard là giao thức VPN hiện đại, nhanh, nhỏ gọn và dễ cấu hình. Tự chạy WireGuard trên VPS cho bạn một đường hầm mã hóa tới máy chủ ở quốc gia bạn chọn, không có công ty VPN bên thứ ba ở giữa. Hướng dẫn này dùng Ubuntu 24.04 hoặc Debian 12/13 và giả định bạn đã bảo mật máy chủ.
1. Cài đặt WireGuard
sudo apt update
sudo apt install -y wireguard
2. Tạo khóa máy chủ
cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub
umask 077 đảm bảo các tệp khóa chỉ root mới đọc được. Hãy giữ server.key ở chế độ riêng tư.
3. Tạo khóa máy khách
Tạo cặp khóa cho laptop hoặc điện thoại của bạn trên máy chủ rồi sao chép cấu hình máy khách sang sau:
wg genkey | tee client1.key | wg pubkey > client1.pub
4. Viết cấu hình máy chủ
Trước tiên hãy tìm tên giao diện mạng công khai của bạn:
ip route get 1.1.1.1 | awk '{print $5; exit}'
Nó thường là eth0 hoặc ens3. Tạo /etc/wireguard/wg0.conf và thay các giá trị viết hoa bằng giá trị của riêng bạn:
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ETH_IF -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ETH_IF -j MASQUERADE
[Peer]
# client1
PublicKey = CLIENT1_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
Dán nội dung của server.key và client1.pub vào chỗ được chỉ ra, và thay ETH_IF bằng tên giao diện của bạn.
5. Bật chuyển tiếp IP
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
6. Mở tường lửa
sudo ufw allow 51820/udp
sudo ufw route allow in on wg0
sudo ufw reload
7. Khởi động đường hầm
sudo systemctl enable --now wg-quick@wg0
sudo wg show
Bạn sẽ thấy giao diện và, khi máy khách kết nối, lần bắt tay (handshake) gần nhất của nó.
8. Cấu hình máy khách
Trên thiết bị của bạn, tạo cấu hình như sau (các ứng dụng WireGuard chính thức cho Windows, macOS, Linux, iOS và Android có thể nhập nó từ tệp hoặc mã QR):
[Interface]
Address = 10.8.0.2/24
PrivateKey = CLIENT1_PRIVATE_KEY
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = YOUR_SERVER_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Dùng AllowedIPs = 0.0.0.0/0, ::/0 sẽ gửi toàn bộ lưu lượng qua đường hầm. Để chỉ truy cập mạng riêng của bạn, hãy dùng 10.8.0.0/24 thay thế.
9. Kiểm tra
- Kích hoạt đường hầm trên máy khách.
- Chạy
sudo wg showtrên máy chủ và xác nhận có một lần bắt tay gần đây. - Truy cập một trang "what is my IP" từ máy khách. Nó phải hiển thị địa chỉ máy chủ của bạn.
- Kiểm tra rò rỉ DNS nếu quyền riêng tư là mục tiêu, và thêm quy tắc IPv6 nếu máy chủ của bạn có IPv6.
Thêm thiết bị
Với mỗi thiết bị mới, tạo một cặp khóa, thêm một khối [Peer] khác với địa chỉ mới như 10.8.0.3/32, và chạy sudo wg syncconf wg0 <(wg-quick strip wg0) để áp dụng mà không làm rớt các kết nối hiện có.
Chọn vị trí
Máy chủ WireGuard hoạt động từ bất kỳ vị trí nào của chúng tôi. Hãy chọn vị trí gần bạn để có tốc độ, hoặc ở quốc gia có địa chỉ IP mà bạn muốn lưu lượng của mình xuất phát. Xem cách chọn vị trí VPS. Một VPS nhỏ là quá đủ cho đường hầm cá nhân.