Nếu VPS Ubuntu có IP public, cổng SSH thường xuyên bị bot Internet quét dù bạn đã dùng mật khẩu mạnh hoặc SSH key. Tailscale cung cấp một mạng riêng dạng mesh dựa trên WireGuard, cho phép laptop, điện thoại và VPS kết nối với nhau bằng IP riêng ổn định. Bài viết này hướng dẫn cài Tailscale trên VPS Ubuntu, kết nối SSH qua mạng riêng, kiểm tra MagicDNS, áp dụng nguyên tắc least privilege và chỉ cân nhắc đóng SSH public sau khi đã có phương án truy cập dự phòng.
Nếu VPS Ubuntu có IP public, cổng SSH thường xuyên bị bot Internet quét dù bạn đã dùng mật khẩu mạnh hoặc SSH key. Tailscale tạo một mạng riêng dạng mesh dựa trên WireGuard, giúp các thiết bị đã được xác thực kết nối trực tiếp với nhau bằng IP riêng trong tailnet.
Mục tiêu của hướng dẫn này không phải biến Tailscale thành “lá chắn tuyệt đối”, mà là giảm bề mặt quản trị công khai và tổ chức quyền truy cập rõ ràng hơn. Bạn vẫn cần cập nhật hệ thống, SSH key, firewall, backup và kiểm soát tài khoản quản trị.
Quan trọng: luôn giữ phiên SSH hiện tại đang mở và chuẩn bị console/KVM/rescue mode của nhà cung cấp trước khi thay đổi firewall. Đừng đóng cổng SSH public cho tới khi bạn đã test Tailscale ổn định từ một thiết bị khác.
Tailscale trên VPS Ubuntu dùng để làm gì?
Tailscale cài một client trên từng thiết bị. Sau khi đăng nhập cùng một tailnet, các máy được cấp địa chỉ Tailscale và có thể giao tiếp theo policy bạn cấu hình.
Một số use case thực tế:
- SSH vào VPS mà không cần nhớ IP public;
- quản trị nhiều VPS qua mạng riêng;
- truy cập dashboard nội bộ như Grafana, Portainer hoặc panel chỉ bind vào interface riêng;
- kết nối máy cá nhân với dịch vụ chạy trên VPS mà không public toàn bộ port ra Internet;
- tổ chức quyền truy cập theo user, group hoặc tag.
Nếu bạn mới dùng SSH, nên đọc trước bài dùng SSH key cho VPS Ubuntu và tắt đăng nhập mật khẩu. Tailscale không thay thế mọi lớp bảo mật của OpenSSH.
Tailscale khác WireGuard thuần như thế nào?
WireGuard là giao thức VPN hiện đại. Tailscale sử dụng WireGuard để mã hóa lưu lượng nhưng bổ sung lớp quản lý thiết bị, danh tính, DNS và access control.
WireGuard thuần phù hợp khi bạn muốn tự quản lý peer, key, route và cấu hình mạng. Tailscale phù hợp khi cần thêm hoặc thu hồi thiết bị nhanh, quản lý nhiều máy và dùng policy tập trung.
HUONG CLOUD đã có bài cài WireGuard VPN trên VPS Ubuntu nếu bạn muốn mô hình tự quản lý hoàn toàn.
Chuẩn bị trước khi cài
Bạn cần:
- VPS Ubuntu có quyền
sudo; - một tài khoản Tailscale;
- ít nhất một máy client khác như Windows, macOS, Linux, Android hoặc iOS;
- giữ nguyên đường SSH hiện tại trong lúc thiết lập;
- quyền truy cập console của nhà cung cấp trong trường hợp cấu hình nhầm firewall.
Kiểm tra hệ thống:
uname -a
ip addr
sudo systemctl status ssh
Không cần đổi port SSH trước khi cài Tailscale.
Cài Tailscale trên VPS Ubuntu
Tài liệu Tailscale cung cấp script cài đặt cho Linux:
curl -fsSL https://tailscale.com/install.sh | sh
Nếu bạn không muốn dùng mô hình curl | sh, hãy dùng repository/package hướng dẫn chính thức cho distro đang chạy và kiểm tra nội dung trước khi cài.
Sau khi cài, kiểm tra service:
sudo systemctl status tailscaled
Khởi tạo kết nối:
sudo tailscale up
Lệnh sẽ trả về URL xác thực. Mở URL đó trên trình duyệt và đăng nhập tài khoản Tailscale.
Sau khi xác thực, kiểm tra:
tailscale status
Xem IP Tailscale của VPS:
tailscale ip -4
Địa chỉ thường nằm trong dải CGNAT dành cho Tailscale, khác với IPv4 public của VPS.
Cài Tailscale trên máy tính quản trị
Cài Tailscale trên laptop hoặc PC của bạn, đăng nhập cùng tailnet rồi chạy:
tailscale status
Bạn nên thấy VPS trong danh sách peer.
Thử ping IP Tailscale của VPS:
ping 100.x.y.z
Không phải mọi môi trường đều phản hồi ICMP giống nhau, vì vậy ping chỉ là bước kiểm tra nhanh. Kiểm tra dịch vụ SSH mới là quan trọng nhất.
SSH qua IP Tailscale
Nếu OpenSSH trên VPS vẫn chạy như bình thường, bạn có thể SSH qua địa chỉ Tailscale:
ssh ubuntu@100.x.y.z
Hoặc dùng user của bạn:
ssh admin@100.x.y.z
Với mô hình này, Tailscale chỉ cung cấp lớp mạng riêng; OpenSSH vẫn xác thực bằng SSH key/password theo cấu hình hiện tại.
Đây là cách dễ kiểm soát và ít thay đổi nhất khi bạn mới triển khai.
Dùng MagicDNS để khỏi nhớ IP
Nếu MagicDNS được bật trong tailnet, bạn có thể kết nối bằng hostname thay vì IP:
ssh ubuntu@ten-vps
Kiểm tra tên máy:
hostname
Đặt hostname rõ ràng giúp quản lý nhiều VPS dễ hơn, ví dụ:
web-prod-01;db-prod-01;monitor-01;staging-api.
Tránh dùng tên quá chung như server1, server2 khi hạ tầng bắt đầu lớn.
Có nên bật Tailscale SSH?
Tailscale SSH là tính năng để Tailscale quản lý xác thực và authorization cho SSH từ tailnet. Khi bật trên host Linux:
sudo tailscale set --ssh
Tính năng này nhận kết nối SSH tới port 22 trên địa chỉ Tailscale. Nó không tự động xóa cấu hình OpenSSH public hiện tại của bạn.
Ưu điểm:
- quản lý quyền SSH dựa trên identity/policy;
- có thể thu hồi quyền tập trung;
- giảm nhu cầu phân phối SSH key trong một số mô hình;
- hỗ trợ check mode cho kết nối nhạy cảm.
Tuy nhiên, nếu bạn đã có hệ thống SSH key và muốn thay đổi ít nhất có thể, hãy bắt đầu bằng SSH truyền thống chạy qua mạng Tailscale. Sau khi hiểu rõ policy, mới cân nhắc Tailscale SSH.
Access control: đừng để toàn bộ tailnet truy cập mọi thứ
Mạng riêng không đồng nghĩa mọi thiết bị nên thấy mọi dịch vụ.
Nguyên tắc nên dùng:
- user chỉ truy cập VPS mình cần;
- production tách khỏi máy thử nghiệm;
- database không mở cho tất cả client;
- dùng tag/group khi số máy tăng;
- định kỳ loại thiết bị cũ khỏi tailnet.
Tailscale hiện khuyến nghị cơ chế grants cho access control mới, dù ACL truyền thống vẫn được hỗ trợ.
Một policy tốt nên trả lời được:
- Ai được kết nối?
- Kết nối tới máy nào?
- Được dùng port/dịch vụ nào?
- Có cần xác thực lại với thao tác nhạy cảm không?
Không copy policy từ Internet rồi áp dụng nguyên xi nếu chưa hiểu selector và phạm vi quyền.
Có nên đóng port 22 trên Internet?
Chỉ nên cân nhắc sau khi bạn đã test đầy đủ:
- Tailscale tự khởi động sau reboot;
- laptop/PC kết nối tailnet ổn định;
- SSH qua Tailscale thành công;
- bạn có console dự phòng;
- đã kiểm tra policy không tự chặn mình.
Nếu dùng UFW, trước hết xem rule hiện tại:
sudo ufw status numbered
Đừng xóa rule SSH ngay trong phiên đầu tiên.
Một cách thận trọng là giữ public SSH trong giai đoạn theo dõi vài ngày, kết hợp SSH key và Fail2Ban. Bạn có thể tham khảo bài cài Fail2Ban trên VPS Ubuntu.
Sau khi đã có quy trình recovery, mới xem xét giới hạn nguồn truy cập hoặc đóng public SSH theo chính sách của bạn.
Tailscale không thay thế firewall
Tailscale tạo thêm interface mạng. Dịch vụ vẫn có thể đang listen trên 0.0.0.0 và tiếp tục public qua IP Internet nếu firewall cho phép.
Kiểm tra port listen:
sudo ss -tulnp
Hãy phân biệt ba trường hợp:
- service chỉ bind
127.0.0.1: chỉ local host truy cập; - service bind IP Tailscale: chỉ interface Tailscale nhận kết nối;
- service bind
0.0.0.0: có thể nghe trên nhiều interface, cần firewall kiểm soát.
Không nên kết luận “đã cài Tailscale nên mọi port đã private”.
Kiểm tra Tailscale sau reboot
Reboot có kiểm soát trong maintenance window:
sudo reboot
Sau khi máy lên lại, từ client kiểm tra:
tailscale status
ssh ubuntu@ten-vps
Trên VPS, kiểm tra:
sudo systemctl status tailscaled
Nếu bạn chỉ có một đường truy cập duy nhất và đây là production quan trọng, không reboot thử khi chưa có console dự phòng.
Xử lý lỗi thường gặp
VPS online nhưng không SSH được qua Tailscale
Kiểm tra:
tailscale status
sudo systemctl status ssh
sudo ss -tulnp | grep ':22'
Sau đó kiểm tra access policy của tailnet và firewall local.
tailscale status không thấy peer
Kiểm tra:
- hai thiết bị có đăng nhập đúng tailnet không;
- thiết bị có bị expired/disabled không;
- DNS hoặc outbound network của VPS có hoạt động không;
tailscaledcó chạy không.
MagicDNS không resolve hostname
Thử kết nối trực tiếp bằng Tailscale IP. Nếu IP hoạt động nhưng hostname không hoạt động, vấn đề nằm ở DNS/MagicDNS chứ không phải SSH.
Tailscale mất kết nối sau khi chỉnh firewall
Đừng vội xóa thêm rule. Dùng console của nhà cung cấp để kiểm tra ufw status, route và service tailscaled.
Tình huống thực tế: quản lý ba VPS mà không public dashboard
Giả sử bạn có:
web-prod-01chạy Nginx;db-prod-01chạy database;monitor-01chạy dashboard giám sát.
Một mô hình hợp lý:
- website chỉ public 80/443;
- SSH quản trị đi qua Tailscale;
- database chỉ cho web server và máy admin cần thiết;
- dashboard monitoring chỉ truy cập từ tailnet;
- mỗi máy dùng SSH key hoặc Tailscale SSH theo policy;
- public firewall chỉ giữ những port phục vụ người dùng cuối.
Cách này giảm số cổng quản trị cần public và giúp phân biệt rõ traffic ứng dụng với traffic vận hành.
Checklist triển khai an toàn
- Giữ phiên SSH cũ trong lúc cài.
- Cài Tailscale trên VPS và ít nhất một client.
- Xác nhận
tailscale statusbình thường. - Test SSH bằng IP Tailscale.
- Test MagicDNS nếu dùng.
- Kiểm tra access policy.
- Kiểm tra dịch vụ đang bind interface nào.
- Giữ SSH key mạnh.
- Có console/KVM/rescue mode dự phòng.
- Chỉ thay firewall sau khi mọi đường truy cập đã được kiểm tra.
FAQ
Tailscale có thay thế SSH key không?
Không bắt buộc. Bạn có thể chạy OpenSSH truyền thống qua mạng Tailscale và vẫn dùng SSH key. Chỉ khi bật Tailscale SSH thì mô hình xác thực mới thay đổi.
Cài Tailscale có tự đóng port 22 public không?
Không. Public SSH vẫn phụ thuộc vào cấu hình OpenSSH và firewall của VPS.
Có thể dùng Tailscale cho nhiều VPS không?
Có. Đây là một trong các use case phù hợp, nhưng nên tổ chức hostname, tag/group và access policy rõ ràng khi số lượng máy tăng.
Tailscale có miễn phí không?
Tailscale có nhiều gói và điều kiện có thể thay đổi theo thời điểm. Hãy xem trang pricing chính thức trước khi áp dụng cho tổ chức hoặc nhu cầu thương mại.
Dùng Tailscale có cần Fail2Ban nữa không?
Nếu SSH public vẫn mở thì Fail2Ban vẫn có ích để giảm brute-force noise. Nếu bạn đã loại bỏ hoàn toàn SSH public và policy private được cấu hình đúng, vai trò của Fail2Ban với SSH sẽ giảm, nhưng các lớp bảo mật khác vẫn cần.
Kết luận
Cài Tailscale trên VPS Ubuntu là một cách thực tế để tách luồng quản trị khỏi Internet công khai và quản lý nhiều máy qua mạng riêng. Cách triển khai an toàn nhất là đi từng bước: cài client, test SSH qua Tailscale, kiểm tra policy, chuẩn bị console dự phòng rồi mới cân nhắc thay đổi firewall.
Nếu bạn đang xây dựng hạ tầng VPS cho website, ứng dụng hoặc môi trường dev/staging, có thể tham khảo các gói VPS phù hợp trên HUONG CLOUD và chọn tài nguyên theo workload thực tế.
Nguồn tham khảo
- Tailscale Docs — Install Tailscale on Linux: https://tailscale.com/docs/install/linux
- Tailscale Docs — Tailscale SSH: https://tailscale.com/docs/features/tailscale-ssh
- Tailscale Docs — Access control: https://tailscale.com/docs/features/access-control
Kết luận
Nếu chưa chắc cấu hình hoặc loại dịch vụ nào phù hợp, hãy gửi nhu cầu thực tế để đội ngũ hỗ trợ tư vấn trước khi mua.
Chưa biết nên chọn gói nào?
Xem bảng giá VPS hoặc liên hệ đội ngũ hỗ trợ để chọn cấu hình phù hợp.
Xem bảng giá VPS →