Tại sao nên chạy VPN WireGuard của riêng bạn
Khi dùng VPN thương mại, bạn phải tin tưởng vào một công ty mà bạn không thể kiểm chứng. Bạn trả tiền cho họ, dẫn toàn bộ lưu lượng qua server của họ, và tin vào lời cam kết rằng họ không lưu log. VPN tự host đảo ngược điều đó: bạn thuê một server, tự cài VPN, và bên duy nhất có thể thấy lưu lượng của bạn chính là bạn. Không có nhà cung cấp trung gian để ghi log, bán dữ liệu, hay bị trát tòa đòi khai.
WireGuard là thứ làm cho điều này trở nên khả thi. Đây là giao thức VPN hiện đại — nhỏ gọn, nhanh và đơn giản — chỉ vài nghìn dòng code thay vì hàng trăm nghìn dòng như các stack cũ, dễ kiểm tra và khó cấu hình sai. Trên một VPS bình thường, nó có thể bão hòa toàn bộ băng thông với mức tiêu thụ CPU gần bằng không. Kết hợp với một VPS nước ngoài không KYC, đường hầm WireGuard tự host cho bạn một điểm thoát riêng tư không thuộc về ai ngoài bạn — và hướng dẫn này xây dựng điều đó từ đầu.

Những gì bạn cần
Toàn bộ quá trình thiết lập chỉ cần một server và khoảng mười lăm phút:
- Một VPS. Ngay cả gói nhỏ nhất cũng đủ dùng — WireGuard cực kỳ nhẹ. Chọn khu vực tư pháp bạn muốn lưu lượng xuất hiện từ đó. VPS ServPrivacy từ $7.50/mo với full root access là quá đủ.
- Một bản Linux mới cài. Bất kỳ phiên bản Debian hay Ubuntu gần đây nào đều hoạt động tốt; các lệnh dưới đây giả định một trong hai. Các distro khác chỉ khác ở bước cài gói.
- Quyền root hoặc sudo và vài phút trên dòng lệnh.
Bạn không cần tên miền, control panel, hay bất kỳ phần mềm VPN bên thứ ba nào. WireGuard được tích hợp sẵn trong nhân Linux hiện đại.
Bước 1 — Cài WireGuard trên server
Kết nối vào VPS qua SSH và cài các công cụ WireGuard. Trên Debian hoặc Ubuntu, đó chỉ là một lệnh duy nhất: apt update && apt install -y wireguard. Module kernel đã có sẵn trên mọi kernel hiện đại, nên lệnh này chỉ cài các công cụ user-space — wg và wg-quick — dùng để quản lý các tunnel.
Đó là toàn bộ quá trình cài đặt. Không có daemon riêng để cấu hình, không có tài khoản cần tạo, và không có gì thêm cần vá ngoài các bản cập nhật hệ thống thông thường.
Bước 2 — Tạo khóa và viết cấu hình server
WireGuard xác thực các peer bằng mật mã khóa công khai, vì vậy nhiệm vụ đầu tiên là tạo một cặp khóa cho server. Tạo bằng lệnh wg genkey | tee server_private.key | wg pubkey > server_public.key. Khóa riêng tư lưu trên server và không bao giờ chia sẻ; khóa công khai sẽ được giao cho từng client.
Tiếp theo, tạo cấu hình tunnel tại /etc/wireguard/wg0.conf. Phần server định nghĩa dải địa chỉ riêng tư của tunnel, cổng WireGuard lắng nghe (51820 theo mặc định), và khóa riêng tư của server. Mỗi thiết bị bạn kết nối sau này được thêm vào như một block [Peer] chứa khóa công khai của client và địa chỉ của nó trong tunnel. Giữ file chỉ có thể đọc bởi root — nó chứa khóa riêng tư của server.
Cấu hình cố ý được giữ ngắn gọn. Một cấu hình server hoạt động được là dưới hai mươi dòng — đây là một phần lý do WireGuard khó cấu hình sai đến mức nguy hiểm.
Bước 3 — Bật forwarding và mở cổng
Để VPN định tuyến lưu lượng ra internet, server phải chuyển tiếp gói tin. Bật IP forwarding bằng cách đặt net.ipv4.ip_forward=1 trong /etc/sysctl.conf và áp dụng với sysctl -p. Cấu hình tunnel cũng cần một quy tắc tường lửa để masquerade lưu lượng đi ra để nó thoát với địa chỉ của server — thường được thêm như một dòng PostUp trong wg0.conf để tự động áp dụng khi tunnel khởi động.
Sau đó đảm bảo cổng WireGuard có thể truy cập được. Nếu VPS chạy tường lửa, cho phép UDP trên cổng bạn chọn (51820 theo mặc định). WireGuard chỉ dùng UDP và — hữu ích cho quyền riêng tư — không phản hồi gì trước các gói tin không được yêu cầu, vì vậy quét cổng không thể xác nhận dịch vụ có tồn tại không.
Khởi động tunnel với wg-quick up wg0, và bật khởi động cùng hệ thống với systemctl enable wg-quick@wg0. Phía server giờ đã hoạt động.
Bước 4 — Thêm client và kết nối
Mỗi thiết bị sử dụng VPN — laptop, điện thoại — cần cặp khóa riêng và một cấu hình client nhỏ. Tạo cặp khóa cho client giống hệt như với server, sau đó viết cấu hình client chứa khóa riêng tư của client, địa chỉ tunnel, khóa công khai của server, IP công khai và cổng của server như Endpoint, và AllowedIPs là 0.0.0.0/0 để tất cả lưu lượng được định tuyến qua tunnel.
Thêm block [Peer] tương ứng — với khóa công khai của client — vào wg0.conf trên server và reload. Trên client, cài ứng dụng WireGuard (có sẵn cho mọi nền tảng desktop và di động), nhập cấu hình — hầu hết ứng dụng chấp nhận mã QR, cách đơn giản nhất cho điện thoại — và bật tunnel. Trong vòng một giây, lưu lượng của thiết bị bạn đã đi qua VPS của bạn. Xác nhận bằng cách kiểm tra địa chỉ IP công khai: nó phải là địa chỉ của server.
Bước 5 — Bảo mật và duy trì
Một tunnel hoạt động đã làm được phần lớn công việc; một vài bước hoàn thiện giúp nó vững chắc hơn:
- Khóa chặt SSH. Dùng đăng nhập bằng khóa, tắt xác thực bằng mật khẩu, và cân nhắc chuyển SSH khỏi cổng 22. VPN chỉ riêng tư bằng server mà nó chạy trên đó.
- Giữ hệ thống được cập nhật. Bản thân WireGuard cần ít sự chú ý, nhưng OS nền tảng cần nhận các bản cập nhật bảo mật — bật unattended upgrades.
- Một cặp khóa cho mỗi thiết bị. Không bao giờ chia sẻ một cấu hình client cho nhiều thiết bị. Nếu một thiết bị bị mất, bạn chỉ cần xóa block peer của nó thay vì tạo lại khóa cho tất cả.
- Đặt DNS trong cấu hình client. Trỏ client đến một resolver tôn trọng quyền riêng tư để các truy vấn DNS cũng đi qua tunnel thay vì bị rò rỉ ra mạng cục bộ.
- Tin tưởng vào mặc định về logging. WireGuard không lưu gì về lưu lượng mà nó vận chuyển; đơn giản là không có gì được ghi lại về những gì đi qua, vì vậy không có gì thêm để vô hiệu hóa.
Được duy trì theo cách này, server gần như không cần sự chú ý liên tục — WireGuard gần như là cài xong dùng mãi.
Khi nào VPN tự host là lựa chọn đúng
VPN WireGuard tự host là lựa chọn đúng khi bạn muốn một điểm thoát riêng tư chỉ chịu trách nhiệm với bạn — để bảo mật kết nối trên các mạng không đáng tin, để giữ lịch sử duyệt web tránh xa ISP, hoặc để xuất hiện từ một khu vực tư pháp đã chọn. Vì đó là server của bạn, không có địa chỉ IP chia sẻ với hàng nghìn người lạ và không có chính sách log của nhà cung cấp nào để tin vào.
Đáng nói thẳng về điều nó không làm được: một VPN một server cho bạn quyền riêng tư từ ISP và các trang web bạn truy cập, nhưng về nguyên tắc nhà cung cấp VPS có thể quan sát lưu lượng tại điểm thoát. Đó chính xác là lý do tại sao việc chọn host quan trọng — một VPS nước ngoài không KYC, không log nghĩa là điểm thoát đó thuộc về một nhà cung cấp không thu thập danh tính và không lưu bất kỳ hồ sơ nào. WireGuard tự host cộng với VPS phù hợp là, với hầu hết mọi người, cách thiết lập quyền riêng tư trung thực nhất hiện có: không cần tin tưởng ai ngoài cơ sở hạ tầng bạn kiểm soát.