Contenido detallado
🌐 El problema: usar tus modelos desde cualquier lugar
El modelo está funcionando de maravilla — solo que en la máquina de casa. Sales y queda encerrado detrás de tu router. El instinto equivocado es abrir un puerto en el router (port-forward) y apuntar a internet. Eso deja tu PC expuesta al mundo entero: cualquier bot que explore internet encuentra el puerto abierto en minutos.
🆕 ¿Eres nuevo por aquí?
"Puerto" es un número que identifica un servicio en una máquina (Ollama atiende en el 11434). "Redirección de puertos" es pedirle al router que reenvíe ese puerto a la internet pública; es cómodo, pero equivale a abrir la ventana de tu casa a la calle. "VPN" es un túnel cifrado que conecta máquinas como si estuvieran en la misma red local.
✗ Abrir puertos en el router
- ✗Tu PC queda visible para todo internet
- ✗Los bots rastrean e intentan vulnerar el puerto abierto
- ✗Depende de una IP fija / DNS dinámico y de una configuración frágil
- ✗Sin cifrado de extremo a extremo por defecto
✓ Red privada (Tailscale)
- ✓Ningún puerto expuesto a la Internet pública
- ✓Solo tus dispositivos con sesión iniciada pueden ver el modelo
- ✓Funciona detrás de cualquier router, sin IP fija
- ✓Tráfico cifrado de extremo a extremo
🕸️ Qué es Tailscale
Tailscale es una VPN mesh: en lugar de que todos pasen por un servidor central, cada dispositivo habla directamente con los demás, en un túnel cifrado. Instalas, inicias sesión con la misma cuenta en cada dispositivo y listo: forman una red privada llamada tailnet, como si estuvieran conectados al mismo switch.
🆕 ¿Eres nuevo por aquí?
- VPN mesh: red en la que cada par de dispositivos se comunica punto a punto, sin un servidor intermediario que congestione el tráfico.
- WireGuard: el protocolo de túnel cifrado, moderno y ligero que Tailscale usa internamente: rápido y auditado.
- tailnet: el nombre de tu red privada: el conjunto de todos tus dispositivos con sesión iniciada en la misma cuenta.
🔑 La idea central
Cada dispositivo en la tailnet obtiene una dirección fija y estable en el rango 100.x.y.z. Esta IP funciona desde cualquier lugar del mundo —en casa, con 4G, en el Wi-Fi de un café— y siempre apunta al mismo dispositivo, con tráfico cifrado.
- •Punto a punto: los datos van directamente entre tus dispositivos (WireGuard), sin desvíos.
- •Cero configuración de red: atraviesa NAT y firewall por sí solo; no hace falta abrir puertos en el router.
- •Identidad, no contraseña: inicias sesión con tu cuenta (Google, GitHub...), y solo ingresan tus dispositivos.
Los cuatro dispositivos (en azul) están interconectados en la misma tailnet — las líneas punteadas muestran que la conversación es directa, entre pares. El modelo (en cian) funciona en la PC con GPU y, al estar en la red, cualquier dispositivo con sesión iniciada puede acceder a ella por la IP 100.x.
⚙️ Instalar e iniciar sesión
Incorporar un dispositivo a la tailnet tres pasos: instala el cliente, inicia Tailscale y autentícate. Hazlo en cada máquina que quieras en la red (PC, servidor, laptop); el celular usa la app de la tienda.
Instalar el cliente
Un solo script funciona en Linux y macOS. En Windows, descarga el instalador en tailscale.com/download.
Iniciar y autenticar
tailscale up abre un enlace en el navegador; inicias sesión con tu cuenta (Google/GitHub/Microsoft) y el dispositivo se une a la tailnet.
Anotar la IP de la tailnet
Cada máquina obtiene un 100.x.y.z. Esta es la dirección que usarás para acceder a ella desde cualquier lugar.
⌨️ Ejemplo práctico: instalar e iniciar Tailscale
Objetivo: conectar esta máquina (Linux/macOS) a tu red privada. Pega en la terminal, una línea a la vez.
Cómo verificar: o tailscale ip -4 debe imprimir una dirección que empiece con 100. (ej.: 100.115.92.14). Ejecuta tailscale status para listar todos tus dispositivos en línea — si aparecen, la tailnet está activa.
💡 Consejo práctico
En una máquina que siempre está encendida (tu servidor/PC del modelo), usa sudo tailscale up --ssh para también poder acceder por SSH desde cualquier lugar de la tailnet — sin abrir ningún puerto. Y activa la opción de clave que no expira en el panel de administración para no tener que volver a autenticar ese host a cada rato.
📡 Acceder al modelo por la red
Por defecto, Ollama solo escucha en localhost — es decir, solo la propia máquina puede verlo. Para que otros dispositivos de la tailnet llamen al modelo, haces que Ollama escuche en todas las interfaces con OLLAMA_HOST=0.0.0.0. Entonces, cualquier dispositivo con sesión iniciada se comunica con él por la IP 100.x del host.
🎯 El flujo, en dos máquinas
- •En el host del modelo (PC + GPU): inicia Ollama escuchando en la red y descubre la IP 100.x de él.
- •En el otro dispositivo (laptop): llama a la API de Ollama en esa IP 100.x:11434 — como si el modelo se ejecutara localmente.
⌨️ Ejemplo práctico: exponer Ollama en la tailnet y acceder desde otro device
Objetivo: ejecutar el modelo en una máquina y usarlo desde otra, a través de la red privada.
Cómo verificar: o curl del laptop debe devolver un JSON con el campo response completado. Si se bloquea, comprueba: (a) que el host respondió a tailscale status? (b) el firewall del host permite el puerto 11434 ¿en la interfaz de la tailnet? Una prueba rápida: curl http://100.115.92.14:11434/api/tags debe listar los modelos instalados.
🔌 El truco
Con esto, cualquier herramienta que se comunique con la API de Ollama (Open WebUI, scripts Python, tus agentes de la Trilha 4) pasa a apuntar a la IP 100.x en lugar de localhost — y funciona estés donde estés. El modelo se convierte en un servicio de tu red privada.
📱 Del celular a la laptop
Aquí el truco se vuelve concreto: instala la app Tailscale en el celular (App Store / Play Store), inicia sesión con la misma cuenta, y el teléfono se conecta a la tailnet. Ahora, desde la calle y con 4G, abres una interfaz de chat apuntada a la IP 100.x de casa y conversa con tu modelo — ejecutándose en tu GPU, sin nube ni puertos abiertos.
App en el celular
Instala Tailscale, activa la VPN e inicia sesión con la misma cuenta. El teléfono obtiene su propia IP 100.x.
Apunta al host de casa
En el navegador del celular (o en una app de chat de LLM), usa http://100.x.y.z:11434 — la IP de tu PC con GPU, o la interfaz Open WebUI de la Trilha 3 alojada allí.
Úsalo desde cualquier lugar
Funciona en el Wi-Fi del café, con 4G, en casa de un amigo. La tailnet te sigue; el modelo se queda en casa.
💡 Consejo práctico
Activa el MagicDNS en el panel de Tailscale: en vez de memorizar 100.115.92.14, accedes al host con un nombre fácil de recordar, como http://pc-gpu:11434. Más fácil de recordar y no cambia si cambia la IP.
🛡️ Seguridad y ACLs
La tailnet ya es privada — pero puedes reforzarla aún más. El principio es privilegio mínimo: cada dispositivo solo accede a lo que necesita. En una red con pocos dispositivos tuyos esto importa poco; cuando agregues la máquina de un colega o un servidor compartido, las ACLs se volvieron esenciales.
🆕 ¿Eres nuevo por aquí?
- MagicDNS: recurso que asigna nombres (en vez de IP) a tus dispositivos dentro de la tailnet — pc-gpu en lugar de 100.x.y.z.
- ACL (Access Control List): reglas que indican quién puede comunicarse con quién en la tailnet; p. ej.: "el celular puede acceder al puerto 11434 de PC-GPU, y solo a ese".
⚠️ Alerta de seguridad
- •No expongas Ollama a la internet pública. OLLAMA_HOST=0.0.0.0 es seguro porque solo la tailnet puede acceder a la máquina; nunca combines esto con el redireccionamiento de puertos en el router.
- •Siempre, el menor privilegio. Si compartes la tailnet con otra persona, usa ACL para habilitar solo el puerto del modelo, no todo el dispositivo.
- •El modelo no tiene inicio de sesión. La API de Ollama no pide contraseña; tu única barrera es la red. Mantén la tailnet cerrada a quienes no sean de confianza.
✓ Buenas prácticas de red
- ✓Acceso solo por la tailnet, sin abrir puertos en el router
- ✓ACL que permite solo el puerto del modelo
- ✓MagicDNS para nombres estables y legibles
- ✓Revisar los dispositivos en el panel; eliminar los que no usas
✗ Receta para problemas
- ✗Redirección del puerto 11434 a la internet pública
- ✗Tailnet abierta con acceso total entre todos
- ✗Invitar a gente sin restringir por ACL
- ✗Creer que "0.0.0.0" basta sin entender quién escucha
⌨️ Ejemplo práctico: una ACL de mínimo privilegio
Objetivo: dejar que solo tus dispositivos accedan al puerto 11434 del host del modelo. Edítalo en el panel de administración de Tailscale (Access controls).
Cómo verificar: marca el host del modelo con la etiqueta modelo en el panel; después, desde un dispositivo autorizado, el curl 100.x:11434/api/tags responde — y si la conexión proviene de un dispositivo fuera de la regla, se rechaza. Mínimo privilegio en la práctica.
Autoevaluación (opcional): ¿cuál es la forma recomendada de acceder a tu modelo local cuando estás fuera de casa?
📌 Resumen del módulo
Siguiente:
Ruta 3 — Instalación y técnicas. Completaste la Ruta 2: hardware elegido, base lista y red privada en marcha. Ahora es hora de instalar el primer modelo y dominar las técnicas.