{"id":1305,"date":"2026-09-03T20:00:35","date_gmt":"2026-09-03T18:00:35","guid":{"rendered":"https:\/\/piotrgabriel.pl\/wiki\/?p=1305"},"modified":"2026-09-04T06:58:28","modified_gmt":"2026-09-04T04:58:28","slug":"cloudflare-quick-tunnel-co-to-jest-jak-dziala-i-do-czego-mozna-go-wykorzystac","status":"publish","type":"post","link":"https:\/\/piotrgabriel.pl\/wiki\/cloudflare-quick-tunnel-co-to-jest-jak-dziala-i-do-czego-mozna-go-wykorzystac\/","title":{"rendered":"Cloudflare Quick Tunnel &#8211; co to jest, jak dzia\u0142a i do czego mo\u017cna go wykorzysta\u0107?"},"content":{"rendered":"<p>Czasami podczas pracy nad aplikacj\u0105, API, lokalnym serwerem czy jakim\u015b narz\u0119dziem opartym o AI pojawia si\u0119 do\u015b\u0107 prozaiczny problem.<\/p>\n<p>Mamy co\u015b uruchomionego lokalnie, przyk\u0142adowo pod adresem:<\/p>\n<p><code>http:\/\/localhost:3000<\/code><\/p>\n<p>i chcieliby\u015bmy dosta\u0107 si\u0119 do tego z innego komputera, telefonu albo udost\u0119pni\u0107 aplikacj\u0119 komu\u015b przez internet.<\/p>\n<p>Normalnie zaczyna si\u0119 wtedy kombinowanie:<\/p>\n<ul>\n<li>przekierowanie port\u00f3w na routerze,<\/li>\n<li>firewall,<\/li>\n<li>publiczne IP,<\/li>\n<li>konfiguracja domeny,<\/li>\n<li>czasami jeszcze problemy z NAT-em operatora.<\/li>\n<\/ul>\n<p>Mo\u017cna jednak zrobi\u0107 to zdecydowanie pro\u015bciej.<\/p>\n<p>Jednym z rozwi\u0105za\u0144 jest <strong>Cloudflare Quick Tunnel<\/strong>, czyli bardzo szybki spos\u00f3b na wystawienie lokalnie dzia\u0142aj\u0105cej aplikacji do internetu.<\/p>\n<p>I naprawd\u0119 s\u0142owo \u201eszybki\u201d jest tutaj na miejscu, bo w najprostszym przypadku sprowadza si\u0119 to w\u0142a\u015bciwie do jednej komendy.<\/p>\n<h2>Co to jest Cloudflare Quick Tunnel?<\/h2>\n<p>Cloudflare Quick Tunnel jest uproszczon\u0105 wersj\u0105 us\u0142ugi <strong>Cloudflare Tunnel<\/strong>.<\/p>\n<p>Pozwala utworzy\u0107 publiczny adres internetowy prowadz\u0105cy bezpo\u015brednio do aplikacji dzia\u0142aj\u0105cej na naszym komputerze.<\/p>\n<p>Przyk\u0142adowo mamy aplikacj\u0119 dzia\u0142aj\u0105c\u0105 lokalnie:<\/p>\n<p><code>http:\/\/localhost:8080<\/code><\/p>\n<p>Uruchamiamy:<\/p>\n<p><code>cloudflared tunnel --url http:\/\/localhost:8080<\/code><\/p>\n<p>Cloudflare utworzy dla nas losowy adres w domenie:<\/p>\n<p><code>trycloudflare.com<\/code><\/p>\n<p>czyli przyk\u0142adowo:<\/p>\n<p><code>https:\/\/jakies-losowe-slowa.trycloudflare.com<\/code><\/p>\n<p>Od tej chwili wej\u015bcie na ten adres powoduje przekierowanie ruchu przez sie\u0107 Cloudflare do aplikacji uruchomionej na naszym komputerze.<\/p>\n<p>Nie potrzebujemy w\u0142asnej domeny.<\/p>\n<p>Nie musimy konfigurowa\u0107 DNS.<\/p>\n<p>Nie musimy nawet posiada\u0107 konta Cloudflare.<\/p>\n<p>Wed\u0142ug aktualnej dokumentacji Cloudflare Quick Tunnel zosta\u0142 w\u0142a\u015bnie zaprojektowany przede wszystkim do szybkiego testowania i developmentu.<\/p>\n<h2>Jak dzia\u0142a Cloudflare Quick Tunnel?<\/h2>\n<p>Najpro\u015bciej mo\u017cna przedstawi\u0107 to tak:<\/p>\n<p><code>U\u017cytkownik w internecie<br \/>\n\u2193<br \/>\nhttps:\/\/xxxxx.trycloudflare.com<br \/>\n\u2193<br \/>\nSie\u0107 Cloudflare<br \/>\n\u2193<br \/>\nzaszyfrowane po\u0142\u0105czenie<br \/>\n\u2193<br \/>\ncloudflared na naszym komputerze<br \/>\n\u2193<br \/>\nlocalhost:8080<br \/>\n\u2193<br \/>\nnasza aplikacja<\/code><\/p>\n<p>Kluczowy jest tutaj program:<\/p>\n<p><code>cloudflared<\/code><\/p>\n<p>Instalujemy go na komputerze, na kt\u00f3rym dzia\u0142a nasza lokalna aplikacja.<\/p>\n<p>Nast\u0119pnie <code>cloudflared<\/code> sam zestawia <strong>po\u0142\u0105czenie wychodz\u0105ce<\/strong> z infrastruktur\u0105 Cloudflare.<\/p>\n<p>I to jest istotna r\u00f3\u017cnica wzgl\u0119dem klasycznego wystawiania serwera do internetu.<\/p>\n<p>Nie musimy otwiera\u0107 portu przychodz\u0105cego na routerze.<\/p>\n<p>Cloudflare opisuje Tunnel jako rozwi\u0105zanie wykorzystuj\u0105ce po\u0142\u0105czenia wychodz\u0105ce do swojej sieci, dzi\u0119ki czemu lokalny serwer nie musi posiada\u0107 wystawionego publicznego adresu IP ani otwartych port\u00f3w przychodz\u0105cych.<\/p>\n<p>W praktyce oznacza to:<\/p>\n<p><code>Internet<br \/>\n\u2193<br \/>\nCloudflare<br \/>\n\u2191<br \/>\n\u2502<br \/>\npo\u0142\u0105czenie wychodz\u0105ce<br \/>\n\u2502<br \/>\nnasz komputer<\/code><\/p>\n<p>a nie klasyczne:<\/p>\n<p><code>Internet<br \/>\n\u2193<br \/>\nrouter<br \/>\n\u2193<br \/>\notwarty port<br \/>\n\u2193<br \/>\nnasz komputer<\/code><\/p>\n<p>To w\u0142a\u015bnie dlatego rozwi\u0105zanie jest tak wygodne.<\/p>\n<h2>Najprostszy przyk\u0142ad u\u017cycia<\/h2>\n<p>Za\u0142\u00f3\u017cmy, \u017ce stworzyli\u015bmy prost\u0105 aplikacj\u0119 w Pythonie.<\/p>\n<p>Mo\u017ce dzia\u0142a\u0107 przyk\u0142adowo pod:<\/p>\n<p><code>http:\/\/127.0.0.1:8000<\/code><\/p>\n<p>Normalnie adres ten dzia\u0142a tylko na naszym komputerze.<\/p>\n<p>Uruchamiamy wi\u0119c:<\/p>\n<p><code>cloudflared tunnel --url http:\/\/localhost:8000<\/code><\/p>\n<p>Po chwili w terminalu otrzymamy publiczny adres:<\/p>\n<p><code>https:\/\/randomowa-nazwa.trycloudflare.com<\/code><\/p>\n<p>Teraz mo\u017cemy otworzy\u0107 ten adres np. na telefonie korzystaj\u0105cym z internetu kom\u00f3rkowego.<\/p>\n<p>Mo\u017cemy te\u017c wys\u0142a\u0107 go drugiej osobie.<\/p>\n<p>I b\u0119dzie ona mog\u0142a zobaczy\u0107 aplikacj\u0119 dzia\u0142aj\u0105c\u0105 fizycznie na naszym komputerze.<\/p>\n<p>To jest chyba najlepszy spos\u00f3b, \u017ceby zrozumie\u0107 ide\u0119 Quick Tunnel.<\/p>\n<h2>Po co mi Cloudflare Quick Tunnel?<\/h2>\n<p>Zastosowa\u0144 jest naprawd\u0119 sporo, szczeg\u00f3lnie je\u017celi pracujemy z aplikacjami webowymi, Pythonem, AI, automatyzacjami czy API.<\/p>\n<h3>1. Udost\u0119pnienie lokalnie tworzonej strony<\/h3>\n<p>Tworz\u0119 przyk\u0142adowo aplikacj\u0119:<\/p>\n<p><code>localhost:3000<\/code><\/p>\n<p>i chc\u0119 pokaza\u0107 j\u0105 klientowi.<\/p>\n<p>Zamiast wrzuca\u0107 ca\u0142o\u015b\u0107 na hosting czy tworzy\u0107 \u015brodowisko stagingowe, mog\u0119 na chwil\u0119 uruchomi\u0107 tunel i wys\u0142a\u0107 klientowi link.<\/p>\n<p>Klient wchodzi:<\/p>\n<p><code>https:\/\/xxxxx.trycloudflare.com<\/code><\/p>\n<p>i ogl\u0105da wersj\u0119 dzia\u0142aj\u0105c\u0105 bezpo\u015brednio na moim komputerze.<\/p>\n<p>Do szybkiego podgl\u0105du \u2013 bardzo wygodne.<\/p>\n<h3>2. Testowanie aplikacji na telefonie<\/h3>\n<p>To jest prosty, ale bardzo praktyczny przyk\u0142ad.<\/p>\n<p>Tworz\u0119 aplikacj\u0119 na komputerze:<\/p>\n<p><code>localhost:5173<\/code><\/p>\n<p>Chc\u0119 zobaczy\u0107, jak dzia\u0142a na telefonie.<\/p>\n<p>Uruchamiam:<\/p>\n<p><code>cloudflared tunnel --url http:\/\/localhost:5173<\/code><\/p>\n<p>Otwieram wygenerowany adres na smartfonie i testuj\u0119.<\/p>\n<p>Nie musz\u0119 nawet kombinowa\u0107 z adresami IP w sieci lokalnej.<\/p>\n<h3>3. Testowanie webhook\u00f3w<\/h3>\n<p>Tutaj zaczyna robi\u0107 si\u0119 jeszcze ciekawiej.<\/p>\n<p>Wiele us\u0142ug internetowych korzysta z webhook\u00f3w.<\/p>\n<p>Webhook dzia\u0142a mniej wi\u0119cej tak:<\/p>\n<p><code>zewn\u0119trzna us\u0142uga<br \/>\n\u2193<br \/>\nwysy\u0142a \u017c\u0105danie HTTP<br \/>\n\u2193<br \/>\nnasze API<\/code><\/p>\n<p>Problem polega na tym, \u017ce zewn\u0119trzna us\u0142uga nie mo\u017ce wys\u0142a\u0107 \u017c\u0105dania do:<\/p>\n<p><code>localhost:8000<\/code><\/p>\n<p>bo <code>localhost<\/code> oznacza komputer, na kt\u00f3rym dana aplikacja dzia\u0142a.<\/p>\n<p>Cloudflare Quick Tunnel rozwi\u0105zuje problem.<\/p>\n<p>Mamy:<\/p>\n<p><code>localhost:8000\/webhook<\/code><\/p>\n<p>robimy:<\/p>\n<p><code>cloudflared tunnel --url http:\/\/localhost:8000<\/code><\/p>\n<p>i dostajemy:<\/p>\n<p><code>https:\/\/xxxxx.trycloudflare.com\/webhook<\/code><\/p>\n<p>Taki adres mo\u017cna ju\u017c poda\u0107 zewn\u0119trznemu systemowi.<\/p>\n<p>Bardzo przydatne podczas tworzenia integracji.<\/p>\n<h3>4. Lokalne API wystawione do internetu<\/h3>\n<p>Przyk\u0142adowo tworz\u0119 API w FastAPI:<\/p>\n<p><code>http:\/\/localhost:8000<\/code><\/p>\n<p>Quick Tunnel pozwala bardzo szybko udost\u0119pni\u0107 je jako:<\/p>\n<p><code>https:\/\/xxxxx.trycloudflare.com<\/code><\/p>\n<p>Mo\u017cemy wi\u0119c testowa\u0107 aplikacj\u0119 mobiln\u0105, zewn\u0119trzny frontend albo inne narz\u0119dzie korzystaj\u0105ce z tego API.<\/p>\n<h3>5. Projekty AI<\/h3>\n<p>W moim przypadku to jedno z ciekawszych zastosowa\u0144.<\/p>\n<p>Coraz wi\u0119cej eksperymentuj\u0119 z lokalnymi aplikacjami AI, RAG, modelami j\u0119zykowymi i r\u00f3\u017cnego rodzaju narz\u0119dziami po\u015brednicz\u0105cymi mi\u0119dzy API r\u00f3\u017cnych dostawc\u00f3w.<\/p>\n<p>Za\u0142\u00f3\u017cmy, \u017ce lokalnie uruchamiamy serwer kompatybilny z API OpenAI:<\/p>\n<p><code>http:\/\/localhost:4000\/v1<\/code><\/p>\n<p>Mo\u017cemy wystawi\u0107 go poprzez:<\/p>\n<p><code>cloudflared tunnel --url http:\/\/localhost:4000<\/code><\/p>\n<p>i otrzyma\u0107:<\/p>\n<p><code>https:\/\/xxxxx.trycloudflare.com\/v1<\/code><\/p>\n<p>Teoretycznie inne aplikacje mog\u0105 teraz komunikowa\u0107 si\u0119 z naszym lokalnym serwerem przez internet.<\/p>\n<p>Mo\u017ce by\u0107 to przydatne m.in. przy testowaniu:<\/p>\n<ul>\n<li>agent\u00f3w AI,<\/li>\n<li>lokalnych modeli LLM,<\/li>\n<li>system\u00f3w RAG,<\/li>\n<li>aplikacji korzystaj\u0105cych z API,<\/li>\n<li>w\u0142asnych gateway\u00f3w do modeli,<\/li>\n<li>automatyzacji,<\/li>\n<li>integracji pomi\u0119dzy r\u00f3\u017cnymi \u015brodowiskami.<\/li>\n<\/ul>\n<p>Tutaj oczywi\u015bcie trzeba ju\u017c znacznie bardziej uwa\u017ca\u0107 na bezpiecze\u0144stwo.<\/p>\n<h2>Cloudflare Quick Tunnel a ngrok<\/h2>\n<p>Je\u017celi kto\u015b wcze\u015bniej bawi\u0142 si\u0119 aplikacjami webowymi, prawdopodobnie kojarzy <strong>ngrok<\/strong>.<\/p>\n<p>Idea jest bardzo podobna.<\/p>\n<p>Mamy:<\/p>\n<p><code>localhost<\/code><\/p>\n<p>i dostajemy:<\/p>\n<p><code>publiczny adres HTTPS<\/code><\/p>\n<p>Cloudflare Quick Tunnel mo\u017ce by\u0107 wi\u0119c w wielu zastosowaniach prost\u0105 alternatyw\u0105 dla ngrok.<\/p>\n<p>Cloudflare samo wskazuje Tunnel jako rozwi\u0105zanie pozwalaj\u0105ce udost\u0119pnia\u0107 lokalne \u015brodowiska developerskie przez publiczny adres.<\/p>\n<p>W moim przypadku najwi\u0119ksz\u0105 zalet\u0105 Quick Tunnel jest po prostu minimalizm.<\/p>\n<p>Jedna komenda:<\/p>\n<p><code>cloudflared tunnel --url http:\/\/localhost:8080<\/code><\/p>\n<p>i dzia\u0142a.<\/p>\n<h2>Czy potrzebuj\u0119 konta Cloudflare?<\/h2>\n<p>Do <strong>Quick Tunnel \u2013 nie<\/strong>.<\/p>\n<p>Nie trzeba:<\/p>\n<ul>\n<li>zak\u0142ada\u0107 konta,<\/li>\n<li>podpina\u0107 domeny,<\/li>\n<li>ustawia\u0107 DNS,<\/li>\n<li>tworzy\u0107 tunelu w panelu Cloudflare.<\/li>\n<\/ul>\n<p>Cloudflare automatycznie generuje losow\u0105 subdomen\u0119:<\/p>\n<p><code>*.trycloudflare.com<\/code><\/p>\n<p>i kieruje j\u0105 do naszego lokalnego serwera.<\/p>\n<p>To w\u0142a\u015bnie odr\u00f3\u017cnia Quick Tunnel od normalnego Cloudflare Tunnel.<\/p>\n<h2>Cloudflare Quick Tunnel a normalny Cloudflare Tunnel<\/h2>\n<p>Tutaj trzeba rozr\u00f3\u017cni\u0107 dwie rzeczy.<\/p>\n<p><strong>Quick Tunnel<\/strong> s\u0142u\u017cy przede wszystkim do testowania.<\/p>\n<p>Normalny <strong>Cloudflare Tunnel<\/strong> mo\u017cemy skonfigurowa\u0107 jako sta\u0142y element naszej infrastruktury.<\/p>\n<p>Przyk\u0142adowo:<\/p>\n<p><code>api.mojadomena.pl<\/code><\/p>\n<p>mo\u017ce prowadzi\u0107 przez Cloudflare Tunnel do:<\/p>\n<p><code>localhost:8000<\/code><\/p>\n<p>albo do serwera znajduj\u0105cego si\u0119 w naszej sieci lokalnej.<\/p>\n<p>W Quick Tunnel dostajemy natomiast losowy adres:<\/p>\n<p><code>xxxxx.trycloudflare.com<\/code><\/p>\n<p>kt\u00f3ry jest powi\u0105zany z uruchomionym procesem <code>cloudflared<\/code>.<\/p>\n<p>W przypadku szybkiego tunelu nie powinni\u015bmy wi\u0119c traktowa\u0107 wygenerowanego URL jako sta\u0142ego adresu naszej aplikacji. Quick Tunnels s\u0105 anonimowe i tymczasowe, a Cloudflare nie przeznacza ich do \u015brodowisk produkcyjnych.<\/p>\n<h2>Quick Tunnel nie jest hostingiem<\/h2>\n<p>To r\u00f3wnie\u017c wa\u017cne.<\/p>\n<p>Cloudflare nie kopiuje naszej aplikacji na sw\u00f3j serwer.<\/p>\n<p>Aplikacja nadal dzia\u0142a:<\/p>\n<p><code>na naszym komputerze<\/code><\/p>\n<p>Cloudflare jedynie przekazuje ruch.<\/p>\n<p>Je\u017celi wy\u0142\u0105czymy aplikacj\u0119:<\/p>\n<p><code>localhost:8080<\/code><\/p>\n<p>to publiczny adres przestanie dzia\u0142a\u0107 poprawnie.<\/p>\n<p>Je\u017celi wy\u0142\u0105czymy <code>cloudflared<\/code>, tunel r\u00f3wnie\u017c przestanie dzia\u0142a\u0107.<\/p>\n<p>Je\u017celi wy\u0142\u0105czymy komputer \u2013 tym bardziej.<\/p>\n<p>To nie jest wi\u0119c odpowiednik hostingu czy VPS.<\/p>\n<p>To bardziej:<\/p>\n<p><code>bezpieczny po\u015brednik<\/code><\/p>\n<p>pomi\u0119dzy internetem a us\u0142ug\u0105 dzia\u0142aj\u0105c\u0105 lokalnie.<\/p>\n<h2>Czy Cloudflare Quick Tunnel jest bezpieczny?<\/h2>\n<p>Sam mechanizm jest zdecydowanie bezpieczniejszy ni\u017c przypadkowe otwieranie port\u00f3w na routerze, poniewa\u017c <code>cloudflared<\/code> inicjuje po\u0142\u0105czenie wychodz\u0105ce i nie musimy udost\u0119pnia\u0107 publicznego IP naszego serwera.<\/p>\n<p>Ale jest tutaj jedno bardzo wa\u017cne \u201eale\u201d.<\/p>\n<p>Je\u017celi wystawimy:<\/p>\n<p><code>http:\/\/localhost:8000<\/code><\/p>\n<p>przez Quick Tunnel, to otrzymany adres jest publicznie dost\u0119pny.<\/p>\n<p>Czyli kto\u015b, kto pozna:<\/p>\n<p><code>https:\/\/xxxxx.trycloudflare.com<\/code><\/p>\n<p>mo\u017ce pr\u00f3bowa\u0107 dosta\u0107 si\u0119 do naszej aplikacji.<\/p>\n<p>Dlatego nie wystawia\u0142bym w ten spos\u00f3b bez dodatkowego zabezpieczenia:<\/p>\n<ul>\n<li>panelu administratora,<\/li>\n<li>phpMyAdmin,<\/li>\n<li>bazy danych,<\/li>\n<li>aplikacji posiadaj\u0105cej poufne dane,<\/li>\n<li>panelu zarz\u0105dzaj\u0105cego serwerem,<\/li>\n<li>lokalnego API posiadaj\u0105cego niebezpieczne funkcje,<\/li>\n<li>aplikacji bez uwierzytelniania.<\/li>\n<\/ul>\n<p>Quick Tunnel traktowa\u0142bym przede wszystkim jako narz\u0119dzie developerskie.<\/p>\n<h2>Jakie s\u0105 ograniczenia Cloudflare Quick Tunnel?<\/h2>\n<p>Cloudflare jasno zaznacza, \u017ce Quick Tunnels przeznaczone s\u0105 do <strong>test\u00f3w i developmentu<\/strong>, a nie do produkcyjnego hostowania aplikacji.<\/p>\n<p>Wed\u0142ug dokumentacji z 2026 roku obowi\u0105zuje mi\u0119dzy innymi limit <strong>200 jednocze\u015bnie obs\u0142ugiwanych \u017c\u0105da\u0144 b\u0119d\u0105cych w trakcie realizacji<\/strong>. Po jego przekroczeniu serwer mo\u017ce odpowiedzie\u0107 kodem HTTP <code>429<\/code>.<\/p>\n<p>Quick Tunnel nie obs\u0142uguje r\u00f3wnie\u017c <strong>Server-Sent Events (SSE)<\/strong>.<\/p>\n<p>To drugie mo\u017ce mie\u0107 znaczenie szczeg\u00f3lnie przy aplikacjach AI.<\/p>\n<p>Niekt\u00f3re interfejsy modeli j\u0119zykowych wykorzystuj\u0105 SSE do streamowania odpowiedzi token po tokenie.<\/p>\n<p>Je\u017celi wi\u0119c robimy aplikacj\u0119 typu:<\/p>\n<p><code>pytanie<br \/>\n\u2193<br \/>\nLLM<br \/>\n\u2193<br \/>\nodpowied\u017a pojawiaj\u0105ca si\u0119 na \u017cywo<\/code><\/p>\n<p>Quick Tunnel mo\u017ce nie by\u0107 w\u0142a\u015bciwym rozwi\u0105zaniem.<\/p>\n<p>W takim przypadku lepiej wykorzysta\u0107 normalny Cloudflare Tunnel lub inne rozwi\u0105zanie.<\/p>\n<h2>Przyk\u0142ad z Pythonem<\/h2>\n<p>Mo\u017cemy zrobi\u0107 bardzo prosty test.<\/p>\n<p>Wchodzimy do dowolnego katalogu i uruchamiamy:<\/p>\n<p><code>python -m http.server 8000<\/code><\/p>\n<p>Python uruchomi prosty serwer HTTP:<\/p>\n<p><code>http:\/\/localhost:8000<\/code><\/p>\n<p>Teraz w drugim terminalu:<\/p>\n<p><code>cloudflared tunnel --url http:\/\/localhost:8000<\/code><\/p>\n<p>Cloudflare poda adres podobny do:<\/p>\n<p><code>https:\/\/some-random-name.trycloudflare.com<\/code><\/p>\n<p>Otwieramy go na telefonie albo innym komputerze.<\/p>\n<p>I w\u0142a\u015bnie wystawili\u015bmy lokalny serwer Pythona do internetu.<\/p>\n<p>Bez hostingu.<\/p>\n<p>Bez domeny.<\/p>\n<p>Bez przekierowania port\u00f3w.<\/p>\n<p>Bez grzebania w routerze.<\/p>\n<h2>Co w\u0142a\u015bciwie dzieje si\u0119 pod spodem?<\/h2>\n<p>Mo\u017cna to sobie wyobrazi\u0107 nast\u0119puj\u0105co.<\/p>\n<p>Normalny lokalny serwer:<\/p>\n<p><code>APLIKACJA<br \/>\n\u2191<br \/>\nlocalhost:8000<\/code><\/p>\n<p>jest niewidoczny dla internetu.<\/p>\n<p>Po uruchomieniu:<\/p>\n<p><code>cloudflared tunnel --url http:\/\/localhost:8000<\/code><\/p>\n<p>powstaje:<\/p>\n<p><code>INTERNET<br \/>\n\u2193<br \/>\nCLOUDFLARE<br \/>\n\u2193<br \/>\nTUNEL<br \/>\n\u2193<br \/>\nCLOUDFLARED<br \/>\n\u2193<br \/>\nLOCALHOST:8000<br \/>\n\u2193<br \/>\nAPLIKACJA<\/code><\/p>\n<p>Cloudflare staje si\u0119 wi\u0119c swego rodzaju bram\u0105 pomi\u0119dzy internetem a naszym komputerem.<\/p>\n<h2>Gdzie widz\u0119 dla tego zastosowanie?<\/h2>\n<p>Dla zwyk\u0142ego u\u017cytkownika komputera prawdopodobnie niewielkie.<\/p>\n<p>Ale je\u015bli kto\u015b tworzy:<\/p>\n<ul>\n<li>strony internetowe,<\/li>\n<li>aplikacje,<\/li>\n<li>API,<\/li>\n<li>integracje,<\/li>\n<li>automatyzacje,<\/li>\n<li>projekty Python,<\/li>\n<li>lokalne modele AI,<\/li>\n<li>systemy RAG,<\/li>\n<li>webhooki,<\/li>\n<\/ul>\n<p>to jest to jedno z tych ma\u0142ych narz\u0119dzi, kt\u00f3re warto mie\u0107 gdzie\u015b z ty\u0142u g\u0142owy.<\/p>\n<p>Szczeg\u00f3lnie podczas prototypowania.<\/p>\n<p>Zamiast zastanawia\u0107 si\u0119:<\/p>\n<blockquote><p>jak teraz udost\u0119pni\u0107 m\u00f3j localhost w internecie?<\/p><\/blockquote>\n<p>mo\u017cna po prostu wpisa\u0107:<\/p>\n<p><code>cloudflared tunnel --url http:\/\/localhost:8080<\/code><\/p>\n<p>i po kilkunastu sekundach pracowa\u0107 dalej.<\/p>\n<h2>Podsumowanie<\/h2>\n<p>Cloudflare Quick Tunnel rozwi\u0105zuje bardzo konkretny problem.<\/p>\n<p>Pozwala zamieni\u0107:<\/p>\n<p><code>http:\/\/localhost:8080<\/code><\/p>\n<p>w publicznie dost\u0119pny:<\/p>\n<p><code>https:\/\/xxxxx.trycloudflare.com<\/code><\/p>\n<p>bez w\u0142asnego serwera, bez publicznego IP, bez przekierowania port\u00f3w i bez konfiguracji domeny.<\/p>\n<p>Nie jest to rozwi\u0105zanie produkcyjne.<\/p>\n<p>Nie zast\u0119puje hostingu.<\/p>\n<p>Nie powinno by\u0107 r\u00f3wnie\u017c traktowane jako spos\u00f3b na bezmy\u015blne wystawianie prywatnych us\u0142ug do internetu.<\/p>\n<p>Ale do developmentu, testowania API, webhook\u00f3w, aplikacji Python czy eksperymentowania z AI jest naprawd\u0119 u\u017cyteczne.<\/p>\n<p>I jest to dok\u0142adnie ten rodzaj narz\u0119dzia, kt\u00f3ry lubi\u0119 najbardziej:<\/p>\n<p><strong>rozwi\u0105zuje konkretny problem, a jego podstawowe u\u017cycie mo\u017cna zamkn\u0105\u0107 w jednej komendzie:<\/strong><\/p>\n<p><code>cloudflared tunnel --url http:\/\/localhost:8080<\/code><br \/>\nCzasami naprawd\u0119 nie trzeba komplikowa\u0107 rzeczy bardziej, ni\u017c jest to konieczne.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Czasami podczas pracy nad aplikacj\u0105, API, lokalnym serwerem czy jakim\u015b narz\u0119dziem opartym o AI pojawia si\u0119 do\u015b\u0107 prozaiczny problem. Mamy co\u015b uruchomionego lokalnie, przyk\u0142adowo pod adresem: http:\/\/localhost:3000 i chcieliby\u015bmy dosta\u0107 si\u0119 do tego z innego komputera, telefonu albo udost\u0119pni\u0107 aplikacj\u0119 komu\u015b przez internet. Normalnie zaczyna si\u0119 wtedy kombinowanie: przekierowanie port\u00f3w na routerze, firewall, publiczne IP, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1306,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,279,59],"tags":[144],"class_list":["post-1305","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-przydatne-narzedzia","category-sieci","category-systemy-operacyjne","tag-cloudflare"],"_links":{"self":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/1305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/comments?post=1305"}],"version-history":[{"count":1,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/1305\/revisions"}],"predecessor-version":[{"id":1307,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/posts\/1305\/revisions\/1307"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/media\/1306"}],"wp:attachment":[{"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/media?parent=1305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/categories?post=1305"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/piotrgabriel.pl\/wiki\/wp-json\/wp\/v2\/tags?post=1305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}