Due comandi di Tailscale differiscono per una parola. tailscale serve condivide un servizio locale con i dispositivi della tua tailnet. tailscale funnel instrada il traffico da internet in senso ampio verso lo stesso servizio, raggiungibile da chiunque abbia l'URL.
Stessa sintassi, esposizione opposta. È tutto l'articolo in due frasi, ma sbagliare verso lascia su internet aperto un servizio che credevi privato, quindi vale la pena essere precisi su ciò che Funnel fa e non fa.
In breve (dettagli, comandi e configurazione con il tuo dominio sono più sotto):
tailscale serve | tailscale funnel | VPS + Caddy (tuo dominio) | |
|---|---|---|---|
| Chi può raggiungerlo | Solo i dispositivi della tua tailnet | Chiunque abbia l'URL | Chiunque, dietro il tuo login |
| Indirizzo | machine.nome-tailnet.ts.net | Lo stesso URL ts.net, ora pubblico | Un dominio tuo |
| Porte pubbliche | Nessuna, niente è pubblico | Solo 443, 8443 o 10000 | Quelle che apri tu |
| Login davanti | L'appartenenza alla tailnet | Nessuno | Il tuo (basic_auth di Caddy) |
| Banda | Senza il limite di Funnel | Limitata da Tailscale, non configurabile | La velocità della porta del VPS |
| Costo aggiuntivo | Nessuno | Nessuno, su tutti i piani | Pochi euro al mese |
Crea il tuo comando Serve o Funnel
Tre domande e ottieni il comando, l'indirizzo che fornisce e come annullarlo. Funziona nel browser, non viene inviato nulla.
Il tuo comando
tailscale funnel 3000
Indirizzo su cui risponderà
https://<machine>.<tailnet-name>.ts.net
Verificare e annullare
tailscale funnel status tailscale funnel reset
- Funnel non mette alcun login davanti al servizio: chiunque abbia l'URL raggiunge la tua app. Pubblica solo ciò che ha una propria autenticazione.
- Il file di policy della tailnet deve concedere l'attributo di nodo funnel (predefinito: autogroup:member), e MagicDNS e i certificati HTTPS devono essere attivi nella console di amministrazione.
- Senza --bg la condivisione si ferma alla chiusura del terminale: la scelta prudente per una prova.
Se ti servono un dominio tuo, qualsiasi porta e nessun limite di banda di Funnel, la colonna di destra è la soluzione: un piccolo VPS con IPv4 pubblico (Contabo, 5,50 € al mese) più Caddy, configurato passo passo più sotto.
Che cos'è davvero Funnel
La descrizione di Tailscale è diretta: Funnel «consente di instradare traffico da internet in senso ampio verso un servizio locale in esecuzione su un dispositivo della tua rete Tailscale». Lo scopo è condividere con persone che non sono nella tua tailnet e non hanno un account Tailscale.
Serve è il caso inverso, e la documentazione lo dice senza giri di parole: se vuoi condividere servizi locali solo con gli altri dispositivi della tailnet, usa Serve.
La decisione non è quindi una preferenza tecnica, è una domanda sul tuo pubblico:
- Solo le tue macchine e le persone invitate nella tailnet → Serve.
- Chiunque abbia il link, sconosciuti compresi → Funnel.
Se non sai rispondere a questa domanda per un dato servizio, non lanciare ancora nessuno dei due comandi.
I tre vincoli che decidono se Funnel è adatto
Funnel è volutamente stretto, e i suoi limiti sono documentati invece che scoperti sul campo. Tre di essi risolvono la maggior parte dei casi prima ancora di scrivere una riga di configurazione.
Le porte: 443, 8443, 10000. È tutta la lista. Funnel può ascoltare solo su queste tre. Non è un valore predefinito da sovrascrivere: se il tuo servizio deve essere raggiungibile pubblicamente su un'altra porta, Funnel non è lo strumento.
Il nome host appartiene a Tailscale. Funnel può usare solo nomi DNS del dominio della tua tailnet, nella forma tailnet-name.ts.net. Se pensavi di mettere un prodotto, una demo per un cliente o qualcosa con il tuo marchio su un dominio tuo, non è ciò che fa.
La banda è limitata, e il limite non è tuo. Tailscale afferma che il traffico inviato tramite Funnel è soggetto a limiti di banda non configurabili. Per una pagina di configurazione o un piccolo strumento interno è irrilevante. Per trasmettere una mediateca ai familiari, quel tetto sarà probabilmente il vincolo, prima della tua banda in upload.

La parte che si salta: davanti non c'è nessun login
È la ragione per cui la confusione fra Serve e Funnel pesa più di un normale refuso.
La documentazione di Tailscale non descrive alcuno strato di autenticazione davanti a un endpoint Funnel, ed è una scelta progettuale: tutta la sua finalità è servire persone che non sono nella tailnet e che quindi non possono essere autenticate da essa. Funnel ti dà un ingresso HTTPS pubblico; non ti dà una porta.
Conseguenza pratica: l'autenticazione della tua applicazione è l'unica cosa fra internet e i tuoi dati. Una dashboard senza password, un file browser che si fida della rete locale, un pannello di amministrazione raggiungibile solo dalla LAN: tutti diventano aperti nel momento in cui vengono «funnelati» invece che serviti.
Prima di attivarlo su qualsiasi cosa, il test onesto sta in una domanda: pubblicherei questo URL apertamente senza problemi? Se la risposta è no, il servizio ha bisogno di una propria autenticazione, oppure di Serve invece di Funnel.
Attivarlo: prima il file di policy
Funnel non è attivo per impostazione predefinita su un nodo. Richiede un attributo di nodo funnel nel file di policy della tailnet, che dice a Tailscale quali utenti possono usarlo. Per impostazione predefinita il diritto va a autogroup:member.
Questa mediazione va capita più che saltata: significa che Funnel è una decisione amministrativa a livello di tailnet, non solo un comando che qualcuno lancia sul portatile. In una tailnet condivisa, chi controlla il file di policy controlla la possibilità stessa di esporre servizi pubblicamente.
★ Datacenter GDPR di Norimberga · ✓ IPv4 dedicato incluso · porta da 200 Mbit/s
Un VPS con IP pubblico proprio, senza tunnel → ContaboIPv4 pubblico · Controlli tu firewall, porte e reverse proxy · Nessun tetto di banda imposto da terzi→I comandi, uno accanto all'altro
I due comandi accettano lo stesso bersaglio: una porta, un indirizzo localhost:porta o l'URL completo di un servizio in esecuzione sulla macchina. Ecco le forme elencate da tailscale funnel --help su Tailscale 1.104.1 (18 ottobre 2026). Nulla cambia nella 1.104.2, versione stabile del 21 ottobre 2026: il suo changelog elenca solo la compilazione con Go 1.27.3, che toglie la fiducia ai certificati intermedi TLS eMudhra compromessi (bollettino di sicurezza Tailscale TS-2026-013), e due correzioni del client Windows. Aggiorna il client, i comandi qui sotto restano gli stessi:
# Solo dentro la tailnet: https://<macchina>.<nome-tailnet>.ts.net
tailscale serve --bg 3000
# Su internet pubblico, stesso URL, raggiungibile da chiunque
tailscale funnel --bg 3000
# Pubblico, su una delle altre due porte consentite
tailscale funnel --bg --https=8443 3000
# Vedere che cosa è esposto, poi rimuovere tutto
tailscale funnel status
tailscale funnel reset
Senza --bg la condivisione gira in primo piano e si ferma quando chiudi il terminale, l'impostazione più prudente per un test veloce. Con --bg sopravvive a logout e riavvii fino al reset: prendi l'abitudine di lanciare tailscale funnel status su ogni macchina dove l'hai usato. Prima del primo avvio vanno attivati MagicDNS e i certificati HTTPS della tailnet nella console di amministrazione, perché Funnel serve un vero certificato per il nome ts.net.
Tailscale Funnel con il tuo dominio: il reverse proxy su VPS
Funnel non risponderà su app.esempio.it, e un CNAME verso il tuo nome ts.net non risolve: il certificato è emesso per il nome ts.net, quindi il browser rifiuta il dominio personalizzato. La soluzione che ti dà un dominio tuo, qualsiasi porta, nessun limite di banda di Funnel e un login che controlli tu è un piccolo server pubblico che entra nella tua tailnet e inoltra il traffico alla macchina di casa attraverso di essa.
- Noleggia un piccolo VPS con IPv4 pubblico e installa Tailscale (
curl -fsSL https://tailscale.com/install.sh | sh, poisudo tailscale up). Ora raggiunge la tua macchina di casa sul suo indirizzo tailnet100.x.y.z. - Punta un record A per
app.esempio.itsull'IP pubblico del VPS e apri le porte 80 e 443 nel suo firewall, nient'altro. - Installa Caddy sul VPS con questo Caddyfile (validato con
caddy validatesu Caddy 2.11.7):
app.esempio.it {
basic_auth {
# genera l'hash con: caddy hash-password
alice $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG
}
reverse_proxy 100.101.102.103:3000
}
Caddy ottiene da solo il certificato Let's Encrypt del tuo dominio, e il blocco basic_auth mette davanti al servizio la barriera che Funnel non ha mai avuto. Sostituisci 100.101.102.103 con l'IP tailnet mostrato da tailscale ip -4 sulla macchina di casa e verifica che il servizio ascolti su quell'interfaccia, non solo su 127.0.0.1. La rete di casa continua a non aprire nessuna porta: il VPS è l'unica facciata pubblica e il traffico tra i due viaggia dentro WireGuard.
Il costo onesto: qualche euro al mese e una macchina in più da tenere aggiornata. Un VPS da 1 vCPU e 1 GB basta e avanza per un reverse proxy; il limite diventa la velocità della porta del VPS, non un tetto deciso da altri. Se preferisci non gestire alcun server pubblico, l'alternativa è un prodotto di tunnel pensato per i domini personalizzati, confrontato più sotto.
★ Datacenter GDPR di Norimberga · ✓ IPv4 dedicato incluso · porta da 200 Mbit/s
La facciata pubblica del tuo dominio → VPS ContaboIPv4 pubblico · Traffico illimitato (uso corretto) · Entra nella tua tailnet con due comandi→Se preferisci un provider statunitense con 30 giorni soddisfatti o rimborsati, il VPS Basic di Ultahost costa 5,52 $ al mese su 24 mesi (1 GB di RAM, IPv4 dedicato, letto il 21 ottobre 2026), sufficiente per il reverse proxy Caddy descritto sopra.
Quando Funnel è la risposta giusta e quando no
Funnel va bene quando vuoi dare a qualcuno esterno alla tailnet un URL HTTPS funzionante con il minimo di cerimonie: un endpoint webhook che un servizio terzo deve raggiungere, un'anteprima di ciò che stai costruendo, una condivisione temporanea. Certificati e ingresso pubblico sono gestiti per te, e funziona su tutti i piani.
Funnel non va bene quando ti serve un dominio tuo, una porta fuori dalle tre consentite, un throughput sostenuto o uno strato di autenticazione che controlli. Questi requisiti puntano altrove: un reverse proxy su una macchina con IP pubblico proprio, o un prodotto di tunneling costruito attorno ai domini personalizzati.
E per il caso a cui si pensa più spesso ricorrendo a Funnel, voglio che i miei dispositivi raggiungano questo servizio da ovunque, né Funnel né un tunnel pubblico sono la risposta. È già quello che fa la tailnet, ed è ciò che fanno un nodo di uscita o un server WireGuard autogestito senza esporre nulla pubblicamente.
Per avere i comandi sempre a portata di mano: la nostra Tailscale & Headscale Cheat Sheet gratuita (PDF di 4 pagine in inglese, download diretto, senza registrazione) raccoglie status e ping, exit node, subnet router, Serve e Funnel, la configurazione di Headscale, utenti, chiavi e ACL, e le cause di guasto più comuni. Scarica la scheda.
In sintesi
serve e funnel distano una parola nel terminale e sono opposti in ciò che pubblicano. Serve tiene un servizio dentro la tailnet; Funnel lo mette su internet, su una di tre porte, sotto un nome host ts.net, con un tetto di banda e senza nulla che autentichi i visitatori.
Decidi prima di digitare quale pubblico intendi davvero. Se la risposta è «le mie macchine», non ti è mai servito un ingresso pubblico, e l'esposizione più sicura resta quella che non si è mai aperta.
Link di affiliazione
★ Datacenter GDPR di Norimberga · ✓ IPv4 dedicato incluso · porta da 200 Mbit/s
Ospita la tua VPN sul tuo VPS → ContaboCloud VPS 4 · 5,50 €/mese · Carta o PayPal · ordini accettati anche fuori dall'UE→Prezzo verificato il 17/10/2026, durata 24 mesi


