Tôi là một người dùng khá (thậm chí rất) muộn màng chuyển sang sử dụng Tailscale, và tôi thực sự bị thuyết phục bở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 chậm trễ là tôi đã quen dùng nhiều nhà cung cấp VPN truyền thống, và cũng vì trước đây tôi chưa có nhu cầu truy cập home lab từ xa, đơn giản là vì tôi chưa có home lab để truy cập.
Nhưng giờ đây, mọi thứ đã thay đổi. Vấn đề không còn là làm thế nào để cài đặt Tailscale nữa, mà là “tôi đã bỏ sót bao nhiêu thiết bị chưa cài đặt?”. Tôi có thể phần nào hiểu về mạng máy tính, DNS, tên miền và cách chúng kết nối lại với nhau để tạo nên thứ mà chúng ta 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 này, đặc biệt là việc thực hiện những thao tác phức tạp, thay đổi cài đặt ở nhiều nơi và đảm bảo mọi octet đều nằm đúng vị trí của nó.
Đừng hiểu lầm, tôi yêu thích quá trình 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ò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 việc cấu hình mạng, tôi càng ít thời gian cho những thử nghiệm thú vị. Đó chính là lúc Tailscale phát huy tác dụng, và đặc biệt hơn là Tailscale Funnel.
Tính năng cốt lõi này, một phần 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 phải thiết lập bản ghi tên miền hay bất kỳ thứ gì khác liên quan đến mạng mà tôi muốn tránh làm. Nhờ đó, tôi có thể tập trung vào dịch vụ và đảm bảo nó hoạt động. Tailscale Funnel thật tuyệt vời, và điều tuyệt vời nhất là chúng không tốn nhiều thời gian để sử dụng.
Thiết lập Tailscale trên Raspberry Pi kết nối với máy tính để bàn
5. Chúng rất đơn giản
Một lệnh duy nhất là đủ để truy cập
Tôi đã thử 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ể đang ở nhà, hoặc các reverse proxy để xử lý việc chuyển tiếp các 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, một số ít phức tạp hơn, nhưng tất cả đều yêu cầu các bước bổ sung để có thể hoạt động.
Tailscale Funnel thì không như vậy. Cài đặt Tailscale đã nhanh chóng, và thiết lập một Funnel để đưa ứng dụng tự host ra ngoài đơn giản chỉ bằng một dòng lệnh duy nhất trong cửa sổ terminal.
tailscale funnel [port]
Chỉ cần vậy là đủ để kết nối cổng dịch vụ nội bộ với cổng bên ngoài, tạo một bản ghi DNS liên quan và một URL tailnet để truy cập dễ dàng. Có thể mất vài phút để các bản ghi DNS được cập nhật, nhưng đó là tốc độ tối đa mà các máy chủ tên miền có thể đạt được. Không cần chỉnh sửa tệp 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, thậm chí có thể sử dụng các cổng khác nhau cho kết nối nội bộ và bên ngoài nếu bạn cần.
So sánh cửa sổ Windows PowerShell và PowerShell trong Windows 11
4. Chúng an toàn
Mã hóa đầu cuối là yếu tố then chốt
Kết nối tới các ứng dụng tự host của tôi khá dễ dàng khi ở nhà, ngoại trừ việc phải đối phó với các chứng chỉ tự ký (self-signed certificates) cho kết nối HTTPS. Tuy nhiên, những chứng chỉ tự ký này có thể gây rắc rối khi cố gắng đưa các ứng dụng đó ra bên ngoài mạng gia đì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 một vài bước để xác minh chứng chỉ đáng tin cậy, và đôi khi cũng tốn kém chi phí.
Nhưng ngay sau khi Funnel của Tailscale được kích hoạt, Tailscale sẽ cung cấp cho bạn một tên miền phụ DNS thực tế, nghĩa là bạn sẽ có được một chứng chỉ được cấp phát 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. Về bản chất, nó vẫn là chứng chỉ Let’s Encrypt, nhưng bạn không cần phải sở hữu tên miền, thiết lập một VPS và trỏ nhà đăng ký tên miền của mình tới đó để có được chứng chỉ đáng tin cậy; nó chỉ hoạt động. Tôi xin nhắc lại, tôi ghét việc phải đối phó với sự phiền phức của DNS, và việc có thứ gì đó làm tất cả điều đó cho tôi một cách liền mạch gần như là điều kỳ diệu.
Cáp mạng được sắp xếp gọn gàng trong tủ mạng
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 truy cập. Kết nối này được mã hóa hoàn toàn và không bao giờ giải mã lưu lượng truy cập 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à vậy.
Cổng kết nối ở mặt sau của máy chủ Lenovo ThinkServer SR250 V2
3. Không cần chuyển tiếp cổng (Port Forwarding)
Càng ít cổng mở ra internet từ home lab 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 trong tương lai 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ể. Ngay cả khi bạn có thể thiết lập chuyển tiếp cổng ngay từ đầu, các nhà cung cấp dịch vụ internet (ISP) thường giới hạn khả năng này, đặc biệt trên các cổng cụ thể (cổng 25 cho SMTP rất phổ biến 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 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.
Tailscale Funnels 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 cộng có thể quét được. Với 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 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 thực hiện chuyển tiếp cổng, điều mà tôi cảm thấy rất vui mỗi khi thiết lập một Funnel.
Bộ định tuyến GL.iNET Slate AX (AX1800) chạy OpenWrt
2. Các trường hợp sử dụng sáng tạo
Điều gì sẽ xảy ra nếu bạn có thể biến một dịch vụ thành nhiều dịch vụ?
Funnels 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 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ợ chuyển tiếp TCP, và điều đó có nghĩa là bạn có thể thiết lập nó để chuyển tiếp tới Caddy, hoặc bất kỳ reverse proxy nào khác được host cục bộ.
Điều tuyệt vời 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 khỏi mạng cục bộ của bạn, do đó diện tích tấn công giảm đi đáng kể. Lối vào duy nhất đến 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 bất kỳ ai bạn không muốn truy cập. Điều đó 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 ứng dụng Tailnet client trên từng thiết bị đó.
Bộ định tuyến đặt cạnh tivi và que hương trầm
1. Truy cập dễ dàng cho người dùng 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 ở 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 vốn có mang lại lợi ích lớn nhất cho họ. Tất cả chúng ta có lẽ đều từng gặp phải sự phản kháng khi cố gắng chuyển sang các giải pháp tự host, vì đôi khi chúng có thể khó kết nối hơn so với các dịch vụ trả phí mà chúng thay thế.
Không ai muốn gõ địa chỉ IP hay 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). Đ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ẽ rất vui lòng 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 hiển thị danh sách các thiết bị trong mạng Tailnet
Tôi có thể sẽ chuyển sang sử dụng Tailscale Funnel vĩnh viễn để tránh những rắc rối với DNS và Proxy
Tôi đã nhìn thấy ánh sáng cuối đường hầm (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 triển khai một dịch vụ home lab hoặc thử nghiệm 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 bản ghi DNS, chuyển tiếp cổng, reverse proxy và tất cả những 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 giữ 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 ở việc làm home lab.