Torna al blog

Come Condividere il Tuo Sito WordPress o Drupal Locale con Cloudflare Tunnel (Gratuito)

2025-10-148 min read

Quando si sviluppa in locale con DDEV, potrebbe essere necessario condividere il proprio lavoro con i clienti, testare webhook da servizi esterni o collaborare con membri del team remoti. Cloudflare Tunnel fornisce un modo sicuro e semplice per esporre i siti di sviluppo locali a Internet senza aprire porte del firewall o gestire configurazioni di rete complesse.

Cos'è Cloudflare Tunnel?

Cloudflare Tunnel (precedentemente Argo Tunnel) fa parte della soluzione di rete Zero Trust di Cloudflare. Crea una connessione sicura, solo in uscita, dalla tua macchina locale alla rete edge di Cloudflare, che quindi instrada il traffico pubblico ai tuoi servizi locali. Questo significa:

  • Nessuna porta in ingresso aperta - Il tuo firewall rimane sicuro
  • Nessun IP pubblico richiesto - Funziona dietro NAT e firewall aziendali
  • Gratuito per uso di sviluppo - I tunnel rapidi di Cloudflare sono gratuiti
  • HTTPS per impostazione predefinita - Crittografia SSL/TLS automatica
  • Configurazione semplice - Basta un comando per iniziare

Cos'è DDEV?

DDEV è un ambiente di sviluppo locale basato su Docker che semplifica la configurazione di progetti PHP (Drupal, WordPress, Laravel, ecc.) con una configurazione minima. Fornisce:

  • Container preconfigurati per web, database e altri servizi
  • Supporto per più versioni di PHP
  • Certificati SSL integrati per HTTPS locale
  • Strumenti da riga di comando per attività di sviluppo comuni

Usare DDEV con Cloudflare Tunnel ti permette di eseguire il tuo sito in locale e condividerlo pubblicamente quando necessario.

Prerequisiti

Prima di iniziare, assicurati di avere:

Nota: Se desideri URL persistenti con domini personalizzati (trattati più avanti), avrai bisogno di un account Cloudflare gratuito.

Passaggio 1: Installare Cloudflared

Il demone cloudflared è il client che crea la connessione tunnel. L'installazione varia in base alla piattaforma:

macOS (Homebrew)

brew install cloudflared

Linux (Debian/Ubuntu)

wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb

Linux (RHEL/CentOS)

wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm
sudo rpm -i cloudflared-linux-x86_64.rpm

Windows

Scarica il programma di installazione dalla pagina dei download di Cloudflare o usa Chocolatey:

choco install cloudflared

Verifica l'installazione:

cloudflared --version

Passaggio 2: Avviare il Sito DDEV

Assicurati che il tuo progetto DDEV sia in esecuzione. Naviga nella directory del tuo progetto e avvia DDEV:

cd /percorso/al/tuo/progetto
ddev start

Il tuo sito sarà disponibile in locale all'indirizzo, ad esempio, https://tuoprogetto.ddev.site. Verifica che funzioni aprendolo nel browser.

Passaggio 3: Creare un Cloudflare Tunnel per il Sito DDEV

Qui le cose si fanno interessanti. Esegui un comando e cloudflared crea un tunnel con un URL pubblico automaticamente. Nessuna configurazione di account, nessuna autenticazione, nessuna configurazione richiesta. La sintassi di base è:

cloudflared tunnel --url <url-locale> --http-host-header <nome-host>

Esempio 1: Sito del Mio Progetto

cloudflared tunnel --url https://myproject.ddev.site/ --http-host-header myproject.ddev.site

Esempio 2: Sito del Cliente

cloudflared tunnel --url https://client-site.ddev.site/ --http-host-header client-site.ddev.site

Dopo aver eseguito questo comando, vedrai un output simile a:

2025-10-14T10:30:15Z INF Grazie per aver provato Cloudflare Tunnel. Farlo, senza un account Cloudflare, è un modo rapido per sperimentare e provare. Tuttavia, sii consapevole che questi Tunnel senza account non hanno garanzia di uptime. Se intendi utilizzare i Tunnel in produzione, dovresti utilizzare un tunnel denominato pre-creato seguendo: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/
2025-10-14T10:30:15Z INF Richiesta di un nuovo Tunnel rapido su trycloudflare.com...
2025-10-14T10:30:16Z INF +--------------------------------------------------------------------------------------------+
2025-10-14T10:30:16Z INF | Il tuo Tunnel rapido è stato creato! Visitalo a (potrebbe volerci del tempo per essere raggiungibile): |
2025-10-14T10:30:16Z INF | https://randomly-generated-subdomain.trycloudflare.com |
2025-10-14T10:30:16Z INF +--------------------------------------------------------------------------------------------+

Copia l'URL generato (ad esempio, https://randomly-generated-subdomain.trycloudflare.com) e condividilo con chiunque abbia bisogno di accedere al tuo sito locale!

Comprensione dei Parametri del Comando

Analizziamo cosa fa ciascun parametro:

  • --url: L'URL locale dove è in esecuzione il tuo sito DDEV. Usa HTTPS se il tuo sito DDEV utilizza SSL (cosa che fa per impostazione predefinita).
  • --http-host-header: Questo è fondamentale per DDEV. Indica a cloudflared di inoltrare il nome host corretto nell'header Host HTTP. DDEV instrada le richieste in base a questo header, quindi senza di esso, otterrai un "404 Not Found" o vedrai il sito sbagliato.

Perché è Necessario --http-host-header?

Il router di DDEV utilizza l'hosting virtuale, il che significa che più siti possono essere eseguiti sullo stesso indirizzo IP e porta. Il router determina quale sito servire in base all'header Host nella richiesta HTTP.

Quando il traffico arriva tramite Cloudflare Tunnel, l'header Host sarebbe normalmente il dominio generato da Cloudflare (come randomly-generated-subdomain.trycloudflare.com). Specificando --http-host-header myproject.ddev.site, sovrascriviamo questo e assicuriamo che DDEV veda il nome host corretto.

Utilizzo di Tunnel Denominati per URL Persistenti

Il metodo del tunnel rapido sopra è perfetto per la condivisione ad hoc, ma l'URL cambia ogni volta che esegui il comando e non c'è garanzia di uptime. Se hai bisogno di un URL persistente con il tuo dominio personalizzato (come myproject.example.com), puoi creare un tunnel denominato. Questo richiede un account Cloudflare gratuito.

1. Autenticazione con Cloudflare

cloudflared tunnel login

Questo aprirà un browser per l'autenticazione con il tuo account Cloudflare.

2. Creare un Tunnel Denominato

cloudflared tunnel create my-ddev-tunnel

Questo genera un ID tunnel e un file di credenziali.

3. Creare un File di Configurazione

Crea ~/.cloudflared/config.yml:

tunnel: <ID-TUNNEL>
credentials-file: /Users/tuonomeutente/.cloudflared/<ID-TUNNEL>.json

ingress:
- hostname: mysite.example.com
service: https://myproject.ddev.site
originRequest:
httpHostHeader: myproject.ddev.site
noTLSVerify: true
- service: http_status:404

Nota: noTLSVerify: true è necessario perché DDEV utilizza certificati autofirmati.

4. Instradare il Dominio

cloudflared tunnel route dns my-ddev-tunnel mysite.example.com

5. Eseguire il Tunnel

cloudflared tunnel run my-ddev-tunnel

Il tuo sito è ora accessibile all'indirizzo https://mysite.example.com con un URL persistente!

Casi d'Uso Comuni

1. Demo per Client

Condividi siti in fase di sviluppo con i clienti senza distribuirli su server di staging:

cloudflared tunnel --url https://client-demo.ddev.site/ --http-host-header client-demo.ddev.site

Invia l'URL generato al tuo cliente per un feedback immediato.

2. Test dei Webhook

Testa webhook da servizi come Stripe, GitHub o Twilio che richiedono un URL pubblico:

cloudflared tunnel --url https://webhooks.ddev.site/ --http-host-header webhooks.ddev.site

Configura il webhook nel servizio esterno affinché punti al tuo URL Cloudflare.

3. Test su Dispositivi Mobili

Testa i tuoi design responsive su dispositivi mobili reali senza essere sulla stessa rete:

cloudflared tunnel --url https://mobile-test.ddev.site/ --http-host-header mobile-test.ddev.site

Apri l'URL Cloudflare sul tuo telefono per testare su dispositivi reali.

4. Collaborazione Remota

Condividi il tuo ambiente di sviluppo con i membri del team remoti:

cloudflared tunnel --url https://team-collab.ddev.site/ --http-host-header team-collab.ddev.site

Il tuo team può accedere al sito come se lo stesse eseguendo in locale.

Risoluzione dei Problemi

Si ottiene un 404 o il Sito Sbagliato

Assicurati di utilizzare il parametro --http-host-header con il nome host DDEV corretto:

cloudflared tunnel --url https://mysite.ddev.site/ --http-host-header mysite.ddev.site

Errori del Certificato SSL

Se stai utilizzando un tunnel denominato con un file di configurazione, aggiungi noTLSVerify: true alla sezione richiesta di origine poiché DDEV utilizza certificati autofirmati.

Il Tunnel Non Si Avvia

Verifica se cloudflared è già in esecuzione:

ps aux | grep cloudflared

Termina eventuali processi esistenti se necessario:

pkill cloudflared

Il Sito DDEV Non È Accessibile in Locale

Verifica che il tuo sito DDEV sia in esecuzione:

ddev describe

Assicurati che l'URL che stai utilizzando corrisponda all'output.

Considerazioni sulla Sicurezza

Sebbene Cloudflare Tunnel sia sicuro per progettazione, tieni a mente questi punti:

  • Non esporre database di produzione - Tunnel solo siti di sviluppo con dati non sensibili
  • I tunnel rapidi sono temporanei - Gli URL scadono e non dovrebbero essere considerati per la produzione
  • Usa l'autenticazione - Per progetti sensibili, aggiungi l'autenticazione Cloudflare Access ai tuoi tunnel denominati
  • Monitora l'accesso al tunnel - Controlla Cloudflare Analytics per vedere chi sta accedendo ai tuoi tunnel
  • Spegni i tunnel quando hai finito - Usa Ctrl+C per interrompere il tunnel quando hai finito

Alternativa: Comando Share Integrato di DDEV

DDEV ha anche un comando integrato ddev share che utilizza ngrok. Tuttavia, Cloudflare Tunnel offre diversi vantaggi:

  • Gratuito senza limiti di frequenza (livello gratuito di ngrok ha limitazioni)
  • Migliori prestazioni grazie alla rete globale di Cloudflare
  • Integrazione con Cloudflare Zero Trust per funzionalità avanzate
  • Tunnel denominati persistenti con domini personalizzati

Detto questo, ddev share è ancora più semplice se hai solo bisogno di qualcosa di veloce e non vuoi installare strumenti aggiuntivi.

Semplificare il Processo con ddev-share-cf

Per rendere questo processo ancora più semplice, ho creato l'addon DDEV ddev-share-cf. Questo addon integra Cloudflare Tunnel direttamente in DDEV, consentendoti di condividere i tuoi siti locali con un semplice comando senza gestire manualmente cloudflared o file di configurazione.

Installazione

Installa l'addon con un singolo comando:

ddev get davo20019/ddev-share-cf

Utilizzo

Una volta installato, esegui semplicemente:

ddev share-cf

L'addon gestisce automaticamente tutta la configurazione del tunnel, rendendolo semplice come il comando share integrato di DDEV ma con tutti i vantaggi di Cloudflare Tunnel.

Risorse Aggiuntive

Rimani Aggiornato

Ricevi gli ultimi articoli e insights nella tua casella di posta.

Unsubscribe anytime. No spam, ever.