Configurando Tailscale para acceder servizos dende fora
Como acceder a nosa LAN dende fora con Tailscale
Introducción
Levo xa algún tempo con varios servizos configurados na Raspberry. Ata o de agora foi suficiente con poder acceder a eles dende casa e traballar en asíncrono para o resto de cousas.
Por exemplo, as notas de Nextcloud, podo editalas en calquer momento no móbil e xa se sincronizarán cando esté na casa. O mesmo ocorre cas tarefas, podcasts, etc.
Pero últimamente hai cousas ás que quero acceder tamén dende fora da casa, como arquivos, documentación, etc. Tal vez estando de viaxe precise nalgún momento acceder.
Unha das primeiras aplicacións que me chamou a atención foi Holesail que permitía compartir un recurso na rede, cunha clave, co que podería enlazar por P2P. Co que os datos non pasarían polo equipo de ninguén. O problema é que no meu móbil actual non podo instalar Holesail, así que quedou descartado.
A seguinte opción é Tailscale, que tamén permite enlazar os equipos por P2P. Aínda que neste caso ao ser unha opción comercial, co plan gratuíto hai un límite de seis usuarios. A opción anterior non tiña este límite.
Como vantaxe hai que dicir que aquí temos un panel de control moi cómodo de usar, e que non dependemos tanto de andar a por as claves para acceder a cada recurso que compartamos con Holesail, se non que creamos unha rede.
Instalación
Para facer a instalación en Gnu/Linux tan só temos que executar este comando curl -fsSL https://tailscale.com/install.sh | sh, tal e como vemos na súa sección de descargas.
Para lanzar a aplicación faremos sudo tailscale up e para detela sudo tailscale down.
En android chega con ir á Playstore e instalala dende alí.
Creando a rede
A primeira vez que accedemos ao noso panel de control, veremos que non temos máquinas. Pero cando nalgún equipo con Gnu/Linux levantamos a VPN, daranos un enlace para facer login no navegador. O mesmo ocorre na aplicación Android, que nos pedirá acceder cunha conta. As opcións que fornece son acceder ca conta de Google, Microsoft, Github, Apple ou con OIDC.
Unha vez accedamos poderemos ver os dispositivos na lista de máquinas.
DNS
Na miña rede teño configurado un Pi-Hole, para bloquear certas direccións, pero tamén para asignar nomes aos meus servizos e non ter que acceder por IP. Cando conectamos a Tailscale, non se utilizaba esta DNS, polo que non tiña acceso aos servizos. Tiven que configurar en Network > DNS un nameserver e pedirlle que sobreescriba os servidores DNS.

No meu caso como IP do servidor de nomes de dominio, usei a IP que Tailscale lle asignou á Raspberry, xa que fora da casa non terei acceso ás IPs de rango local.
Con isto puiden acceder aos servizos a través de Tailscale. Ca aplicación instalada tanto no móbil, como na Raspberry.
O problema
Na primeira proba que fixen dende fora da casa, non funcionou. O que ocorría era que Pi-Hole resolvía os nomes ás IPs locais, 192.x.x.x. E dende fora non tiña acceso ás mesmas. Despois de moito pelexar, vendo como podía resolver a un rango 192.x.x.x ou a 100.x.x.x según onde estivese conectado, a solución é máis doada.
Cabe dicir que descartei que Pi-Hole resolvese directamente ás IPs de Tailscale, xa que o número de dispositivos no plan gratis é limitado, e os equipos que non saen da rede non lles metín a aplicación. Por exemplo o sobremesa.
A solución sinxela foi levantar a aplicación na Raspberry anunciando a IP local, con sudo tailscale up --advertise-routes=192.168.8.8/32.
Desta forma os equipos conectados á miña rede Tailscale poderán acceder a esa IP, coma se estivesen na casa. Ca notación /32, tan só
expomos esa IP, así non temos que expor toda a nosa LAN.
Unha vez a anunciamos, temos que aprobar a publicación no panel de control. Na sección de Network > Machines, pulsamos nos tres puntos,
á dereita do dispositivo do cal queremos anunciar a súa IP local, accedemos a Edit route settings e aí se nos amosará unha mensaxe que di
1 route is advertised but not approved. Por seguridade temos que aprobar activamente estas rutas. Marcamos o check da IP e prememos en Save.
Despois de probar dende o móbil sen Wi-Fi, conectado á rede móbil e Tailscale, puiden acceder aos meus recursos. Nextcloud, Traefik, etc.
Conclusión
Tailscale é unha forma rápida e sinxela de montar a nosa propia rede local, para acceder aos nosos servizos autoaloxados. Non fai falla abrir portos no router, nin ter IP fixa, nin pedirlle ao noso ISP que nos saque do CGNAT.
Agora queda probalo durante os próximos días e ver que tal se comporta.
Bibliografía
- Tailscale: Web oficial
- Holesail: