Por MV2 de Munim, Inc. Comprobado el 12 de octubre de 2026 con la documentación de Open WebUI y n8n y el código fuente de Ollama. Esta página se tradujo con IA del original en inglés; si hay diferencias, prevalece el original.
Errores típicos: Open WebUI muestra «Ollama: Network Problem» o «Server Connection Error», o sus registros dicen Connect call failed ('127.0.0.1', 11434). La prueba de la credencial de Ollama en n8n falla con ECONNREFUSED 127.0.0.1:11434 o ECONNREFUSED ::1:11434. Dify, Flowise y AnythingLLM dan errores parecidos de «connection refused».
La causa: dentro de un contenedor, localhost y 127.0.0.1 son el propio contenedor, no su ordenador. Por defecto, Ollama escucha en 127.0.0.1:11434 en el host, así que un contenedor que usa http://localhost:11434 está llamando a la puerta equivocada.
El arreglo rápido que dan muchas guías es OLLAMA_HOST=0.0.0.0. Funciona, pero también abre Ollama, que no tiene inicio de sesión, a todos los dispositivos de su red. Pruebe antes las soluciones de abajo.
Desde el host, compruebe que Ollama está activo: curl http://127.0.0.1:11434/api/version. Después pruebe la dirección que usa su aplicación desde dentro de un contenedor desechable:
docker run --rm --add-host=host.docker.internal:host-gateway curlimages/curl -s http://host.docker.internal:11434/api/version
Una respuesta como {"version":"0.x.y"} significa que esa URL funciona desde los contenedores. «Connection refused» o un tiempo de espera agotado significa que no; siga leyendo según su configuración. La imagen de Open WebUI incluye curl, así que también puede ejecutar docker exec open-webui curl -s http://host.docker.internal:11434/api/version.
| Su configuración | URL base en la aplicación | Notas |
|---|---|---|
| Docker Desktop (Mac o Windows), aplicación de Ollama en el host | http://host.docker.internal:11434 | Funciona sin más; Ollama puede quedarse en 127.0.0.1. Solución 1. |
| Linux, Ollama instalado en el host, aplicación en Docker | http://host.docker.internal:11434 más --add-host | Ollama también tiene que escuchar donde los contenedores lleguen. Solución 2 o 3. |
| Ollama y la aplicación en el mismo archivo Compose | http://ollama:11434 (el nombre del servicio) | La mejor opción; Ollama no necesita puerto publicado. Solución 4. |
| Ollama en Docker, aplicación instalada en el host (por ejemplo, n8n con npm) | http://127.0.0.1:11434 | Publique con -p 127.0.0.1:11434:11434. Use 127.0.0.1, no localhost, para evitar el error ::1. |
Docker Desktop ofrece host.docker.internal a todos los contenedores y lo redirige a su ordenador, así que defina la URL de Ollama de la aplicación como http://host.docker.internal:11434. En Open WebUI es la variable de entorno OLLAMA_BASE_URL (o «Admin Settings» → «Connections»). En n8n, edite la «Base URL» de la credencial de Ollama. No hace falta cambiar OLLAMA_HOST en Ollama.
docker run -d -p 127.0.0.1:3000:8080 --add-host=host.docker.internal:host-gateway \ -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \ -v open-webui:/app/backend/data --name open-webui --restart always \ ghcr.io/open-webui/open-webui:main
127.0.0.1:3000 limita Open WebUI a este ordenador. Use -p 3000:8080 solo si otros dispositivos deben abrirlo, y en ese caso desactive el registro abierto. Para usarlo desde el teléfono sin abrirlo a la red, vea Open WebUI con Tailscale Serve.
En Linux, --network=host pone el contenedor en la red del host, de modo que 127.0.0.1:11434 es de verdad el Ollama del host y Ollama puede seguir enlazado a localhost. La documentación de Open WebUI da esta solución; tenga en cuenta que el puerto pasa a ser 8080:
docker run -d --network=host \ -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \ -v open-webui:/app/backend/data --name open-webui --restart always \ ghcr.io/open-webui/open-webui:main
Abra http://localhost:8080. Con la red del host, Open WebUI escucha en el puerto 8080 como un programa normal, y aquí el cortafuegos del host (ufw, firewalld) sí se aplica. Permita el 8080 solo desde donde lo necesite.
En Linux, --add-host=host.docker.internal:host-gateway (o extra_hosts: ["host.docker.internal:host-gateway"] en Compose) apunta ese nombre a la dirección del puente de Docker, normalmente 172.17.0.1. Ollama en 127.0.0.1 no escucha ahí, así que tiene que escuchar de forma más amplia, y un cortafuegos debe dejar fuera a todos salvo a los contenedores:
sudo systemctl edit ollama.service, añada
[Service] Environment="OLLAMA_HOST=0.0.0.0:11434"y después
sudo systemctl daemon-reload && sudo systemctl restart ollama.sudo ufw allow from 172.16.0.0/12 to any port 11434 proto tcp sudo ufw deny 11434/tcpEl orden importa: la regla allow debe ir primero (
sudo ufw status numbered muestra el orden). Si ufw está activo con su «deny incoming» por defecto, la regla allow es lo único que deja entrar a los contenedores. Un contenedor bloqueado suele ver un tiempo de espera agotado en lugar de «refused».curl http://<this machine's LAN IP>:11434/api/version (con la IP de esta máquina en la red local) debería fallar ahora, mientras que la prueba del contenedor desechable de arriba funciona.A diferencia de los puertos publicados con docker -p, que se saltan ufw, Ollama instalado en el host es un programa normal, así que estas reglas de ufw sí se le aplican.
Los contenedores de la misma red de Compose se alcanzan por el nombre del servicio, así que Ollama no necesita puerto publicado y nada fuera de Docker puede llegar a él:
services:
ollama:
image: ollama/ollama
volumes: [ "ollama:/root/.ollama" ]
# no "ports:" - only containers on this network can reach it
open-webui:
image: ghcr.io/open-webui/open-webui:main
environment:
- OLLAMA_BASE_URL=http://ollama:11434
ports: [ "127.0.0.1:3000:8080" ]
volumes: [ "open-webui:/app/backend/data" ]
volumes:
ollama: {}
open-webui: {}
(El comentario del archivo dice: sin «ports:», solo los contenedores de esta red pueden alcanzarlo.) n8n, Dify, Flowise o AnythingLLM en el mismo archivo también usan http://ollama:11434. Para una GPU, añada al servicio ollama la reserva de dispositivos de la documentación de Docker de Ollama. Si la aplicación está en otro proyecto de Compose, conecte ambos a una misma red externa compartida.
ECONNREFUSED ::1:11434: localhost se resolvió a IPv6 y Ollama escucha en IPv4. La documentación de n8n sugiere 127.0.0.1 en lugar de localhost.host.containers.internal.OLLAMA_ORIGINS la bloquea; vea la comprobación del navegador (en inglés). Open WebUI, n8n y Dify llaman a Ollama desde su servidor y no necesitan OLLAMA_ORIGINS. (2) Un proxy inverso o un túnel pasa su propio nombre de host a un Ollama que escucha en 127.0.0.1. En ese modo Ollama solo acepta nombres de Host del estilo de localhost; por eso funciona host.docker.internal (termina en .internal). Haga que el proxy envíe Host: localhost:11434, como hacen los ejemplos de las preguntas frecuentes de Ollama. Tailscale Serve choca con la misma comprobación; vea por qué tailscale serve devuelve 403.Cuando se conecte, compruebe que no ha abierto más de lo que quería: ejecute el script gratuito local-ai-checkup (solo lee y no envía nada fuera de la máquina), que informa de la dirección en la que escucha Ollama, los puertos publicados de Docker y las versiones. Vea también ¿Mi Ollama está expuesto?
MV2 de Munim, Inc. ofrece una revisión de IA local de 49 USD para una máquina, o una revisión para oficinas pequeñas de 199 USD para hasta 5 máquinas o un servidor compartido de Ollama, Open WebUI o n8n. Recibe un informe escrito de lo que está expuesto, es arriesgado o va lento y qué arreglar primero, con los comandos exactos para su sistema operativo. El informe está en inglés. Vea un informe de ejemplo (en inglés). Pague 49 USD o pague 199 USD en Stripe y después envíe a munimversion2@gmail.com la salida de python3 local_ai_checkup.py --json, su sistema operativo y para qué lo usa. MV2 nunca pide contraseñas, claves ni acceso remoto.