Tailscale Funnel ou Serve (2026): comandos, 3 portas, domínio próprio

O Serve partilha dentro da tua tailnet, o Funnel publica em toda a internet. Os comandos exatos (Tailscale 1.104), o limite de portas 443/8443/10000, a falta de login e como ter o mesmo que o Funnel no teu próprio domínio com um VPS pequeno e o Caddy.

Por Eric GerardFundador · VPNSmith - Especialista em VPN auto-hospedada e VPS RGPD

Atualizado 10 min de leitura10 min

Links de afiliado: podemos receber comissão, sem custo extra. Método

Comparar os custosLer o guia

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

Dois comandos da Tailscale diferem numa palavra. tailscale serve partilha um serviço local com os dispositivos da tua própria tailnet. tailscale funnel encaminha tráfego da internet em sentido lato para esse mesmo serviço, ao alcance de qualquer pessoa que tenha o URL.

Mesma sintaxe, exposição oposta. É o artigo inteiro em duas frases, mas trocar o sentido deixa na internet aberta um serviço que julgavas privado, por isso vale a pena ser preciso sobre o que o Funnel faz e não faz.

Em resumo (o detalhe, os comandos e a configuração com o teu domínio estão mais abaixo):

tailscale servetailscale funnelVPS + Caddy (teu domínio)
Quem lhe acedeSó os dispositivos da tua tailnetQualquer pessoa com o URLQualquer pessoa, atrás do teu login
Endereçomachine.nome-da-tailnet.ts.netO mesmo URL ts.net, agora públicoUm domínio teu
Portas públicasNenhuma, nada é públicoSó 443, 8443 ou 10000As que tu abrires
Login à frentePertencer à tailnetNenhumO teu (basic_auth do Caddy)
Largura de bandaSem o limite do FunnelLimitada pela Tailscale, não configurávelA velocidade da porta do VPS
Custo adicionalNenhumNenhum, em todos os planosAlguns euros por mês

Gere o seu comando Serve ou Funnel

Três perguntas e obtém o comando, o endereço que ele dá e como desfazer. Funciona no seu navegador, nada é enviado.

Quem deve chegar ao serviço?

O seu comando

tailscale funnel 3000

Endereço em que vai responder

https://<machine>.<tailnet-name>.ts.net

Verificar e desfazer

tailscale funnel status
tailscale funnel reset
  • O Funnel não coloca nenhum login à frente do serviço: quem tiver o URL chega à sua aplicação. Publique apenas o que tem autenticação própria.
  • O ficheiro de políticas da tailnet tem de conceder o atributo de nó funnel (por omissão: autogroup:member), e o MagicDNS e os certificados HTTPS têm de estar ativos na consola de administração.
  • Sem --bg a partilha para quando fecha o terminal: a escolha prudente para um teste.

Se precisas de um domínio teu, qualquer porta e nenhum limite de largura de banda do Funnel, a coluna da direita é a solução: um VPS pequeno com IPv4 público (Contabo, 5,50 € por mês) mais Caddy, configurado passo a passo mais abaixo.

O que o Funnel é, na realidade

A descrição da Tailscale é direta: o Funnel «permite encaminhar tráfego da internet em sentido lato para um serviço local em execução num dispositivo da tua rede Tailscale». O objetivo é partilhar com pessoas que não estão na tua tailnet e não têm conta Tailscale.

O Serve é o caso inverso, e a documentação di-lo sem rodeios: se queres partilhar serviços locais apenas com os outros dispositivos da tailnet, usa o Serve.

A decisão não é, portanto, uma preferência técnica, é uma pergunta sobre o teu público:

  • Apenas as tuas máquinas e as pessoas convidadas para a tailnet → Serve.
  • Qualquer pessoa com a ligação, incluindo desconhecidos → Funnel.

Se não souberes responder a essa pergunta para um dado serviço, não corras ainda nenhum dos dois comandos.

As três restrições que decidem se o Funnel serve

O Funnel é deliberadamente estreito, e os seus limites estão documentados em vez de serem descobertos pelo caminho. Três deles resolvem a maioria dos casos antes de escreveres uma linha de configuração.

As portas: 443, 8443, 10000. É a lista completa. O Funnel só pode escutar nessas três. Não é um valor por omissão a sobrepor, se o teu serviço tiver de estar acessível publicamente noutra porta, o Funnel não é a ferramenta.

O nome de anfitrião pertence à Tailscale. O Funnel só pode usar nomes DNS do domínio da tua tailnet, na forma tailnet-name.ts.net. Se pensavas colocar um produto, uma demonstração para clientes ou algo com a tua marca num domínio teu, não é isso que ele faz.

A largura de banda tem teto, e o teto não é teu. A Tailscale afirma que o tráfego enviado através do Funnel está sujeito a limites não configuráveis. Para uma página de configuração ou uma ferramenta interna pequena, é irrelevante. Para transmitir uma mediateca a familiares, esse teto será provavelmente o constrangimento, antes da tua velocidade de envio.

Grande plano das mãos de um programador sobre um teclado, à frente de um ecrã cheio de código
Grande plano das mãos de um programador sobre um teclado, à frente de um ecrã cheio de código

A parte que se salta: não há qualquer início de sessão à frente

É a razão pela qual a confusão entre Serve e Funnel pesa mais do que uma gralha vulgar.

A documentação da Tailscale não descreve qualquer camada de autenticação à frente de um ponto de entrada Funnel, e é intencional, porque toda a sua finalidade é servir pessoas que não estão na tailnet e que, por isso, não podem ser autenticadas por ela. O Funnel dá-te uma entrada HTTPS pública; não te dá uma porta.

Consequência prática: a autenticação da tua aplicação é a única coisa entre a internet e os teus dados. Um painel sem palavra-passe, um explorador de ficheiros que confia na rede local, um painel de administração que só era acessível a partir da LAN, todos ficam abertos no momento em que são «funnelados» em vez de servidos.

Antes de ativar isto sobre o que quer que seja, o teste honesto cabe numa pergunta: publicaria este URL abertamente sem desconforto? Se a resposta for não, o serviço precisa da sua própria autenticação, ou precisa do Serve em vez do Funnel.

Ativá-lo: primeiro o ficheiro de políticas

O Funnel não está ativo por omissão num nó. Exige um atributo de nó funnel no ficheiro de políticas da tua tailnet, que indica à Tailscale que utilizadores o podem usar. Por omissão, esse direito vai para autogroup:member.

Essa mediação merece ser compreendida em vez de ignorada: significa que o Funnel é uma decisão administrativa ao nível da tailnet, não apenas um comando que alguém corre no portátil. Numa tailnet partilhada, quem controla o ficheiro de políticas controla a própria possibilidade de expor serviços publicamente.

Os comandos, lado a lado

Os dois comandos aceitam o mesmo alvo: uma porta, um endereço localhost:porta ou o URL completo de um serviço a correr na máquina. Estas são as formas listadas por tailscale funnel --help no Tailscale 1.104.1 (18 de outubro de 2026). Nada muda na 1.104.2, versão estável de 21 de outubro de 2026: o seu changelog lista apenas a compilação com Go 1.27.3, que retira a confiança aos certificados intermediários TLS da eMudhra comprometidos (boletim de segurança Tailscale TS-2026-013), e duas correções do cliente Windows. Atualize o cliente, os comandos abaixo continuam iguais:

# Só dentro da tailnet: https://<maquina>.<nome-tailnet>.ts.net
tailscale serve --bg 3000

# Na internet pública, mesmo URL, ao alcance de qualquer pessoa
tailscale funnel --bg 3000

# Público, numa das outras duas portas permitidas
tailscale funnel --bg --https=8443 3000

# Ver o que está exposto e depois retirar tudo
tailscale funnel status
tailscale funnel reset

Sem --bg, a partilha corre em primeiro plano e termina quando fechas o terminal, a opção mais prudente para um teste rápido. Com --bg sobrevive a fins de sessão e reinícios até correres reset, por isso habitua-te a lançar tailscale funnel status em qualquer máquina onde o tenhas usado. Antes da primeira execução, o MagicDNS e os certificados HTTPS da tailnet têm de estar ativos na consola de administração, porque o Funnel serve um certificado real para o nome ts.net.

Tailscale Funnel com o teu próprio domínio: o proxy inverso num VPS

O Funnel não responde em app.exemplo.pt, e um CNAME para o teu nome ts.net não resolve: o certificado é emitido para o nome ts.net, por isso o navegador rejeita o domínio personalizado. A montagem que te dá um domínio teu, qualquer porta, nenhum limite de largura de banda do Funnel e um início de sessão que controlas é um pequeno servidor público que entra na tua tailnet e reencaminha o tráfego para a máquina de casa através dela.

  1. Aluga um VPS pequeno com IPv4 pública e instala o Tailscale (curl -fsSL https://tailscale.com/install.sh | sh e depois sudo tailscale up). Passa a alcançar a tua máquina de casa no endereço tailnet 100.x.y.z.
  2. Aponta um registo A de app.exemplo.pt para o IP público do VPS e abre as portas 80 e 443 na firewall dele, mais nenhuma.
  3. Instala o Caddy no VPS com este Caddyfile (validado com caddy validate no Caddy 2.11.7):
app.exemplo.pt {
	basic_auth {
		# gera o hash com: caddy hash-password
		alice $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG
	}
	reverse_proxy 100.101.102.103:3000
}

O Caddy obtém sozinho o certificado Let's Encrypt do teu domínio, e o bloco basic_auth põe à frente do serviço a barreira que o Funnel nunca teve. Substitui 100.101.102.103 pelo IP tailnet que tailscale ip -4 mostra na máquina de casa e confirma que o serviço escuta nessa interface, não apenas em 127.0.0.1. A rede de casa continua sem abrir nenhuma porta: o VPS é a única face pública e o tráfego entre os dois viaja dentro do WireGuard.

O custo honesto: alguns euros por mês e mais uma máquina para manter atualizada. Um VPS de 1 vCPU e 1 GB chega bem para um proxy inverso; o limite passa a ser a velocidade da porta do VPS, não um teto definido por outra pessoa. Se preferires não manter nenhum servidor público, a alternativa é um produto de túnel pensado para domínios próprios, comparado mais abaixo.

Se preferir um fornecedor dos EUA com 30 dias de reembolso, o VPS Basic da Ultahost custa 5,52 $ por mês em 24 meses (1 GB de RAM, IPv4 dedicado, lido a 21 de outubro de 2026), suficiente para o proxy reverso Caddy descrito acima.

Quando o Funnel é a resposta certa e quando não é

O Funnel encaixa quando queres dar a alguém de fora da tua tailnet um URL HTTPS que funcione com o mínimo de cerimónia: um ponto de entrada de webhook que um serviço terceiro tem de alcançar, uma pré-visualização do que estás a construir, uma partilha temporária. Os certificados e a entrada pública são tratados por ti, e funciona em todos os planos.

O Funnel não encaixa quando precisas de um domínio teu, de uma porta fora das três permitidas, de débito sustentado ou de uma camada de autenticação que controles. Esses requisitos apontam para outro lado: um proxy inverso numa máquina com IP público próprio, ou um produto de túnel construído em torno de domínios personalizados.

E para o caso em que as pessoas mais frequentemente pensam ao recorrer ao Funnel, quero que os meus dispositivos alcancem este serviço a partir de qualquer lugar, nem o Funnel nem um túnel público são a resposta. É o que a tailnet já faz, e o que um nó de saída ou um servidor WireGuard auto-hospedado fazem sem expor seja o que for publicamente.

Para ter os comandos à mão: a nossa Tailscale & Headscale Cheat Sheet gratuita (PDF de 4 páginas em inglês, download direto, sem registo) reúne status e ping, exit node, subnet router, Serve e Funnel, a configuração do Headscale, utilizadores, chaves e ACL, e as causas de falha habituais. Descarregar a ficha.

O essencial

serve e funnel estão a uma palavra de distância no terminal e são opostos naquilo que publicam. O Serve mantém um serviço dentro da tailnet; o Funnel põe-no na internet, numa de três portas, sob um nome ts.net, com teto de largura de banda e sem nada que autentique os visitantes.

Decide antes de escrever qual é o público que realmente pretendes. Se a resposta for «as minhas máquinas», nunca precisaste de uma entrada pública, e a exposição mais segura continua a ser a que nunca se abriu.

Link de afiliado

Preço verificado em 17/10/2026, prazo de 24 meses

Perguntas frequentes

Qual é a diferença entre o Tailscale Funnel e o Tailscale Serve?
O Serve partilha um serviço local apenas com os outros dispositivos da tua tailnet. O Funnel encaminha tráfego vindo da internet em sentido lato para esse serviço, pelo que qualquer pessoa o pode alcançar, incluindo quem não tem conta Tailscale. A documentação é explícita nesta separação: se queres partilhar só com os teus dispositivos, usa o Serve. Os comandos são quase iguais, e é precisamente por isso que o erro acontece.
Que portas pode o Tailscale Funnel usar?
Apenas três: 443, 8443 e 10000. É um limite rígido, não um valor por omissão que se possa sobrepor. Se o teu serviço tiver de estar acessível publicamente noutra porta, o Funnel é a ferramenta errada e precisas de um proxy inverso ou de outro túnel.
O Funnel coloca autenticação à frente do meu serviço?
Não. A documentação da Tailscale não descreve qualquer camada de autenticação integrada à frente de um ponto de entrada Funnel, a finalidade do Funnel é justamente servir pessoas que não estão na tua tailnet. A autenticação da tua própria aplicação é a única coisa entre a internet e os teus dados. Se a aplicação não tiver, está aberta.
É preciso um plano pago para usar o Funnel?
Não. A Tailscale indica que o Funnel está disponível em todos os planos. O que é preciso é o atributo de nó «funnel» no ficheiro de políticas da tailnet, que define que utilizadores o podem ativar, por omissão, autogroup:member.
Que nome de anfitrião usa um ponto de entrada Funnel?
Um do domínio da tua própria tailnet, na forma tailnet-name.ts.net. O Funnel não consegue servir diretamente um domínio teu, o que importa se pensavas alojar ali um produto.
O Funnel é suficientemente rápido para transmitir multimédia?
O tráfego que passa pelo Funnel está sujeito a limites de largura de banda que a Tailscale descreve como não configuráveis. Foi pensado para partilhar um serviço, não para difusão contínua. Numa mediateca partilhada com pessoas fora da tailnet, o constrangimento será provavelmente esse limite, antes do teu envio.