Tôi phải thừa nhận, tôi là người “nhập môn” Tailscale hơi muộn (một số người có thể nói là rất muộn), và tôi thực sự ấn tượng với khả năng thiết lậ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, và một phần nữa là cho đến gần đây, tôi không cần truy cập home lab của mình từ xa, vì lúc đó tôi chưa có home lab.
Tuy nhiên, thời thế đã thay đổi, và bây giờ vấn đề không phải là làm sao để cài đặt Tailscale, mà là “liệu còn thiết bị nào của tôi chưa cài Tailscale không?”. Thật vậy, tôi có thể hiểu hầu hết các kiến thức về mạng, DNS, và tên miền, cũng như cách chúng kết nối với nhau để tạo nên Internet. Nhưng điều đó không có nghĩa là tôi thích thú khi thực hiện các công việc này, ví dụ như quá trình phức tạp của việc thay đổi cài đặt ở nhiều nơi và đảm bảo từng “octet” (phần trong địa chỉ IP) đều ở đúng vị trí.
Đừng hiểu lầm, tôi yêu thích việc học hỏi và cảm giác thành công sau (đôi khi) hàng giờ vật lộn, nhưng tôi còn có những ưu tiên khác. Home lab của tôi sẽ không tự chạy, và càng dành nhiều thời gian cho cấu hình mạng, tôi càng có ít thời gian để thực hiện các thí nghiệm thú vị khác. Đó 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 không thể thiếu của MagicDNS của Tailscale, cho phép tôi kiểm thử 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 tên miền hay bất kỳ cấu hình mạng nào khác mà tôi không muốn làm. Nhờ đó, tôi có thể tập trung vào bản thân dịch vụ và đảm bảo nó hoạt động. Funnel thật tuyệt vời, và điều tuyệt vời nhất là chúng rất nhanh chóng để sử dụng.
Raspberry Pi và máy tính hiển thị giao diện Tailscale
5 lý do khiến Tailscale Funnel đáng sử dụng cho Home Lab và Self-Hosted Services
5. Đơn giản
Chỉ cần một dòng lệnh duy nhất để truy cập
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. 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 chuyể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ố thì phức tạp để thiết lập, số khác thì ít hơn, nhưng tất cả đều yêu cầu 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 Funnel để phơi bày một ứng dụng tự host ra ngoài mạng chỉ đơn giản là một dòng lệnh duy nhất trong cửa sổ terminal.
tailscale funnel [cổng]
Chỉ cần thế là đủ để 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 kết, 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 độ nhanh nhất mà các máy chủ định danh có thể làm được. Không cần chỉnh sửa file YAML, không cần ghi nhớ (hoặc gõ sai!) cú pháp hay ánh xạ cổng, chỉ cần một lệnh duy nhất mà còn 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áy tính Windows hiển thị cửa sổ dòng lệnh (terminal)
4. Bảo mật
Mã hóa đầu cuối (End-to-end encryption) là yếu tố then chốt
Kết nối đến 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 đối phó với các chứng chỉ tự ký cho việc sử dụng HTTPS. Tuy nhiên, các chứng chỉ tự ký này có thể trở thành 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ó yêu cầu 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í.
Nhưng ngay khi một Tailscale Funnel được khởi tạo, Tailscale cung cấp cho bạn một subdomain DNS thực, có nghĩa là bạn nhận được một chứng chỉ được cấp từ mức độ tin cậy của Tailscale và do đó được trình duyệt web của bạn tự động tin cậy. Nó vẫn là một chứng chỉ Let’s Encrypt tự ký, nhưng bạn không cần phải mua tên miền của riêng mình, thiết lập một VPS, và trỏ nhà đăng ký tên miền của bạn đến đó để có được các chứng chỉ đáng tin cậy; nó chỉ đơn giản là hoạt động. Một lần nữa, tôi xin nhắc lại rằng tôi ghét phải đối phó với những rắc rối của DNS, và có một thứ làm tất cả điều đó cho tôi một cách liền mạch thật gần như kỳ diệ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 từ đầu cuối 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 kết nối 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 đang ở nhà.
Tủ mạng với hệ thống dây cáp
3. Không cần mở cổng (Port Forwarding)
Càng ít cổng mở từ home lab của tô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 công cụ quét IP tự động để xác định các cổng mở cho các cuộc tấn công sau này 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ể mở cổng ngay từ đầu, các ISP thường giới hạn 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 NAT traversal để tránh cần bất kỳ cổng mở hoặc cấu hình tường lửa nào.
Tailscale Funnel về mặt kỹ thuật có mở một cổng, nhưng chỉ tới tailnet của bạn, chứ không phải Internet công khai có thể quét được. Với một URL được bảo mật bằng 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 hay 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. Thêm vào đó, tôi không phải thực hiện port forwarding, điều mà tôi cảm thấy vui mừng mỗi khi thiết lập một Funnel.
Mặt sau của máy chủ Lenovo ThinkServer V2 với các cổng kết nối
2. Các trường hợp sử dụng sáng tạo
Nếu bạn có thể biến một dịch vụ thành nhiều dịch vụ thì sao?
Funnel rất mạnh mẽ như một reverse proxy đơn giản, cho phép một dịch vụ tự host dễ dàng được sử dụng từ một URL có thể chia sẻ. Bạn có thể sử dụng nhiều Funnel để 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 đã hiện rõ trước mắt tôi bấy lâu nay. Lệnh funnel
cũng hỗ trợ chuyển tiếp TCP, có nghĩa là bạn có thể thiết lập nó để chuyển tiếp đến Caddy hoặc bất kỳ reverse proxy cục bộ nào khác.
Điểm hay của việc này là phần thường gây phiền phức khi bảo mật của reverse proxy không bao giờ rời mạng nội bộ của bạn, do đó bề mặt tấn công được giảm thiểu đáng kể. Đường vào duy nhất là thông 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ẽ khóa những người bạn không muốn truy cập. 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 trên tailnet của bạn, mà không cần cài đặt client Tailnet trên mỗi thiết bị đó.
Tủ mạng hoặc hộp thiết bị mạng
1. Dễ dàng truy cập cho người không dùng Tailscale
Gia đình và bạn bè của bạn 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ì Funnel 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 cho họ nhiều nhất. Tất cả chúng ta có thể đã từng trải qua sự phản kháng 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 đang 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 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 điều đó), làm cho 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 học 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 nó phù hợp hơn với nhu cầu của họ.
Router GL.iNet chạy hệ điều hành OpenWRT
Tôi có thể sẽ chuyển sang sử dụng Tailscale Funnel vĩnh viễn để thoát khỏi những cơn đau đầu về DNS và proxy
Tôi đã nhìn thấy ánh sáng ở cuối “phễu” (funnel), 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 đưa một dịch vụ home lab hoặc thử nghiệm mới vào hoạt động. 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, chuyển tiếp cổng (port forwards), 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 mà 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, điều mà tôi thực sự yêu thích ở home labbing.
Bộ chuyển mạch mạng (switch) Zyxel
Router Wi-Fi trong nhà cạnh tivi