Tunnelto: đưa localhost ra Internet nhanh gọn lẹ

Nhớ lúc ngày trước hồi 2017 bắt đầu mò qua DevOps, khi tìm hiểu deploy, mà chưa có biết gì mấy về hạ tầng thì đưa cái localhost ra Internet thấy ngầu hẳn và nhu cầu cũng đã tồn tại từ nhiều năm rồi: như demo nhanh, test webhook, cho teammate truy cập thử,… Và các cái tên rất quen thuộc như ngrok hay Cloudflare Tunnel.

Vì có cu cháu hỏi đúng mục tiêu làm demo bài tập lớn trên trường và thấy gần đây Tunnelto là một option mã nguồn mở khá ngon, chạy bằng CLI, mục tiêu rất rõ ràng: tạo một public URL và forward về web server đang chạy trên máy bạn.

36cd35df-c499-4473-937a-380c768aea87

Vì sao là tunnelto?

Mình thích tunnelto ở điểm nhanh – gọn – lẹ đúng nhu cầu hàng ngày:

  • Chạy phát dùng ngay: chỉ cần trỏ port local là có public URL để demo/test/webhook.
  • CLI đơn giản: tập trung vào vài option hay sử dụng như subdomain, key, dashboard, host/scheme.
  • Mã nguồn mở: cài xong chạy, không phụ thuộc npm/stack cụ thể.

So sánh với các tools khác

  • ngrok: phổ biến, tiện, hệ sinh thái lớn. Nhưng nhiều người sẽ gặp rào cản plan/giới hạn hoặc muốn tự chủ hơn.
  • Cloudflare Tunnel: cực mạnh, hợp cho hướng hạ tầng production, gắn domain, zero-trus nhưng setup thường bài bản hơn, không phải ai cũng cần.
  • localtunnel: hợp nếu bạn đang ở hệ Node và muốn chạy nhanh kiểu npx.
  • tunnelto: nghiêng về kiểu mình cần link public ngay để test/demo. Gọn, nhanh, ít rườm rà.

Cài đặt

macOS (Homebrew)

brew install agrinman/tap/tunnelto

Cargo

cargo install tunnelto

Ubuntu

curl -sL https://tunnelto.dev/install.sh | sh

Cách sử dụng cơ bản

Chọn host (mặc định là localhost)

Dùng khi dịch vụ của bạn bind vào địa chỉ khác.

tunnelto --host 127.0.0.1 --port 8000

Chọn scheme khi forward về local (http/https)

Dùng khi local của bạn chạy https hoặc bạn muốn chỉ định rõ.

tunnelto --port 8000 --scheme http

Tạo subdomain cho dễ nhớ Dùng khi bạn muốn link đẹp, dễ gửi cho người khác.

tunnelto --port 8000 --subdomain mydemo

Bật dashboard để xem request đi vào tunnel

Dùng khi bạn muốn kiểm tra request/flow ngay trên máy dev.

tunnelto --port 8000 --dashboard-address 127.0.0.1:4040

Dùng API key (nếu bạn có key)

Dùng khi service yêu cầu key để tạo tunnel.

tunnelto --port 8000 --key 

Lưu key để lần sau khỏi gõ lại:

tunnelto set-auth --key 

Bật verbose để debug

Dùng khi tunnel không lên hoặc cần log chi tiết hơn.

tunnelto --port 8000 --verbose

Một số use case thường dùng

Test webhook (GitHub/Stripe/Slack)

Bạn cần một URL public để dán vào webhook settings.

tunnelto --port 3000 --subdomain webhook-dev

Demo nhanh cho bạn bè

Bạn đang làm landing page hoặc REST API, muốn người khác xem ngay lập tức. Dùng subdomain để link nhìn phát hiểu ngay.

tunnelto --port 5173 --subdomain landing-preview

Gửi link dạng https://landing-preview... là xong.

Test OAuth redirect/callback

OAuth thường yêu cầu redirect URL là địa chỉ public.

tunnelto --port 3000 --subdomain oauth-callback

Rồi bạn lấy URL đó điền vào phần Redirect URI trong OAuth provider.

Mobile app gọi về backend local

Thay vì mở port router hoặc cùng Wi-Fi, bạn dùng tunnel:

tunnelto --port 8080 --subdomain mobile-api

Trên app mobile bạn set base URL thành public URL tunnel.

Dùng hosted tunnelto.dev (đăng nhập lấy API key)

Nếu bạn sợ share link ra ngoài mà ai cũng vào nghịch:

tunnelto set-auth --key 
tunnelto --port 8000

set-auth là lệnh lưu key để lần sau khỏi nhập lại.

Kết

Tóm lại, tunnelto là tool nhanh – gọn – dễ dùng để mở localhost ra Internet nhanh chóng để demo/test/webhook. Chạy 1 lệnh là có link, cần xịn hơn thì có subdomain, dashboard, API key. Anh em nên trải nghiệm qua nhé.

Thông tin nổi bật

Sự kiện phát trực tiếp​

Event Thumbnail

Báo cáo quan trọng

Article Thumbnail
Article Thumbnail

Sự kiện đang hiện hành

Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận

Tiêu điểm chuyên gia