Hướng dẫn cài đặt Tailscale trên Ubuntu: Tạo mạng Mesh VPN không cần mở port

Ubuntu tutorial - IT technology blog
Ubuntu tutorial - IT technology blog

Nỗi khổ khi truy cập server homelab từ xa

Bạn vừa dựng một chiếc máy chủ Ubuntu tại nhà. Bạn cài đủ thứ: Plex, Nextcloud, Home Assistant và vài container Docker để vọc vạch. Mọi thứ chạy trơn tru trong mạng nội bộ. Nhưng chỉ cần bước chân ra quán cà phê, bạn lập tức mất toàn bộ kết nối với server.

Trước đây, cách xử lý quen thuộc là mở cổng (port forwarding) trên modem kết hợp Dynamic DNS. Tuy nhiên, cách này tiềm ẩn rủi ro lớn. Vừa mở port ra Internet, log auth của server sẽ ngập tràn các đợt scan brute-force từ botnet khắp nơi. Tệ hơn, hầu hết nhà mạng hiện nay đều áp dụng CGNAT. Bạn không có IP public riêng, biến việc mở port thành nhiệm vụ bất khả thi nếu không trả thêm tiền thuê IP tĩnh.

Dựng OpenVPN hay WireGuard thủ công là lựa chọn tốt, nhưng khâu tạo chứng chỉ, route bảng định tuyến và duy trì VPS trung gian lại ngốn quá nhiều thời gian.

Tailscale giải quyết bài toán này như thế nào?

Hãy tưởng tượng Tailscale như một sợi cáp mạng ảo vô hình. Sợi cáp này nối thẳng laptop ngoài đường của bạn tới thùng máy Ubuntu đặt dưới gầm bàn phòng khách.

Khác với VPN truyền thống phải dồn toàn bộ traffic qua một gateway trung tâm, Tailscale hoạt động theo mô hình Mesh VPN. Các thiết bị sẽ bắt tay và truyền dữ liệu trực tiếp điểm-đầu-tới-điểm (Peer-to-Peer).

Nền tảng này sử dụng giao thức WireGuard để mã hóa với độ trễ cực thấp (thường chỉ thêm 1-3ms so với ping mạng thực tế). Điểm mạnh nhất của Tailscale là kỹ thuật NAT Traversal tự động. Dù máy chủ và laptop của bạn nằm sau hai lớp modem khác nhau, chúng vẫn tự tìm đường bắt tay trực tiếp mà bạn không cần chạm vào bất kỳ cấu hình nào trên router.

Các bước cài đặt và cấu hình Tailscale trên Ubuntu

Bước 1: Tạo tài khoản quản trị

Truy cập trang chủ Tailscale và đăng ký tài khoản miễn phí bằng GitHub, Google hoặc Microsoft. Gói Free cá nhân hiện hỗ trợ tới 3 user và 100 thiết bị—quá dư dả cho nhu cầu lab cá nhân.

Bước 2: Cài đặt Tailscale lên Ubuntu

Tailscale cung cấp sẵn script cài đặt tự động nhận diện bản phân phối Ubuntu (hỗ trợ đầy đủ từ 20.04, 22.04 đến 24.04 LTS). Mở terminal và chạy lệnh:

curl -fsSL https://tailscale.com/install.sh | sh

Cài đặt xong, bạn khởi động service và cho phép chạy cùng hệ thống:

sudo systemctl enable --now tailscaled
sudo systemctl status tailscaled

Bước 3: Xác thực thiết bị vào mạng Tailnet

Để liên kết máy Ubuntu với tài khoản của bạn, hãy kích hoạt kết nối:

sudo tailscale up

Terminal sẽ hiển thị một đường link xác thực duy nhất:

To authenticate, visit:

	https://login.tailscale.com/a/9a8b7c6d5e

Hãy copy link này, dán vào trình duyệt, đăng nhập đúng tài khoản đã tạo ở Bước 1 rồi bấm Connect để cấp quyền cho node mới.

Bước 4: Kiểm tra IP Tailscale trên máy chủ

Khi gia nhập mạng cá nhân (Tailnet), máy Ubuntu sẽ được cấp một IP tĩnh duy nhất thuộc dải 100.x.y.z (Carrier-Grade NAT range). Lấy địa chỉ IP này bằng lệnh:

tailscale ip -4

Kết quả sẽ trả về một địa chỉ dạng 100.85.24.120. Bạn cũng có thể xem toàn bộ các node khác trong mạng đang online hay offline:

tailscale status

Bước 5: Cài đặt Client và truy cập thử nghiệm

Tiếp theo, cài app Tailscale lên máy client (macOS, Windows, iOS hoặc Android) rồi đăng nhập cùng tài khoản quản trị. Ngay lập tức, hai máy đã nằm chung một mạng LAN ảo.

Thử mở terminal trên laptop ở quán cà phê và SSH thẳng về server ở nhà:

ssh [email protected]

Tương tự, nếu trên server đang chạy dashboard Portainer ở cổng 9000, bạn chỉ cần gõ http://100.85.24.120:9000 vào trình duyệt để truy cập mượt mà.

Mẹo hữu ích: Kích hoạt MagicDNS

Ghi nhớ từng dãy số 100.x.y.z khá bất tiện. Bạn hãy vào Tailscale Admin Console > DNS và bật MagicDNS. Tính năng này cho phép bạn dùng chính hostname của máy để kết nối:

ssh user@ubuntu-server
ping ubuntu-server

Lời kết

Không cần mở port router, không lo botnet dòm ngó, cũng chẳng cần bỏ tiền thuê IP tĩnh đắt đỏ. Với Tailscale trên Ubuntu, bạn chỉ mất chưa đầy 5 phút để xây dựng một đường hầm bảo mật tuyệt đối cho toàn bộ homelab của mình.

Share: