Lo tienes todo: Tailscale activo, Sunshine corriendo y el iPad emparejado. Pulsas en “Escritorio” con toda la ilusión y… pantalla negra. O peor, un mensaje de error: “No video received from host. Check your firewall”.
No te preocupes, no has roto nada. Estás ante los tres “jefes finales” de la configuración de Sunshine en Linux. En el laboratorio hemos pasado por esto y aquí tienes los comandos exactos para desbloquear la señal de vídeo.
1. El gran culpable: Wayland
Si usas Ubuntu 22.04 o 24.04, tu sistema usa Wayland por defecto. Por seguridad, Wayland bloquea que cualquier programa externo (como Sunshine) “grabe” o capture tu pantalla. Por eso ves la pantalla negra aunque el ratón funcione.
La Solución: Cambiar a Xorg (X11)
Es la forma más rápida y estable de que Sunshine funcione al 100%.
- Cierra tu sesión actual en Ubuntu (Log Out).
- En la pantalla donde pones la contraseña, haz clic en tu usuario.
- Busca un icono de una rueda dentada abajo a la derecha.
- Selecciona “Ubuntu on Xorg” (o Ubuntu sobre X11).
- Vuelve a entrar y prueba el streaming.

2. Error: “No video received” (El Firewall)
Si el iPad te da un error de puertos UDP (normalmente el 47998 o 48000), es que tu PC tiene los muros subidos. Sunshine usa el protocolo UDP para enviar el vídeo porque es mucho más rápido que el TCP normal.
La Solución: Abrir los puertos en UFW
No hace falta que toques tu router, solo la terminal de tu Ubuntu. Vamos a abrir el rango necesario para que el vídeo fluya:
# Abrimos el rango de puertos para Sunshine
sudo ufw allow 47984:48010/udp
sudo ufw allow 47984:48010/tcp
# Recargamos el firewall para aplicar cambios
sudo ufw reload

Seguridad Pro: Si usas Tailscale, puedes restringir estos puertos solo a esa red:
sudo ufw allow in on tailscale0 to any port 47984:48010 proto udp
3. Permisos de Aceleración por Hardware
Si Sunshine no tiene permiso para “tocar” tu tarjeta gráfica directamente, no podrá codificar el vídeo a 60Hz o 120Hz. Necesita un permiso especial llamado KMS.
Ejecuta este comando para darle “superpoderes” al ejecutable de Sunshine:
sudo setcap cap_sys_admin+p $(readlink -f $(which sunshine))
Después de esto, reinicia el servicio de usuario:
systemctl --user restart sunshine
4. El misterio del icono invisible
Si has intentado poner una portada personalizada a tu aplicación y no se ve en el iPad, es un problema de Rutas Absolutas.
En Linux, los servicios no siempre saben dónde está tu carpeta “Home”. Si pones foto.png, Sunshine se pierde. Debes poner la ruta completa:
/home/tu-usuario/.config/sunshine/assets/foto.png
Conclusión
Trastear con streaming en Linux es un rito de iniciación. Una vez que superas el muro de Wayland y configuras el Firewall, la potencia que obtienes es increíble. Ahora tu iPad ya no es una tablet, es un terminal de acceso a tu laboratorio con latencia zero.
¿Sigues teniendo problemas? Mira los logs en tiempo real con este comando y lánzanos una consulta en el nodo de Telegram:
journalctl --user -u sunshine -f
¡Nos vemos en el próximo trasteo! 🛠️