Saltar al contenido

Jellyfin fuera de casa con Tailscale: entra sin abrir el puerto 8096

Conecta el móvil a Jellyfin por Tailscale, comprueba cada tramo y distingue un fallo de VPN de uno de Docker o del reproductor.

5 min de lecturaGonzalo
En esta guía5 secciones
Móvil conectado por Tailscale al servidor Jellyfin; el puerto 8096 permanece sin abrir en el router

Estás fuera de casa, abres Jellyfin y el servidor que funcionaba en la tele ya no aparece. No hace falta empezar abriendo el puerto 8096 en el router. Si el móvil y el servidor están en la misma red privada de Tailscale, puedes entrar por la dirección Tailscale del servidor. La VPN resuelve el camino de red; la cuenta de Jellyfin sigue protegiendo la biblioteca.

Esta guía parte de un Jellyfin que ya funciona en la red de casa, instalado en Linux con Docker. Si ni siquiera abre en casa, empieza por la instalación y diagnóstico de Jellyfin. Aquí aislaremos el acceso remoto, sin cambiar la biblioteca ni comprar otro equipo.

El recorrido que debe funcionar

Tailscale asigna a cada dispositivo una dirección propia y, si MagicDNS está habilitado, un nombre. Necesitas instalarlo e iniciar sesión tanto en el servidor como en el móvil, con acceso permitido entre ambos por las reglas de tu tailnet. La guía oficial de conexión entre dispositivos aclara el detalle que suele faltar: Tailscale da conectividad, pero no arranca Jellyfin por ti.

Este método exige que el cliente pueda usar Tailscale. Si tu tele o reproductor no admite la aplicación, no prometemos que añadirle la IP privada vaya a funcionar: utiliza un móvil/ordenador compatible, estudia un dispositivo de la red que haga de router de subred o elige otro diseño de acceso. Un router de subred añade rutas y permisos; no es un ajuste automático del cliente Jellyfin.

1. Comprueba Jellyfin antes de tocar la VPN

En la red de casa abre http://IP-LAN-DEL-SERVIDOR:8096 desde otro dispositivo. Si falla, consulta el estado del contenedor y el puerto publicado:

docker compose ps
docker compose port jellyfin 8096

Ejecuta esos comandos en el directorio del proyecto Compose y cambia jellyfin si tu servicio tiene otro nombre. El ejemplo de instalación de Jellyfin en Docker publica 8096:8096; eso suele escuchar en las interfaces del host, no es una instrucción para redirigir 8096 en el router. Comprueba también que no exista una redirección previa ni una regla pública para ese puerto. Docker advierte expresamente que publicar sin IP de host puede hacerlo accesible desde fuera si la red lo permite: documentación de puertos publicados.

Si limitaste Jellyfin a 127.0.0.1:8096:8096 o no publicaste el puerto en el host, la IP Tailscale seguida de :8096 no llegará directamente al contenedor. Tener un proxy inverso no implica por sí solo ese límite: comprueba el puerto efectivo. Si sólo escucha en loopback, puedes conservarlo y configurar un proxy privado, por ejemplo Tailscale Serve, hacia ese servicio. Serve comparte dentro de la tailnet; Funnel lo haría público, y no es lo que buscamos aquí.

2. Conecta ambos dispositivos a la misma tailnet

Instala Tailscale por su procedimiento oficial para cada sistema y comprueba en el panel de dispositivos que servidor y móvil aparecen conectados. No hace falta sustituir tu Compose ni instalar Tailscale dentro del contenedor: en este recorrido se ejecuta en el host Linux y en el dispositivo cliente.

En el servidor:

tailscale status
tailscale ip -4

Apunta la IP Tailscale del servidor, no la del móvil. Desde el móvil con Tailscale conectado, introduce manualmente en el cliente Jellyfin:

http://IP-TAILSCALE-DEL-SERVIDOR:8096

También puedes probar primero esa dirección en el navegador del móvil. HTTP aquí viaja por el túnel de Tailscale; no equivale a publicar HTTP directamente en Internet. Sigue usando usuarios y contraseñas propios de Jellyfin, mantén ambos programas actualizados y limita quién entra en la tailnet. No compartas una cuenta administradora para resolver un error de red.

3. Prueba fuera de la wifi, no desde el sofá

Desactiva la wifi del móvil y usa datos móviles para que la prueba recorra una red distinta. Con Tailscale activo, abre la URL anterior en el navegador y luego en el cliente Jellyfin. Si ves el inicio de sesión y puedes acceder con tu usuario, el camino remoto básico funciona. Prueba después un archivo que ya reproduces en casa; que cargue el panel no mide todavía la capacidad de subida de tu conexión ni garantiza Direct Play en ese cliente.

Lo que observasQué comprobar antes de cambiar nada
El móvil no ve al servidor en TailscaleSesión, dispositivo conectado y reglas de acceso de la tailnet.
Tailscale llega al host, pero :8096 no abredocker compose ps, docker compose port, firewall del host y si el puerto quedó ligado sólo a loopback.
Abre en navegador, pero no en la appDirección introducida, cuenta, versión y capacidad del cliente; prueba la URL exacta sin descubrimiento automático.
Entra y navega, pero el vídeo se cortaAnota archivo, cliente y modo de reproducción; sigue el diagnóstico de red y transcodificación.

En un segundo ordenador de la misma tailnet, tailscale ping NOMBRE-O-IP ayuda a separar el túnel del servicio web. En el móvil, la prueba del navegador y el estado de la app cumplen esa función. Una respuesta de ping no demuestra que Jellyfin escuche en 8096; una página de Jellyfin tampoco demuestra reproducción fluida.

¿Y si ya tengo WireGuard?

No añadiría Tailscale sólo por seguir esta receta si tu VPN WireGuard existente permite entrar de forma fiable y el móvil llega a Jellyfin. Usa la dirección privada y las rutas de esa VPN. Tailscale es una alternativa práctica cuando administrar el extremo, las rutas o CG-NAT complica esa conexión; a cambio dependes de su coordinación y de las reglas de la tailnet. Ninguno de los dos métodos arregla por sí solo una biblioteca vacía, un códec incompatible ni una subida doméstica insuficiente.

Qué está comprobado y qué no

La separación entre conexión Tailscale y servicio, las IP/nombres de dispositivo y las comprobaciones de fallo proceden de la documentación de Tailscale. Los puertos y opciones de red de Jellyfin están en su documentación oficial; el alcance de la publicación Docker, en la documentación de Docker. Esta página no afirma una prueba remota propia de Jellyfin por Tailscale ni velocidades medidas. Sirve para repetirla con tus dos dispositivos y saber exactamente dónde se rompe.