To nie do końca versus. Cloudflare Tunnel (cloudflared) i PortPreview mieszkają w różnych pokojach. Cloudflare Tunnel utrzymuje usługę stale online za edge Cloudflare — Zero Trust, nazwane tunele, własne domeny. PortPreview jest na następne dwadzieścia minut twojej sesji dev — testowanie webhooków, QA mobilne, dzielenie się gałęzią z projektantem. Wybór między nimi zależy głównie od tego, jaki problem naprawdę masz.
W czym Cloudflare Tunnel jest dobry
cloudflared zbudowano dla jednej rzeczy: umieszczenia usługi w internecie bez otwierania ani jednego portu przychodzącego i bez wystawiania twojego IP origin. Uruchom go na serwerze, podłącz nazwany tunel do hostname na twojej domenie Cloudflare, a ruch płynie przez edge Cloudflare do twojego origin połączeniem wychodzącym, które zainicjowała twoja maszyna.
Rzeczy, które robi dobrze:
- Routing produkcyjny. Funkcja nazwanego tunelu jest trwała. Możesz uruchomić cloudflared jako usługę, a hostname działa dalej między restartami.
- Polityki dostępu Zero Trust. Zabezpiecz tunel za SSO, MFA lub allowlistami IP do wystawiania narzędzi wewnętrznych.
- Własne domeny. Przynieś własną domenę na Cloudflare. Tunel kończy się na
twoja-domena.com, nie na subdomenie dostawcy. - Routing WARP. Osiągaj prywatne usługi z dowolnego urządzenia w sieci Cloudflare bez konfiguracji VPN.
Żadna z tych rzeczy nie dotyczy debugowania webhooków.
Gdzie Cloudflare Tunnel staje się niewygodny dla dev
Tryb quick tunnel (cloudflared tunnel --url localhost:3000) jest najbliższy temu, by cloudflared był narzędziem dev, i działa. Dostajesz URL *.trycloudflare.com wskazujący na twój lokalny port. Ale:
- URL rotuje co sesję, jak większość tuneli dev.
- Brak wbudowanego inspektora żądań. Widzisz, co loguje twój serwer dev, i nic więcej. Przechwycenie payloadu webhooka do późniejszej powtórki wymaga doczepienia osobnego proxy lub loggera.
- Konfiguracja nazwanych tuneli (wersja ze stabilnym URL) obejmuje konto Cloudflare, rekordy DNS i plik konfiguracyjny. Warto dla długowiecznej usługi; przesada dla sesji iteracji webhooka.
Gdzie pasuje PortPreview
PortPreview to CLI do tunelowania localhost dla pętli dev. Jedna komenda, publiczny URL HTTPS, przechwytywanie i powtórka żądań wbudowane.
npx portpreview 3000
Optymalizujemy moment między "zmieniłem mój handler webhooka Stripe" a "wiem, czy działa". Ten moment powinien trwać sekundy. Przechwyć payload, napraw handler, powtarzaj aż będzie zielono, wszystko bez ponownego wyzwalania zdarzenia upstream.
Obok siebie
| Potrzeba | Cloudflare Tunnel | PortPreview |
|---|---|---|
| Szybka sesja debugowania webhooka | Możliwe (quick tunnel) | Zbudowany do tego |
| Przechwytywanie i powtórka żądań | Nie | Tak |
| Stabilny nazwany hostname | Tak (z konfiguracją) | Nie domyślny fokus |
| Własna domena | Tak | Subdomena tunelu |
| Polityka dostępu Zero Trust | Tak | Nie |
| Złożoność konfiguracji | Niska dla quick, średnia dla named | Jedna komenda |
| Działanie wiecznie jako usługa | Tak | Zaprojektowany dla sesji |
| Klient open source | Tak (cloudflared) | Tak |
Kiedy użyć którego
Użyj Cloudflare Tunnel gdy
- Potrzebujesz usługi online 24/7 bez otwierania portów zapory.
- Chcesz dostępu zabezpieczonego SSO do wewnętrznego dashboardu lub narzędzia admin.
- Potrzebujesz stabilnego URL własnej domeny wspartego prawdziwym certyfikatem CA i twoim istniejącym DNS Cloudflare.
- Jesteś już na Cloudflare, a marginalny koszt konfiguracji jest mały.
Użyj PortPreview gdy
- Iterujesz handler webhooka i chcesz powtórki jednym kliknięciem.
- Chcesz podzielić się gałęzią z projektantem na dziesięć minut.
- Testujesz callbacki OAuth lub przepływy mobilne bez konfiguracji DNS.
- Wolisz nie zarządzać kontem Cloudflare tylko po to, by przetestować zdarzenie Stripe.
Dobrze współistnieją
Kilka zespołów, z którymi rozmawialiśmy, używa obu. Cloudflare Tunnel do zawsze-aktywnego narzędzia wewnętrznego, które potrzebuje stałego URL i SSO. PortPreview do codziennego debugowania webhooków, które potrzebuje powtórki i jednej komendy. Nie kolidują — po prostu obsługują różne części łuku dev-do-prod.
Jeśli rozważasz też ngrok lub localtunnel, te porównania mogą być bardziej bezpośrednio istotne. Dołącz do listy oczekujących PortPreview po stronę pętli dev.