VPS

OpenVPN vs WireGuard vs Tailscale: tự dựng VPN trên VPS

Thanh Nguyễn Đăng 11 phút đọc 1 khối lệnh

OpenVPN vs WireGuard vs Tailscale: tự dựng VPN trên VPS
Mục lục bài viết
  1. Phân tầng cho đúng trước khi so sánh
  2. WireGuard: nhanh, gọn, nên là mặc định khi tự dựng
  3. OpenVPN: chậm hơn nhưng luồn lách giỏi nhất
  4. Tailscale và Headscale: khi bạn không muốn quản khóa
  5. Bảng chọn theo tình huống thật
  6. Chọn theo đúng việc bạn cần làm
  7. Kiểm sau khi dựng
  8. Ba việc bảo mật bắt buộc
  9. Điều cần nói rõ về mục đích sử dụng
  10. Câu hỏi thường gặp
  11. Bài viết liên quan

Trả lời nhanh: Ba thứ này không cùng loại. OpenVPN và WireGuard là giao thức bạn tự dựng và tự quản khóa; Tailscale là sản phẩm dựng sẵn trên WireGuard, lo hộ phần khóa và kết nối. Chọn nhanh: cần nhanh và gọn thì WireGuard; cần vượt mạng khắt khe hay tương thích thiết bị cũ thì OpenVPN; cần cắm là chạy cho nhiều thiết bị thì Tailscale.

Nhu cầu dựng VPN riêng đến từ những chuyện rất đời thường: muốn có IP cố định để vào hệ thống công ty, muốn nối máy ở nhà với máy ở văn phòng, hoặc muốn dùng Wi-Fi công cộng mà không phập phồng. Ba cái tên luôn được nhắc tới lại thuộc hai tầng khác nhau, và chính chỗ đó khiến người mới chọn sai. Bài này đặt đúng từng thứ vào chỗ của nó, kèm khuyến nghị theo từng tình huống cụ thể.

Phân tầng cho đúng trước khi so sánh

Đây là chỗ gây nhầm lẫn nhiều nhất. OpenVPN và WireGuard nằm ở tầng giao thức: bạn dựng máy chủ trên VPS, tự sinh khóa hoặc chứng chỉ, tự phân phối cấu hình cho từng thiết bị, tự mở cổng và duy trì. Toàn quyền, và toàn bộ trách nhiệm.

Tailscale nằm ở tầng sản phẩm: nó dùng chính WireGuard để mã hóa, nhưng bọc thêm một máy chủ điều phối lo việc trao đổi khóa, tìm đường đi giữa các thiết bị và xuyên qua NAT. Bạn cài ứng dụng, đăng nhập, xong, không sinh khóa, không mở cổng.

Vậy so sánh đúng cách là: WireGuard tự dựng đọ với Tailscale ở khía cạnh công sức và quyền kiểm soát, còn OpenVPN đọ với WireGuard ở khía cạnh giao thức. Cụm bài Tailscale trên blog bắt đầu từ Tailscale là gì đã đi sâu nhánh sản phẩm; bài này bổ sung nhánh còn lại.

WireGuard: nhanh, gọn, nên là mặc định khi tự dựng

Vì sao nhanh: WireGuard chạy ngay trong nhân Linux, dùng bộ thuật toán mã hóa hiện đại cố định thay vì cho phép chọn hàng chục tổ hợp như OpenVPN. Mã nguồn chỉ vài nghìn dòng, so với hàng trăm nghìn dòng của OpenVPN, nên vừa dễ soát lỗi vừa ít tốn tài nguyên. Trên cùng một VPS, thông lượng WireGuard thường cao hơn rõ rệt và độ trễ thấp hơn, khác biệt cảm nhận được khi bạn kéo file lớn hay dùng máy tính từ xa.

Cấu hình ngắn tới mức đáng ngạc nhiên, một file cho máy chủ, một file cho mỗi thiết bị, mỗi file chừng chục dòng gồm khóa riêng, khóa công khai của phía bên kia, dải IP và cổng. Muốn nhanh hơn nữa, dùng công cụ có giao diện như wg-easy chạy bằng Docker: thêm thiết bị là bấm nút, nó sinh mã QR cho điện thoại quét.

Điểm yếu: WireGuard dùng UDP và không cải trang, nên ở những mạng chặn gắt (một số Wi-Fi doanh nghiệp, mạng khách sạn khóa chặt) có thể không kết nối được. Ngoài ra bạn phải tự quản khóa: thiết bị mới thì tự thêm, thiết bị mất thì tự xóa, với năm bảy thiết bị thì nhẹ nhàng, với cả công ty thì thành việc.

OpenVPN: chậm hơn nhưng luồn lách giỏi nhất

OpenVPN ra đời sớm hơn nhiều và mang di sản của thời đó: nặng hơn, nhiều tùy chọn hơn, chạy ở tầng ứng dụng nên tốn CPU hơn. Nhưng chính sự cồng kềnh ấy cho nó một lợi thế mà WireGuard không có: chạy được trên TCP cổng 443 với lớp mã hóa TLS, khiến lưu lượng trông gần giống một kết nối HTTPS thông thường. Ở những nơi mà mọi thứ không phải web đều bị chặn, đây thường là phương án duy nhất còn kết nối được.

Ưu thế thứ hai là tương thích rộng: thiết bị mạng cũ, router doanh nghiệp, hệ thống kế thừa, rất nhiều nơi chỉ hỗ trợ OpenVPN. Và hệ sinh thái quản lý người dùng của nó trưởng thành hơn: chứng chỉ theo từng người, thu hồi từng cái, tích hợp với hệ thống xác thực tập trung.

Dựng nhanh: các kịch bản cài đặt tự động phổ biến trên GitHub dựng xong máy chủ OpenVPN trong vài phút và sinh file cấu hình cho từng thiết bị. Đừng dựng tay từ đầu trừ khi bạn cần cấu hình đặc thù, phần sinh chứng chỉ rất dễ sai và sai thì khó nhận ra.

Tailscale và Headscale: khi bạn không muốn quản khóa

Với đa số cá nhân và đội nhỏ, câu hỏi thật không phải "giao thức nào tốt hơn" mà là "tôi có muốn làm người quản khóa không". Nếu câu trả lời là không, Tailscale thắng tuyệt đối: cài ứng dụng lên VPS, laptop, điện thoại, đăng nhập cùng một tài khoản là các thiết bị thấy nhau qua địa chỉ riêng, không mở cổng nào trên router, không sinh khóa, chạy được cả khi nhà bạn dùng mạng chia sẻ kiểu CGNAT như đã phân tích ở bài CGNAT. Muốn dùng VPS làm cổng ra internet với IP cố định thì bật exit node theo bài exit node.

Cái giá: bạn phụ thuộc một dịch vụ bên ngoài cho khâu điều phối (dữ liệu vẫn mã hóa đầu cuối và đi thẳng giữa các thiết bị, nhưng danh sách thiết bị và việc cấp quyền nằm ở họ), và bản miễn phí giới hạn số thiết bị cùng số người dùng. Nếu điều đó không chấp nhận được, có đường ở giữa rất đẹp: Headscale, bản tự host của máy chủ điều phối, giữ nguyên trải nghiệm Tailscale nhưng mọi thứ nằm trên VPS của bạn, hướng dẫn ở bài Headscale. So sánh với các mạng mesh khác thì xem bài Tailscale vs ZeroTier vs NetBird.

Bảng chọn theo tình huống thật

Bạn cần gìChọn
Nối laptop, điện thoại, VPS lại thành một mạng, ít công sứcTailscale
Toàn quyền kiểm soát, ít thiết bị, muốn nhanh nhấtWireGuard tự dựng
Mạng nơi bạn dùng chặn gắt, chỉ cho HTTPS đi quaOpenVPN trên TCP 443
Thiết bị cũ, router doanh nghiệp chỉ hỗ trợ chuẩn cũOpenVPN
Muốn trải nghiệm Tailscale nhưng dữ liệu điều phối phải của mìnhHeadscale tự host
Cả công ty dùng, cần quản người ra vào và phân quyềnTailscale bản trả phí hoặc OpenVPN có xác thực tập trung

Điểm chung của mọi phương án: đều cần một máy chủ luôn bật có IP công cộng làm điểm hẹn hoặc cổng ra. Đó là lý do một VPS nhỏ đặt trong nước thường là mảnh ghép còn thiếu, nó rẻ hơn nhiều so với công sức bạn bỏ ra để lách các giới hạn của mạng gia đình.

Chọn theo đúng việc bạn cần làm

Tình huốngNên chọnVì sao
Nối vài máy của bạn với nhau, không muốn quản khóaMạng riêng dạng dịch vụDựng trong mười phút, không phải mở cổng
Cho nhân viên truy cập mạng công ty từ xaGiao thức hiện đại tự dựngNhanh, cấu hình gọn, chạy tốt trên di động
Mạng công ty hoặc mạng công cộng chặn nhiều cổngGiao thức đời cũ chạy trên cổng webLuồn qua được nơi khác bị chặn
Cần truy cập máy chủ không mở cổng nàoMạng riêng dạng dịch vụKhông phải mở cổng nào ra internet
Yêu cầu mọi thứ chạy trên hạ tầng của bạnGiao thức hiện đại, hoặc bản tự host của dịch vụKhông phụ thuộc bên thứ ba

Lời khuyên thực dụng: với phần lớn nhu cầu của doanh nghiệp vừa và nhỏ, mạng riêng dạng dịch vụ là lựa chọn đúng vì nó không đòi mở cổng nào ra internet, và đó là ưu điểm lớn nhất về mặt an toàn.

Kiểm sau khi dựng

TerminalKiểm sau khi dựngbash
# 1. Ket noi da len chuawg show            # voi giao thuc hien daitailscale status   # voi mang rieng dang dich vu # 2. Co that su di qua duong ham khongcurl -s ifconfig.me     # dia chi phai la cua may chu, khong phai cua ban # 3. Ro ri DNS: kiem tra van de bi bo qua nhieu nhat# Truy van DNS phai di qua duong ham, khong di ra ngoai truc tiep # 4. Cong nao dang mo ra internet tren may chuss -ltnp | grep -v 127.0.0.1ufw status verbose # 5. Ai dang ket noi vaowg show all latest-handshakes

Ba việc bảo mật bắt buộc

  • Mỗi người một khóa riêng, không dùng chung một cấu hình cho cả đội. Dùng chung thì thu hồi quyền của một người là phải đổi cho tất cả.
  • Đưa việc thu hồi khóa vào quy trình nghỉ việc. Đây là lỗ hổng phổ biến nhất: nhân viên nghỉ nhiều tháng mà vẫn vào được mạng nội bộ.
  • Ghi lại ai có khóa nào và cấp ngày nào. Không có sổ này thì sau một năm không ai biết các khóa đang hoạt động thuộc về ai.

Điều cần nói rõ về mục đích sử dụng

Bài này nói về mạng riêng để truy cập hạ tầng và máy chủ của chính bạn từ xa, và để nhân viên vào được mạng nội bộ công ty. Đó là mục đích kỹ thuật và hoàn toàn hợp lệ. Việc dùng mạng riêng cho các mục đích khác nằm ngoài phạm vi bài viết.

Câu hỏi thường gặp

Tự dựng VPN trên VPS có nhanh hơn dịch vụ VPN thương mại không?

Thường nhanh hơn ở chỗ máy chủ chỉ phục vụ mình bạn nên không bị chia băng thông với hàng nghìn người khác, và bạn chọn được vị trí đặt máy. Đổi lại bạn có duy nhất một địa chỉ IP, không dùng được để đổi vùng liên tục như dịch vụ thương mại.

VPS cấu hình bao nhiêu là đủ để chạy VPN?

Rất nhẹ, gói nhỏ nhất 1 vCPU và 1-2GB RAM đủ cho vài thiết bị với WireGuard. Yếu tố quyết định trải nghiệm là băng thông và chất lượng đường truyền của nhà cung cấp chứ không phải CPU hay RAM.

Dùng VPN riêng có ẩn danh trên internet không?

Không. VPN riêng chỉ chuyển điểm ra internet của bạn về máy chủ và mã hóa đoạn đường ở giữa, nhưng toàn bộ lưu lượng vẫn gắn với một IP mà bạn là chủ sở hữu duy nhất, và nhật ký nằm trên máy bạn. Nó bảo vệ bạn ở Wi-Fi công cộng, không phải công cụ ẩn danh.

WireGuard và Tailscale chạy song song trên cùng VPS được không?

Được vì chúng dùng cổng và giao diện mạng khác nhau, nhiều người vẫn giữ WireGuard sẵn làm đường dự phòng khi cần. Chỉ cần chú ý tránh trùng dải địa chỉ nội bộ và kiểm tra bảng định tuyến sau khi cấu hình.

Chia sẻ:Facebook

Thanh Nguyễn

TND

Tư vấn bản quyền, VPS và máy chủ kèm hóa đơn VAT, hợp đồng đầy đủ cho doanh nghiệp.