Xây dựng Homelab: Cách SSH từ xa đơn giản nhất
Khi tôi bắt đầu xây dựng homelab của mình, một trong những điều tôi muốn là có thể truy cập nó từ bất kỳ đâu. Sự lựa chọn rõ ràng mà mọi người thường nói đến là chuyển tiếp cổng (port forwarding). Nhưng đây là vấn đề: tôi thậm chí không có router, tôi phụ thuộc vào một điểm phát Wi-Fi di động để có internet. Và điểm phát Wi-Fi di động không cung cấp cho bạn địa chỉ IP công cộng thực, vì vậy không có cách nào để chuyển tiếp cổng.
Ngay cả khi tôi có một router, tôi nhanh chóng nhận ra rằng chuyển tiếp cổng không phải là lựa chọn an toàn. Nó thực sự mở một cổng trên máy của bạn cho cả thế giới, và điều đó có nghĩa là bất kỳ ai cũng có thể cố gắng truy cập vào đó. Đối với một người mới như tôi, điều đó nghe có vẻ như rắc rối hơn là học hỏi.
Đó là lúc tôi biết đến Tailscale. Điều làm tôi ấn tượng là cách nó đơn giản hóa mọi thứ: không cần lo lắng về địa chỉ IP công cộng, không cần làm phiền với router, và không cần mở cổng. Nó thiết lập một kết nối riêng tư, an toàn giữa các thiết bị của tôi, gần như là phép màu. Đột nhiên, việc SSH vào homelab của tôi từ bất kỳ đâu trở nên dễ dàng và an toàn.
Thiết lập Tailscale cho laptop Windows
Bước 1: Tạo tài khoản Tailscale
Đầu tiên, bạn cần tạo một tài khoản Tailscale và tải xuống ứng dụng cho laptop Windows của bạn (laptop này sẽ là máy chủ mà tôi sẽ truy cập vào laptop Linux của mình). Bạn có thể tải xuống Tailscale từ đường dẫn này.
Bước 2: Kết nối Tailscale
Khi bạn kết nối với Tailscale, cửa sổ dưới đây sẽ xuất hiện:

- Nhấp vào nút "Connect" từ hình ảnh trên và trong bảng điều khiển quản trị của bạn, bạn sẽ thấy có một máy đã kết nối, như hình dưới đây. Nó yêu cầu phê duyệt vì tôi đã cấu hình để phê duyệt thủ công cho một máy kết nối. Lý do cho điều này là để tôi có thể linh hoạt trong việc cấu hình kết nối và xác định địa chỉ IP theo ý muốn. Nếu bạn muốn áp dụng cài đặt phê duyệt thủ công, hãy vào Cài đặt -> Quản lý thiết bị -> Bật phê duyệt thủ công.
Bước 3: Thay đổi địa chỉ IP
-
Trong bảng điều khiển quản trị, nhấp vào ba dấu chấm và bạn sẽ thấy tùy chọn thay đổi địa chỉ IP của máy ở đó. Nếu bạn muốn cấu hình địa chỉ IP, bạn có thể làm như dưới đây. Nếu bạn muốn đọc thêm về địa chỉ IP và CGNAT mà Tailscale sử dụng, bạn có thể tham khảo tài liệu này.
-
Tôi thích giữ hai octet cuối của tailnet giống như địa chỉ IPv4 riêng của máy của tôi. Bạn có thể xác minh cả hai bằng hình ảnh dưới đây.
-
Sau khi cập nhật địa chỉ IP, bạn cần phê duyệt kết nối, vì vậy hãy phê duyệt bằng cách nhấp vào ba dấu chấm rồi chọn phê duyệt.
Thiết lập Tailscale cho homelab Linux
Bước 1: Tải Tailscale cho Linux
- Truy cập trang tải xuống và tải Tailscale cho Linux, bạn có thể tham khảo liên kết trên hoặc sử dụng đoạn mã bên dưới:
bash
curl -fsSL https://tailscale.com/install.sh | sh
sudo apt install tailscale
Bước 2: Kết nối Tailscale với mạng
- Để kết nối Tailscale vào mạng của bạn, sử dụng lệnh
sudo tailscale upvà truy cập vào liên kết đăng nhập mà bạn nhận được. - Nếu lệnh trên báo lỗi "tailscale.service not found", điều đó có nghĩa là bạn cần khởi động dịch vụ và để làm điều đó, bạn có thể chạy
sudo systemctl start tailscaled. - Khi bạn đăng nhập, nó sẽ lại hiển thị trang kết nối, bạn cần kết nối vào cùng một tailnet với laptop Windows (sử dụng cùng một email để đăng nhập).
- Trong console của bạn, bây giờ bạn sẽ thấy hai máy, bạn có thể thay đổi địa chỉ IP của máy mới và phê duyệt nó. Cài đặt của bạn sẽ trông như hình dưới đây.
Bước 3: Xác minh kết nối
- Để xác minh xem máy Linux đã kết nối hay chưa, bạn có thể sử dụng lệnh
ip avà sẽ có một mục cho Tailscale với địa chỉ IP mà bạn vừa đặt.
Bật SSH cho homelab
Bước 1: Chạy lệnh Tailscale
- Trong một cửa sổ terminal trên homelab, chạy lệnh Tailscale để quảng bá SSH cho máy ảo đó:
bash
sudo tailscale set --ssh
Bước 2: Cấu hình quyền truy cập
- Mở trang Access Controls trong bảng điều khiển quản trị Tailscale và thêm các dòng sau vào tệp chính sách tailnet của bạn để cho phép kết nối mạng đến máy ảo:
json
"grants": [
{
"src": ["yoursigninemail@gmail.com"],
"dst": ["100.78.10.1"],
"ip": ["22"]
}
]
Bước 3: Thêm quyền truy cập SSH
- Trong tab đó, thêm các quy tắc sau vào phần SSH của tệp chính sách tailnet của bạn để cho phép truy cập SSH đến máy ảo:
json
"ssh": [
{ "action": "accept",
"src": ["yoursigninemail@gmail.com"],
"dst": ["autogroup:self"],
"users": ["root","autogroup:nonroot", "<your-local-username>"]
}
],
Bước 4: Xác minh người dùng
- Để xem (trong trường hợp của tôi là local-user), chạy lệnh sau trong terminal homelab:
whoami
Truy cập HomeLab từ máy Windows
Bước 1: Kết nối từ terminal Windows
- Bây giờ bạn có thể truy cập homelab của mình từ terminal Windows bằng lệnh sau:
ssh local-user@100.64.65.66 - Tôi đang truy cập bằng git bash trên Windows và bạn có thể thấy kết quả cuối cùng dưới đây.
Kết luận
Việc thiết lập SSH để truy cập homelab từ xa không còn là một nhiệm vụ phức tạp với Tailscale. Không chỉ giúp đơn giản hóa quá trình kết nối, mà còn tăng cường an ninh cho hệ thống của bạn. Nếu bạn muốn tìm hiểu thêm về các giải pháp bảo mật cho homelab của mình, hãy theo dõi các bài viết tiếp theo của chúng tôi.
Câu hỏi thường gặp (FAQ)
- Tailscale có miễn phí không?
- Tailscale cung cấp một gói miễn phí với các tính năng cơ bản. Bạn có thể nâng cấp lên các gói trả phí để có thêm chức năng.
- Tôi có thể sử dụng Tailscale trên nhiều thiết bị không?
- Có, bạn có thể cài đặt Tailscale trên nhiều thiết bị và kết nối chúng với nhau mà không gặp vấn đề gì.
- Có an toàn khi sử dụng SSH qua Tailscale không?
- Có, Tailscale mã hóa tất cả dữ liệu qua kết nối, giúp bảo vệ thông tin của bạn khỏi các mối đe dọa bên ngoài.
Thực hành tốt nhất
- Luôn cập nhật phiên bản mới nhất của Tailscale để đảm bảo tính năng và bảo mật tốt nhất.
- Sử dụng các phương pháp xác thực mạnh mẽ để bảo vệ tài khoản của bạn.
Những cạm bẫy thường gặp
- Không cấu hình chính xác quyền truy cập có thể dẫn đến việc không thể kết nối. Hãy chắc chắn kiểm tra lại cấu hình của bạn.
Mẹo hiệu suất
- Đảm bảo bạn có kết nối internet ổn định để tránh gián đoạn trong quá trình SSH.
Hướng dẫn khắc phục sự cố
- Nếu bạn gặp vấn đề kết nối, hãy kiểm tra lại dịch vụ Tailscale có đang chạy hay không và xác minh các thiết lập IP.