Edge Shield para Emby

Para Emby: configura Cloudflare desde el panel: DNS y DDNS, SSL Full (strict), un certificado de Let's Encrypt, reglas de edge y bloqueo de inicios de sesión fallidos.

Connect once with a Cloudflare API token limited to your zone: it is kept encrypted on the server and never shown again1 de 8

Poner un servidor de Emby detrás de Cloudflare suele suponer una docena de pasos manuales en dos sitios distintos, y un error fácil: enviar el vídeo a través de la CDN de Cloudflare, algo que las condiciones de Cloudflare para los planes Free, Pro y Business no permiten. Edge Shield para Cloudflare® hace toda la configuración desde el panel de Emby, con tu propio token de la API de Cloudflare, y mantiene los streams de vídeo yendo directamente a tu servidor.

Qué hace

  • Conexión: un token de la API restringido a tu zona, guardado cifrado (AES-256-GCM) en el servidor y que nunca se vuelve a mostrar en el navegador; elección de la zona y una comprobación de cada permiso que el token necesita.
  • «Stream offload» (modo recomendado): el app host (por ejemplo media.example.com) pasa por el proxy de Cloudflare para la interfaz web, la API y el inicio de sesión, mientras que las peticiones de vídeo, audio y descargas se redirigen (307) a un streaming host (por ejemplo direct.example.com) que está en modo «DNS only» y llega directamente a tu servidor. Hay un modo «DNS only» para quien no quiera el proxy.
  • DNS: los registros A / AAAA de ambos nombres, con la IP pública detectada y mantenida al día automáticamente (DDNS).
  • TLS en Cloudflare: SSL Full (strict), Always Use HTTPS, versión mínima de TLS, TLS 1.3, HSTS opcional.
  • Certificado de Let's Encrypt para ambos nombres mediante ACME DNS-01 (con el mismo token, sin necesidad del puerto 80), renovado automáticamente 30 días antes de caducar y configurado en Emby como archivo .pfx.
  • Reglas de Cloudflare que encajan en el plan Free: la redirección de streams, la ausencia de caché en las rutas de medios, la lista de bloqueo, el bloqueo de cabeceras de IP enviadas por el cliente, los países permitidos, un límite de tasa de inicios de sesión y el puerto de origen (por ejemplo, cuando tu router usa el 2096 hacia fuera). Tus propias reglas quedan intactas; Remove the Edge Shield rules borra solo lo que el plugin creó.
  • IP real del cliente: Emby se configura para leer la dirección reenviada, y una regla de Cloudflare bloquea las peticiones que traen sus propias cabeceras de IP, así que Emby no puede recibir una dirección falsa.
  • Protección dinámica: una IP con demasiados inicios de sesión fallidos (5 en 10 minutos por defecto) entra en la lista de Cloudflare medialab_blocked y se bloquea en el edge durante 24 horas, ×4 en cada repetición (como máximo 30 días); las entradas caducan solas. Lista de permitidos, bloqueo y desbloqueo manuales, y un interruptor Under Attack con temporizador que se apaga solo.
  • Estado y correcciones: cada punto se comprueba, con un botón Fix por fila y Fix everything; los comandos del firewall para restringir el puerto se muestran listos para copiar.
  • En inglés y rumano.

Qué envía y a dónde

  • A Cloudflare, a través de su API y con tu propio token: la configuración de la zona, los registros DNS (con la IP pública de tu servidor), las reglas y las direcciones IP a bloquear. El comentario de una entrada de la lista de bloqueo guarda la hora de caducidad y el motivo (el número de inicios de sesión fallidos, o «manual» con la nota que escribiste para un bloqueo manual). Desde la versión 0.1.1, el nombre de usuario intentado ya no se envía a Cloudflare: se queda solo en tu servidor, en la lista de bloqueo y en el registro de la página del plugin.
  • Para averiguar tu IP pública (DDNS), el servidor lee https://www.cloudflare.com/cdn-cgi/trace; la lista de rangos de IP de Cloudflare se lee cada día desde la API pública de Cloudflare.
  • A Let's Encrypt: la solicitud de certificado para tus dos nombres de host (y la dirección de correo, si escribes una). La clave privada se crea en tu servidor y nunca sale de él.
  • El token se guarda solo cifrado en tu servidor y nunca se envía al navegador.
  • Nada va a medialab.works salvo la comprobación de la licencia.

Detalles completos de cada producto, incluido lo que se queda en tu servidor: Licencias, privacidad y compatibilidad.

Compatibilidad con clientes

Edge Shield funciona a nivel de servidor y red, así que se aplica a cada app. Lo que se ha verificado hasta ahora:

  • Emby Web: reproducción real mediante «stream offload», sin ningún byte de vídeo a través de Cloudflare; la página de administración en escritorio y en un teléfono.
  • Apps de Emby (Android, iOS, Android TV, Samsung, LG, Roku, Apple TV): aún sin probar. En el modo «stream offload», una app debe seguir la redirección 307 para los medios; si alguna no lo hace, usa el modo «DNS only».
  • Edge Shield se ha comprobado contra un simulador de la API de Cloudflare; la comprobación contra la API real de Cloudflare aún está en curso.

Requisitos

  • Emby Server 4.10.1 o superior (Linux, Windows o Docker).
  • Una cuenta de Cloudflare con la zona de tu dominio; el plan Free es suficiente.
  • Un token de la API de Cloudflare («Custom token», restringido a tu zona) con: Zone · Zone · Read, Zone · DNS · Edit, Zone · Zone Settings · Edit, Zone · SSL and Certificates · Edit, Zone · Zone WAF · Edit, Zone · Single Redirect · Edit, Zone · Cache Rules · Edit, Zone · Origin Rules · Edit, Account · Account Filter Lists · Edit. La página del plugin los lista y los comprueba.
  • Para «stream offload»: puertos HTTPS reenviados desde tu router a Emby para el app host y para el streaming host.

Límites

  • El streaming host está en «DNS only», así que la IP pública de tu servidor es visible para quien la consulte. Los streams siguen necesitando un token de Emby válido; Emby no ofrece a los plugins ninguna forma de filtrar las peticiones por host, así que en Emby el streaming host está protegido por el propio bloqueo de inicios de sesión de Emby y por el recuento de inicios de sesión fallidos (la IP sigue bloqueada en el app host).
  • Under Attack pide a cada visitante una comprobación de JavaScript: las apps nativas (Android TV, Roku, iOS, Kodi…) no pueden pasarla y no conectarán mientras esté activado. Úsalo solo durante un ataque, y brevemente.
  • Sin Cloudflare Tunnel ni certificado Origin CA en esta versión: ambos enviarían el vídeo a través de Cloudflare o necesitarían un certificado en el host directo que los navegadores no confían.
  • Los ajustes del servidor que Edge Shield cambia (HTTPS, certificado, dirección reenviada) surten efecto tras reiniciar Emby Server.

Licencias

Una licencia por servidor de Emby. Mensual, anual o de por vida, o incluida en el paquete de Emby. Prueba gratuita de 30 días. El plugin se distribuye bajo nuestro EULA.

Edge Shield es código propio, escrito desde cero por MediaLab Works; no contiene código de terceros y usa solo .NET y Emby. Cloudflare es una marca registrada de Cloudflare, Inc.; Edge Shield no está afiliado a Cloudflare ni cuenta con su respaldo.

Requisitos

  • Emby Server 4.10.1 o posterior (Linux, Windows o Docker)
  • Una cuenta de Cloudflare con la zona de tu dominio (basta con el plan Free)
  • Un token de API de Cloudflare restringido a la zona, con los permisos indicados en la página del plugin
  • Para la descarga del streaming: puertos HTTPS redirigidos al servidor para el host de la app y el host de streaming

Última versión

0.1.5
publicada el 20 oct 2026
Ver todos los cambios →