Tôi là một người (có thể nói là khá muộn) mới chuyển sang sử dụng Tailscale, và những sắp xếp mạng ảo mạnh mẽ mà nó mang lại. Một phần lý do là tôi đã sử dụng nhiều nhà cung cấp VPN truyền thống khác nhau, và một phần vì cho đến gần đây, tôi chưa cần phải truy cập home lab của mình từ xa, do tôi chưa có home lab để truy cập.
Tuy nhiên, mọi thứ đang thay đổi, và bây giờ câu hỏi không còn là làm thế nào để cài đặt Tailscale, mà là “tôi đã bỏ sót bao nhiêu thiết bị?”. Tôi có thể gần như hiểu về mạng, DNS, và domain, và cách chúng kết nối lại với nhau để tạo nên thứ gọi là internet. Nhưng điều đó không có nghĩa là tôi thực sự thích làm việc đó, chẳng hạn như điệu nhảy phức tạp của việc thay đổi cài đặt ở nhiều nơi và đảm bảo từng “octet” đều đúng vị trí.
Đừng hiểu lầm, tôi thích học hỏi và cảm giác thành công sau nhiều giờ (đôi khi) bực bội, nhưng tôi cũng có những ưu tiên khác. Home lab của tôi sẽ không tự chạy, và tôi càng dành nhiều thời gian cho mạng, tôi càng có ít thời gian để thực hiện các thử nghiệm thú vị. Đó là lúc Tailscale xuất hiện, và đặc biệt hơn, là Tailscale Funnel.
Tính năng này, một phần nội tại của MagicDNS của Tailscale, cho phép tôi kiểm tra các dịch vụ tự host từ một URL công khai mà không cần thiết lập các bản ghi domain hay bất kỳ thứ gì liên quan đến mạng mà tôi không muốn làm, nhờ đó tôi có thể tập trung vào dịch vụ và làm cho nó hoạt động. Chúng thật tuyệt vời, và phần tốt nhất là chúng không tốn nhiều thời gian để sử dụng.
Máy tính hiển thị giao diện Tailscale kết nối với Raspberry Pi trong môi trường home lab
5. Chúng Rất Đơn Giản
Chỉ Một Dòng Lệnh Để Bắt Đầu
Tôi đã sử dụng rất nhiều cách khác nhau để truy cập các dịch vụ đang chạy trong home lab của mình từ bên ngoài mạng gia đình, và hầu hết là các giải pháp VPN khiến thiết bị của tôi hoạt động như thể nó đang ở nhà, reverse proxy để xử lý việc truyền gói dữ liệu qua thiết bị mạng của tôi, hoặc là sự kết hợp của cả hai. Một số phức tạp để thiết lập, số khác thì ít hơn, nhưng tất cả đều liên quan đến các bước bổ sung để hoạt động.
Tailscale Funnel thì không. Cài đặt Tailscale rất nhanh, và thiết lập một Funnel để expose một ứng dụng tự host đơn giản như một dòng lệnh duy nhất trong cửa sổ terminal.
tailscale funnel [port]
Đó là tất cả những gì cần thiết để kết nối cổng dịch vụ với cổng bên ngoài, tạo một bản ghi DNS liên quan, và một URL tailnet để dễ dàng truy cập. Có thể mất vài phút để các bản ghi DNS lan truyền, nhưng đó là tốc độ tối đa mà các máy chủ tên có thể đạt được. Không cần chỉnh sửa file YAML, không cần nhớ (hoặc gõ sai!) cú pháp hay ánh xạ cổng, chỉ một lệnh duy nhất cũng có thể sử dụng các cổng khác nhau cho nội bộ và bên ngoài nếu bạn cần.
Màn hình máy tính Windows 11 hiển thị cửa sổ dòng lệnh (PowerShell)
4. Chúng Rất Bảo Mật
Mã Hóa Từ Đầu Đến Cuối Là Chìa Khóa
Kết nối với các ứng dụng tự host của tôi khá dễ dàng khi tôi ở nhà, ngoại trừ việc phải xử lý các chứng chỉ tự ký cho việc sử dụng HTTPS. Tuy nhiên, những chứng chỉ tự ký này có thể là một vấn đề khi cố gắng cung cấp các ứng dụng đó ra bên ngoài nhà, chẳng hạn như thông qua một reverse proxy được bảo mật đúng cách. Không phải là không thể, nhưng nó đòi hỏi thêm vài bước để xác minh chứng chỉ đáng tin cậy, và cũng tốn kém chi phí tài chính.
Tủ mạng với hệ thống cáp mạng được kết nối
Nhưng ngay khi một Tailscale Funnel được khởi tạo, Tailscale sẽ cung cấp cho bạn một subdomain DNS thực, điều đó có nghĩa là bạn nhận được một chứng chỉ được cấp phát từ cấp độ tin cậy của Tailscale và do đó được trình duyệt web của bạn tự động tin cậy. Vẫn là chứng chỉ Let’s Encrypt tự ký, nhưng bạn không cần phải có domain riêng, thiết lập VPS, và trỏ domain registrar của mình đến đó để có chứng chỉ đáng tin cậy; nó chỉ đơn giản là hoạt động. Lặp lại lần nữa, tôi ghét phải đối phó với những phiền toái của DNS, và việc có một thứ gì đó làm tất cả cho tôi một cách liền mạch gần như là phép màu.
Khi URL Funnel được sử dụng, nó thiết lập một proxy TCP giữa ứng dụng liên quan và thiết bị mà URL đã được nhấp vào. Nó được mã hóa hoàn toàn và không bao giờ giải mã lưu lượng giữa các thiết bị công cộng và thiết bị của bạn. Phần duy nhất của liên kết không được mã hóa là giữa máy chủ Tailscale trong nhà tôi và ứng dụng tôi đang truy cập, giống như khi tôi ở nhà.
Mặt sau máy chủ Lenovo ThinkServer SR250 V2 với các cổng kết nối
3. Không Cần Port Forwarding
Càng Ít Cổng Mở Ra Ngoài Càng Tốt
Tôi luôn cảnh giác về việc để các cổng mở ra internet, và bất kỳ ai trong thời đại này cũng nên như vậy. Việc thiết lập các bản quét IP tự động để xác định các cổng mở cho việc dò quét trong tương lai là quá dễ dàng, và việc bảo mật chúng đúng cách là một thách thức đáng kể. Nếu bạn có thể port forward ngay từ đầu, các ISP thường hạn chế khả năng này, đặc biệt là trên các cổng cụ thể (cổng 25 cho SMTP rất thường bị chặn). Đó là lý do tại sao tôi thường không bận tâm và sử dụng thứ gì đó như Pangolin sử dụng các phương pháp xuyên NAT để tránh cần bất kỳ cổng mở hoặc cấu hình tường lửa nào.
Chi tiết tủ mạng chứa thiết bị mạng
Tailscale Funnels về mặt kỹ thuật có mở một cổng, nhưng chỉ cho tailnet của bạn, chứ không phải internet có thể quét công khai. Với một URL được bảo mật HTTPS để truy cập các ứng dụng của tôi, tôi không phải lo lắng về các cuộc tấn công tự động hoặc bất kỳ vấn đề nào khác mà việc có một cổng mở vĩnh viễn trên tường lửa của tôi có thể gây ra. Tôi thậm chí không phải lo lắng về việc thay đổi các bản ghi DNS. Hơn nữa, tôi không phải làm port forwarding, điều mà tôi rất vui mỗi khi thiết lập Funnel.
Bộ định tuyến GL.iNet AX1800 chạy OpenWRT
2. Các Trường Hợp Sử Dụng Sáng Tạo
Điều Gì Xảy Ra Nếu Bạn Biến Một Dịch Vụ Thành Nhiều?
Funnels rất mạnh mẽ như một reverse proxy đơn giản, cho phép một dịch vụ tự host được sử dụng dễ dàng từ một URL có thể chia sẻ. Bạn có thể sử dụng nhiều Funnels để truy cập mọi thứ trong home lab của mình, nhưng có một cách thanh lịch hơn mà tôi đã bỏ qua bấy lâu nay. Lệnh funnel cũng hỗ trợ TCP forwarding, và điều đó có nghĩa là bạn có thể thiết lập nó để forward đến Caddy, hoặc bất kỳ reverse proxy nào khác được host cục bộ.
Thiết bị chuyển mạch (switch) mạng Zyxel XGM1915
Cái hay của việc này là phần thường gây khó khăn để bảo mật của reverse proxy không bao giờ rời khỏi mạng cục bộ của bạn, do đó bề mặt tấn công giảm đi đáng kể. Điểm truy cập duy nhất đến qua một URL Tailscale an toàn, vì vậy việc có một nhà cung cấp xác thực trên reverse proxy của bạn sẽ chặn bất kỳ ai bạn không muốn. Nó cũng có nghĩa là bạn có thể truy cập các ứng dụng, dịch vụ, thư mục và các tài nguyên khác có thể không nằm trong tailnet của bạn, mà không cần cài đặt client Tailnet trên từng thiết bị.
Bộ định tuyến mạng đặt cạnh tivi
1. Dễ Dàng Truy Cập Cho Người Dùng Không Dùng Tailscale
Gia Đình Và Bạn Bè Sẽ Cảm Ơn Bạn
Cho đến nay, mọi tính năng tôi yêu thích về Tailscale Funnel đều mang lại lợi ích cá nhân. Nhưng vì Funnels rất tuyệt vời để chia sẻ các dịch vụ tự host của bạn với bạn bè và thành viên gia đình đáng tin cậy, có một tính năng nội tại mang lại lợi ích lớn nhất cho họ. Chúng ta có lẽ đều đã trải qua sự phản đối khi cố gắng chuyển sang các giải pháp tự host thay thế, vì đôi khi chúng có thể khó kết nối hơn so với các dịch vụ đăng ký mà chúng thay thế.
Không ai muốn gõ địa chỉ IP hoặc chi tiết kết nối SSH. Nó tốn nhiều công sức hơn so với việc sử dụng SSO để truy cập dịch vụ. Tuy nhiên, họ có thể, và sẽ, nhấp vào một liên kết (ngay cả khi chúng ta cố gắng ngăn họ làm vậy), khiến URL Tailscale Funnel trở thành một phần vô giá trong chiến lược của bạn. Không phải ai cũng muốn tìm hiểu cách mọi thứ hoạt động, nhưng nếu rào cản gia nhập được loại bỏ, họ sẽ vui vẻ lắng nghe lý do tại sao đó là lựa chọn phù hợp hơn cho nhu cầu của họ.
Giao diện web của Tailscale
Tôi đã nhìn thấy ánh sáng cuối “phễu”, và Tailscale sắp trở thành một trong những thứ đầu tiên tôi cài đặt bất cứ khi nào tôi triển khai một dịch vụ hoặc thử nghiệm home lab mới. Tôi luôn nói rằng hãy tập trung vào những gì bạn yêu thích trong home lab của mình, và trả tiền hoặc thuê ngoài những thứ bạn không thích. Và bạn biết tôi không thích gì không? Thiết lập các bản ghi DNS, port forward, reverse proxy, và mọi thứ cần thiết khác để sử dụng các công cụ tự host bên ngoài mạng của tôi trong khi vẫn đảm bảo an toàn. Tailscale Funnel làm tất cả công việc khó khăn đó cho tôi, cho phép tôi tập trung vào việc thử nghiệm các công cụ và dịch vụ mới, đó mới thực sự là điều tôi yêu thích về việc xây dựng home lab.