Skip to content
BotServBotServ
CloudflareTunnelRemotoRedesSeguridadOllama

Cloudflare Tunnel: Servicios de IA sin IP pública

Cloudflare Tunnel para IA: acceso remoto seguro sin Port Forwarding. Cómo acceder a Ollama desde cualquier lugar.

S

schutzgeist

9 min read
Cloudflare Tunnel: Servicios de IA sin IP pública

Cloudflare Tunnel: Servicios de IA sin IP pública

Qué cubre este artículo

  • Qué es un Cloudflare Tunnel y por qué debería interesarte
  • Por qué a menudo no necesitas port-forwarding para servicios de IA como Ollama
  • Cómo configurar un túnel para acceder a tus servicios desde cualquier lugar
  • Qué requisitos previos y aspectos de seguridad son importantes
  • Dónde están los obstáculos típicos y cómo evitarlos

Introducción

Probablemente ya tengas Ollama funcionando en tu servidor Linux o quieras usar herramientas de IA desde cualquier lugar. Entonces surge rápidamente la pregunta de cómo hacer que tus servicios sean accesibles desde internet sin abrir completamente tu red doméstica. Tradicionalmente, configurarías port-forwarding en tu router, necesitarías una IP pública y además tendrías que gestionar certificados TLS. Eso es propenso a errores y no es precisamente amigable para principiantes.

Un Cloudflare Tunnel ofrece una alternativa moderna. Establece una conexión saliente desde tu servidor a Cloudflare. Las conexiones entrantes desde internet pasan entonces a través de la infraestructura de Cloudflare y el túnel, sin que tengas que abrir puertos públicos. Eso significa menos superficie de ataque, menos configuración en el router e incluso HTTPS automático.

En este artículo te explico paso a paso qué necesitas, cómo funciona la configuración y en qué debes fijarte. Aunque el enfoque está en servicios de IA como Ollama, puedes aplicar este conocimiento a casi cualquier servicio auto-alojado. Si quieres profundizar en el tema, encontrarás muchos artículos más en la categoría Self-Hosting. Discutimos la seguridad de red por separado en Seguridad de red y Certificados TLS.

¿Por qué Cloudflare Tunnel?

Cloudflare Tunnel forma parte de la oferta Cloudflare Zero Trust. El cliente más conocido para ello se llama cloudflared. Piensa en el túnel como una salida cifrada desde tu servidor a la red de Cloudflare. En lugar de que los visitantes accedan directamente a tu IP pública y puertos abiertos, contactan un dominio de Cloudflare. Cloudflare reenvía el tráfico a través del túnel cifrado hacia tu servidor.

Esto trae varios beneficios. No necesitas configurar port-forwarding en tu router. Tu IP pública permanece oculta. Cloudflare puede proporcionar además servicios como protección DDoS, reglas de acceso y cifrado TLS automático. Para servicios de IA locales como Ollama, esto es especialmente interesante, porque así puedes acceder a Ollama desde un portátil, tablet o teléfono sin exponer directamente tu red doméstica a internet.

Cloudflare Tunnel explicado brevemente

cloudflared es un pequeño programa que instalas en tu servidor. Establece una conexión saliente a Cloudflare y se autentica con un token que generas previamente. Después, en la interfaz de Cloudflare Zero Trust puedes especificar qué dominio debe reenviarse a qué servicio local.

Un ejemplo: Ollama se ejecuta en tu servidor en el puerto 11434. Creas en el túnel un nombre de host público como ollama.example.de y lo reenvías a http://localhost:11434. A partir de ahora, Ollama es accesible bajo ese dominio. Todo funciona sobre HTTPS, siempre que tu dominio esté en Cloudflare y tengas un certificado válido configurado.

¿Para quién está pensado este artículo?

Este artículo va dirigido a principiantes que ya tienen un servidor local o alquilado en funcionamiento y quieren hacer que sus herramientas de IA u otros servicios auto-alojados sean accesibles a través de internet. Deberías sentirte cómodo con la línea de comandos y estar dispuesto a ejecutar algunos comandos en tu terminal de Linux. No necesitas conocimientos de programación obligatoriamente, pero tener nociones básicas de Docker o systemctl es útil.

Si buscas más bien una solución sin usar un servicio externo, quizá Tailscale te interese más. Cloudflare Tunnel sin embargo se configura muy rápidamente y no requiere software VPN adicional en los dispositivos finales.

Conceptos importantes

ConceptoSignificado
TunnelUna conexión cifrada entre tu servidor y una red externa, en este caso Cloudflare.
cloudflaredEl cliente oficial de Cloudflare Tunnel que establece la conexión.
SalienteConexiones que se originan desde tu red hacia afuera.
Port-ForwardingConfiguración del router que reenvía conexiones entrantes a una máquina local.
Reverse ProxyUn servicio que reenvía solicitudes externas a servicios internos, como Nginx o el propio Cloudflare.
TLSTransport Layer Security, es decir, la conexión cifrada por HTTPS.
Nombre de host públicoUn dominio públicamente accesible que apunta a un servicio interno.
Regla de accesoUna regla que determina quién puede acceder a un túnel o servicio.

Requisitos previos para tu primer Cloudflare Tunnel

Antes de empezar, necesitas varias cosas. Necesitas tu propio dominio que gestiones en Cloudflare. Esto cuesta algo en la mayoría de dominios de nivel superior, o puedes usar un subdominio gratuito que gestiones en otro lugar. Para comenzar, es suficiente un dominio de pago de un registrador económico que apuntes a Cloudflare.

En tu servidor debería ejecutarse un sistema Linux como Ubuntu o Debian. Necesitas permisos de root o una cuenta con permisos sudo. Asegúrate de que tu servidor tenga una conexión a internet estable y permita conexiones HTTPS salientes. Los puertos de Cloudflare como 443 para TCP y 7844 para UDP deberían funcionar. En la mayoría de redes domésticas y servidores en la nube, esto no es un problema.

En el panel de Cloudflare, bajo Zero Trust, creas un nuevo túnel. Recibirás un token que necesitarás en tu servidor. Guárdalo en un lugar seguro, porque con este token cloudflared puede autenticarse en tu cuenta.

Instalar cloudflared

La forma más sencilla es la instalación desde el repositorio oficial. Para Debian y Ubuntu, usa los siguientes comandos. Ejecútalos en tu terminal:

# Agregar la clave GPG de Cloudflare y el repositorio
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg

echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | \
  sudo tee /etc/apt/sources.list.d/cloudflared.list

sudo apt-get update && sudo apt-get install -y cloudflared

A continuación, te autenticas con el token que generaste en el panel:

sudo cloudflared service install VUESTRO_TOKEN_AQUI

Eso es todo. El servicio se inicia, establece el túnel y es visible en el panel. Asegúrate de reemplazar el marcador VUESTRO_TOKEN_AQUI con el token real.

Exponer Ollama a través de una Dominio

Una vez que cloudflared está en funcionamiento, accede al Panel de Control de Cloudflare Zero Trust y ve a tu túnel para configurar un nombre de host público. Selecciona HTTP como tipo e ingresa localhost:11434 como URL, siempre que Ollama se ejecute localmente en el mismo servidor. Si Ollama corre en un contenedor Docker, proporciona la dirección IP del contenedor o el nombre interno de Docker, por ejemplo http://ollama:11434.

Guarda la configuración. En unos pocos segundos, ollama.example.de será accesible, siempre que el subdominio ya apunte a Cloudflare por DNS. Cloudflare se encarga del certificado TLS, así que no necesitas administrar certificados por tu cuenta.

Si no deseas permitir que cualquiera acceda, habilita las Access Rules en el panel. De esta forma defines qué direcciones de correo específicas, rangos de IP o usuarios autenticados pueden acceder al servicio. Para una instancia de Ollama que solo usas tú, es altamente recomendable.

Seguridad y Control de Acceso

Aunque un túnel no abre puertos entrantes, eso no lo hace automáticamente seguro al máximo. Cloudflare se posiciona entre tu servidor y el visitante. Esto protege contra muchos ataques, pero aún así hay algunas cosas que debes considerar.

Lo mejor es habilitar siempre las Access Rules para que no cualquiera en Internet encuentre tu interfaz de Ollama. Usa contraseñas robustas para tu cuenta de Cloudflare y activa Multi-Factor-Authentifizierung. Restringe el servicio Ollama local para que solo escuche en localhost o interfaces internas. De esta forma tu red doméstica permanece protegida incluso si cometes un error de configuración.

Encontrarás más información sobre conceptos de reverse proxy en el artículo Reverse Proxy. Para entender el cifrado, vale la pena consultar TLS Zertifikate.

Problemas Comunes

  1. Pierdes el token: Guarda el token en un lugar seguro cuando crees el túnel. Sin él, necesitarás reinstalar el servicio cloudflared.

  2. Tu dominio no está en Cloudflare: El túnel funciona más fácilmente cuando tu dominio está hospedado en Cloudflare. Los dominios externos requieren pasos adicionales.

  3. URL interna incorrecta: Si ingresas localhost:11434 pero Ollama corre en un contenedor, cloudflared no podrá encontrar el servicio. Usa entonces el nombre del contenedor Docker o la IP del puente.

  4. Límites de la cuenta de Cloudflare: La versión gratuita de Zero Trust ofrece muchas funciones, pero con muchos usuarios o datos de registro pueden surgir costos. Verifica esto antes de implementarlo.

  5. El servicio no inicia: Después de cloudflared service install debes verificar el servicio con systemctl status cloudflared. Los permisos insuficientes o un token incorrecto son causas frecuentes.

  6. Ollama bloquea solicitudes externas: Por defecto, Ollama se vincula solo a 127.0.0.1 o 0.0.0.0, dependiendo de la configuración. Asegúrate de que cloudflared pueda alcanzar el host correcto.

  7. Configuración DNS incorrecta: El nombre de host público requiere una zona DNS correcta en Cloudflare. Si falta el CNAME o es incorrecto, obtendrás errores de DNS.

  8. Acceso sin Access Rule: Sin una Access Rule, tu servicio es públicamente accesible. Si no es intencional, configura al menos una regla basada en correo electrónico.

Hardware, Costos y Seguridad

Cloudflared consume muy pocos recursos. Ya funciona sin problemas en una Raspberry Pi 4 o un VPS pequeño. Si usas Ollama simultáneamente, naturalmente necesitarás suficiente RAM y posiblemente una GPU según el modelo. Pero para el túnel puro, cualquier servidor que ejecute Debian o Ubuntu es suficiente.

Los costos provienen del dominio y posiblemente de servicios adicionales de Cloudflare. La mayoría de los escenarios simples se pueden implementar en el nivel gratuito de Zero Trust. Localmente solo tienes costos de electricidad u hosting. Un VPS pequeño cuesta a menudo unos pocos euros al mes, una Raspberry Pi en tu red doméstica solo electricidad.

En términos de seguridad, reduces significativamente la superficie de ataque porque no es necesario hacer redirección de puertos. Sin embargo, debes utilizar Cloudflare Access, autenticación robusta y una configuración limpia de Ollama localmente.

Enlaces Útiles

Preguntas Frecuentes

  1. ¿Es Cloudflare Tunnel gratuito?
    Sí, la capa gratuita de Zero Trust es suficiente para las funciones básicas e incluso muchas Access Rules.

  2. ¿Necesito una dirección IP pública?
    No. Cloudflare establece la conexión de manera saliente. Tu dirección IP pública permanece oculta.

  3. ¿Funciona también con Ollama?
    Sí. Solo rediriges el dominio al puerto local de Ollama. Puedes encontrar más detalles en Acceso de Red de Ollama.

  4. ¿Debo cambiar algo en el router?
    Por lo general, no. Solo deben ser posibles las conexiones salientes en los puertos 443 y 7844, que es estándar.

  5. ¿Cuál es la diferencia respecto a una VPN?
    Una VPN conecta redes o dispositivos completos. Un túnel publica servicios individuales a través de un dominio.

  6. ¿HTTPS está incluido automáticamente?
    Sí, si tu dominio está en Cloudflare y está establecido como proxied. Cloudflare se encarga de TLS.

  7. ¿Puedo dirigir varios servicios a través del mismo túnel?
    Sí. Solo creas múltiples nombres de host públicos en el mismo túnel.

  8. ¿Cuán seguro es todo esto?
    Mucho más seguro que la redirección de puertos. Con Access Rules adicionales, solo los usuarios autorizados pueden acceder.

  9. ¿Se puede implementar en Docker?
    Sí. Cloudflared existe como imagen oficial de Docker. Solo necesitas pasar el volumen del token o la variable de entorno.

  10. ¿Qué sucede si mi servidor se desconecta?
    El servicio no será accesible. El túnel se cierra hasta que el cliente esté en línea nuevamente.

  11. ¿Puedo tunelizar tráfico UDP también?
    Cloudflare admite UDP, pero hay configuraciones especiales e incluso algunas limitaciones.

  12. ¿Necesito dominar Linux?
    Conocimientos básicos son suficientes. La mayoría de los pasos se pueden hacer copiando y pegando.

Fuentes

  • Documentación de Cloudflare Tunnel: cloudflare.com/developers
  • Repositorio cloudflared en GitHub
  • Centro de Aprendizaje de Cloudflare Zero Trust
  • Documentación oficial de Ollama: ollama.com
  • Blog de Cloudflare: Modelos de Redes Zero Trust
Volver al blog
Share:

Entradas relacionadas