Tailscale Funnel o Serve (2026): comandi, 3 porte, dominio tuo

Serve condivide nella tua tailnet, Funnel pubblica su tutto internet. I comandi esatti (Tailscale 1.104), il limite di porte 443/8443/10000, l'assenza di login e come ottenere lo stesso risultato di Funnel sul tuo dominio con un piccolo VPS e Caddy.

Di Eric GerardFondatore · VPNSmith - Specialista in VPN autogestite e VPS GDPR

Aggiornato 9 min lettura9 min

Link di affiliazione: possibile commissione, senza costi extra. Metodo

Confronta i costiLeggi la guida

fig. 01 / self-host-vpn-headCONTROLcoordination onlyNODE A100.64.0.1NODE B100.64.0.2NODE C100.64.0.3WireGuard p2pkeys, ACL
fig. 01 / self-host-vpn-head

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 servetailscale funnelVPS + Caddy (tuo dominio)
Chi può raggiungerloSolo i dispositivi della tua tailnetChiunque abbia l'URLChiunque, dietro il tuo login
Indirizzomachine.nome-tailnet.ts.netLo stesso URL ts.net, ora pubblicoUn dominio tuo
Porte pubblicheNessuna, niente è pubblicoSolo 443, 8443 o 10000Quelle che apri tu
Login davantiL'appartenenza alla tailnetNessunoIl tuo (basic_auth di Caddy)
BandaSenza il limite di FunnelLimitata da Tailscale, non configurabileLa velocità della porta del VPS
Costo aggiuntivoNessunoNessuno, su tutti i pianiPochi 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.

Chi deve raggiungere il servizio?

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.

Primo piano delle mani di uno sviluppatore su una tastiera davanti a uno schermo pieno di codice
Primo piano delle mani di uno sviluppatore su una tastiera davanti a uno schermo pieno di codice

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.

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.

  1. Noleggia un piccolo VPS con IPv4 pubblico e installa Tailscale (curl -fsSL https://tailscale.com/install.sh | sh, poi sudo tailscale up). Ora raggiunge la tua macchina di casa sul suo indirizzo tailnet 100.x.y.z.
  2. Punta un record A per app.esempio.it sull'IP pubblico del VPS e apri le porte 80 e 443 nel suo firewall, nient'altro.
  3. Installa Caddy sul VPS con questo Caddyfile (validato con caddy validate su 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.

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

Prezzo verificato il 17/10/2026, durata 24 mesi

Domande frequenti

Qual è la differenza tra Tailscale Funnel e Tailscale Serve?
Serve condivide un servizio locale soltanto con gli altri dispositivi della tua tailnet. Funnel instrada il traffico proveniente da internet in senso ampio verso quel servizio, quindi chiunque può raggiungerlo, comprese persone senza account Tailscale. La documentazione è esplicita: se vuoi condividere solo con i tuoi dispositivi, usa Serve. I comandi si somigliano moltissimo, ed è proprio per questo che l'errore capita.
Quali porte può usare Tailscale Funnel?
Solo tre: 443, 8443 e 10000. È un limite rigido, non un valore predefinito che si possa sovrascrivere. Se il tuo servizio deve essere raggiungibile pubblicamente su un'altra porta, Funnel è lo strumento sbagliato e ti serve un reverse proxy o un altro tunnel.
Funnel mette un'autenticazione davanti al mio servizio?
No. La documentazione di Tailscale non descrive alcuno strato di autenticazione integrato davanti a un endpoint Funnel: il senso stesso di Funnel è servire persone che non stanno nella tua tailnet. L'autenticazione della tua applicazione è l'unica cosa fra internet e i tuoi dati. Se l'applicazione non ne ha, è aperta.
Serve un piano a pagamento per usare Funnel?
No. Tailscale indica che Funnel è disponibile su tutti i piani. Serve invece l'attributo di nodo «funnel» nel file di policy della tailnet, che stabilisce quali utenti possono attivarlo: per impostazione predefinita autogroup:member.
Quale nome host usa un endpoint Funnel?
Uno del dominio della tua stessa tailnet, nella forma tailnet-name.ts.net. Funnel non può servire direttamente un dominio tuo, il che conta se pensavi di ospitarci un prodotto.
Funnel è abbastanza veloce per lo streaming multimediale?
Il traffico che passa da Funnel è soggetto a limiti di banda che Tailscale definisce non configurabili. È pensato per condividere un servizio, non per una diffusione sostenuta. Per una mediateca condivisa con persone esterne alla tailnet, il vincolo sarà probabilmente quel limite, prima della tua banda in upload.