# Cloudflare Tunnel: Make Localhost Public Without Port Forwarding **Video:** https://youtu.be/etluT8UC-nw **Durată:** 18:02 **Data:** 2026-01-29 **Tags:** #cloudflare #tunnel #localhost #networking #devops @work --- ## TL;DR Cloudflare Tunnel permite expunerea unui server local (localhost) pe internet printr-un domeniu public, fără port forwarding, fără configurare router, fără expunerea IP-ului public. App-ul rămâne pe mașina ta, Cloudflare doar rutează traficul securizat. --- ## Două metode prezentate ### 1. Quick Tunnel (temporar, pentru teste rapide) **Instalare Cloudflared:** ```bash # Mac brew install cloudflared # Windows (PowerShell) winget install -id cloudflare.cloudflared # Linux Debian/Ubuntu # Vezi documentația oficială pentru package-ul apt ``` **Verificare instalare:** ```bash cloudflared --version ``` **Rulare Quick Tunnel:** ```bash cloudflared tunnel --url localhost:3000 ``` **Ce se întâmplă:** - Apare un URL public temporar: `https://random-words.trycloudflare.com` - Oricine poate accesa aplicația ta prin acest URL - **Limitare:** URL-ul se schimbă la fiecare restart --- ### 2. Permanent Tunnel (cu domeniu propriu) **Cerințe:** - Cont Cloudflare (gratuit) - Domeniu propriu (cumpărat de oriunde: GoDaddy, Namecheap, etc.) - DNS-ul domeniului trebuie mutat la Cloudflare **Pași detaliați:** #### Pas 1: Adaugă domeniul în Cloudflare 1. Login pe Cloudflare Dashboard 2. Domains → Onboard a domain 3. Introdu numele domeniului 4. Lasă "Quick scan for DNS records" activat 5. Alege planul **Free** (suficient pentru tunnel) #### Pas 2: Schimbă nameservers la registrar 1. Cloudflare îți dă 2 nameservers (ex: `xxx.ns.cloudflare.com`) 2. Mergi la registrar-ul tău (GoDaddy, etc.) 3. Schimbă nameservers cu cele de la Cloudflare 4. Așteaptă propagare DNS (5-10 min până la 24h) #### Pas 3: Autentifică Cloudflared ```bash cloudflared tunnel login ``` - Se deschide browser-ul - Selectezi domeniul pentru care autorizezi - Se creează fișier credentials în `~/.cloudflared/` #### Pas 4: Creează tunnel ```bash cloudflared tunnel create nume-tunnel ``` - Se creează un fișier JSON cu credentials în `~/.cloudflared/` - Notează **Tunnel ID** (ex: `1ed140...`) #### Pas 5: Creează rută DNS ```bash cloudflared tunnel route dns nume-tunnel subdomain.domeniu.com ``` Exemplu: `cloudflared tunnel route dns myapp demo.romfast.ro` #### Pas 6: Creează config file ```bash touch ~/.cloudflared/config.yml ``` **Conținut `config.yml`:** ```yaml tunnel: TUNNEL_ID_AICI credentials-file: /Users/user/.cloudflared/TUNNEL_ID.json ingress: - hostname: demo.romfast.ro service: http://localhost:3000 - service: http_status:404 ``` **Important:** La `credentials-file` pune calea ABSOLUTĂ! #### Pas 7: Pornește tunnel ```bash cloudflared tunnel run nume-tunnel ``` --- ## Puncte cheie ### Ce face Cloudflare Tunnel: - Creează conexiune **outbound** securizată de la mașina ta la Cloudflare - **NU** hostează app-ul pe serverele Cloudflare - App-ul rulează **doar** pe mașina ta - Traficul: Internet → Cloudflare → Tunnel securizat → Localhost ### Limitări: - Dacă PC-ul e oprit → site-ul nu funcționează - Dacă serverul local e oprit → Cloudflare returnează 404 - Nu e hosting, e routing ### Cazuri de utilizare ideale: - Demo-uri pentru clienți - Tool-uri interne - Testare/staging - Acces temporar public fără VPS ### Avantaje: - **Gratuit** (planul free e suficient) - Fără port forwarding - Fără expunere IP public - Fără configurare router/firewall - Funcționează din orice rețea (și din spatele NAT) --- ## Comenzi utile ```bash # Vezi toate tunnelele cloudflared tunnel list # Verifică path-ul complet al credentials realpath ~/.cloudflared/TUNNEL_ID.json # Pornește tunnel din config cloudflared tunnel run nume-tunnel ``` --- ## Aplicabilitate pentru ROA/Flowise Poți expune chatbot-ul Flowise pe `chat.romfast.ro`: 1. Flowise rulează pe `localhost:3000` pe PC-ul tău 2. Configurezi tunnel: `hostname: chat.romfast.ro` → `service: http://localhost:3000` 3. Clienții accesează `chat.romfast.ro`, ajung la Flowise pe PC-ul tău **Condiție:** PC-ul trebuie să fie pornit și conectat la internet.