Servicio que crea un túnel público a tu localhost. Guía Completa: LocalWP + ngrok
Guía Completa: LocalWP + ngrok
¿Qué es ngrok?
Servicio que crea un túnel público a tu localhost. Más simple que Cloudflare Tunnel para empezar.
Paso 1: Instalar LocalWP
- Descarga desde: https://localwp.com
- Instala (Windows/Mac/Linux)
- Crea un nuevo sitio WordPress:
- Click en "+ Add Local Site"
- Nombre:
cliente-demo - Usa configuración por defecto
- Inicia el sitio (botón Start site)
Paso 2: Instalar ngrok
Windows:
Opción A - Descarga directa:
- Ve a https://ngrok.com/download
- Descarga el
.zippara Windows - Extrae
ngrok.exeen una carpeta (ej:C:\ngrok\) - Añade esa carpeta al PATH o úsalo desde ahí
Opción B - Con Chocolatey:
choco install ngrok
macOS:
brew install ngrok/ngrok/ngrok
Linux:
curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | \ sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && \ echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | \ sudo tee /etc/apt/sources.list.d/ngrok.list && \ sudo apt update && sudo apt install ngrok
Paso 3: Crear Cuenta en ngrok (Gratis)
- Ve a https://dashboard.ngrok.com/signup
- Regístrate gratis
- Ve a Your Authtoken: https://dashboard.ngrok.com/get-started/your-authtoken
- Copia tu token
Paso 4: Conectar ngrok con tu cuenta
ngrok config add-authtoken TU_TOKEN_AQUI
Ejemplo:
ngrok config add-authtoken 2abcd1234efgh5678ijkl9012mnop3456
Paso 5: Encontrar el Puerto de LocalWP
Método 1 - Desde LocalWP:
- Click derecho en tu sitio
- "Open Site Shell"
- Mira la URL que aparece en el navegador
- Anota el puerto (suele estar después de
localhost:)
Método 2 - Archivo de configuración:
- En LocalWP, click en el sitio
- Ve a la pestaña "Overview"
- Busca "Site Domain" - ejemplo:
cliente-demo.local - El puerto suele ser el estándar: 80
Método 3 - Mirar en la URL:
Si la URL es http://cliente-demo.local, el puerto es 80 Si es http://localhost:10005, el puerto es 10005
Paso 6: Iniciar ngrok
Abre una terminal/CMD y ejecuta:
ngrok http PUERTO
Ejemplos según tu configuración:
Si LocalWP usa puerto 80:
ngrok http 80
Si LocalWP usa puerto específico (ej: 10005):
ngrok http 10005
Si tu sitio es https en local:
ngrok http https://localhost:PUERTO
Paso 7: Obtener la URL Pública
Después de ejecutar ngrok, verás algo así:
ngrok Session Status online
Account [email protected]
Version 3.x.x
Region Europe (eu)
Latency 15ms
Web Interface http://127.0.0.1:4040
Forwarding https://abc123def.ngrok-free.app -> http://localhost:80 Connections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00
Tu URL pública es: https://abc123def.ngrok-free.app
Paso 8: Configurar WordPress para la Nueva URL
Opción 1: Plugin wp-cli desde LocalWP (Más fácil)
- Click derecho en tu sitio en LocalWP
- "Open Site Shell"
- Ejecuta:
wp search-replace 'http://cliente-demo.local' 'https://abc123def.ngrok-free.app' --all-tables
Opción 2: Editar wp-config.php
- En LocalWP, click derecho → "Go to Site folder"
- Abre
app/public/wp-config.php - Añade ANTES de
/* That's all, stop editing! */:
// Configuración para ngrok
if (isset($_SERVER['HTTP_X_ORIGINAL_HOST'])) { define('WP_HOME', 'https://' . $_SERVER['HTTP_X_ORIGINAL_HOST']); define('WP_SITEURL', 'https://' . $_SERVER['HTTP_X_ORIGINAL_HOST']); $_SERVER['HTTPS'] = 'on';
}
Opción 3: Plugin Better Search Replace
- Instala "Better Search Replace" desde el admin de WordPress
- Ve a Herramientas → Better Search Replace
- Buscar:
http://cliente-demo.local - Reemplazar con:
https://tu-url.ngrok-free.app - Selecciona todas las tablas
- ✅ Marca "Run as dry run" primero (prueba)
- Si todo OK, desmarca y ejecuta de verdad
Paso 9: Compartir con el Cliente
Simplemente envía la URL:
https://abc123def.ngrok-free.app
Nota: En el plan gratuito, los visitantes verán una página de advertencia de ngrok antes. Click en "Visit Site" para continuar.
Plan Gratuito vs Pagado
Plan Gratuito (suficiente para demos):
✅ Túneles ilimitados
✅ HTTPS automático
✅ 40 conexiones/minuto
⚠️ URL cambia cada vez que reinicias ngrok
⚠️ Página de advertencia para visitantes
⚠️ Sesión expira a las 2 horas (puedes reiniciar)
Plan Paid ($8/mes):
✅ URLs personalizadas fijas: cliente1.tudominio.ngrok.app
✅ Sin página de advertencia
✅ Sin límite de tiempo
✅ Más conexiones simultáneas
Comandos Útiles
Especificar región:
ngrok http 80 --region eu
Con subdominio personalizado (requiere plan de pago):
ngrok http 80 --domain=cliente-demo.ngrok.app
Ver todas las peticiones HTTP:
Ve a: http://localhost:4040 (Interfaz web de ngrok para debugging)
Ejecutar en background:
Linux/Mac:
ngrok http 80 > /dev/null &
Windows: Usa otra ventana de CMD
Flujo de Trabajo Completo
Primera vez con un cliente:
- Crear sitio en LocalWP
Nombre: cliente-acme - Iniciar el sitio
- Click en "Start site" en LocalWP
- Desarrollar el sitio
- Instala tema, plugins, contenido
- Cuando el cliente quiera verlo:
ngrok http 80 - Configurar WordPress:
# En LocalWP → Open Site Shell: wp search-replace 'http://cliente-acme.local' 'https://URL-NGROK' --all-tables - Enviar URL al cliente
- Después de la demo:
- Ctrl+C para cerrar ngrok
- Revertir URLs:
wp search-replace 'https://URL-NGROK' 'http://cliente-acme.local' --all-tables
Trucos y Tips
1. Mantener URL fija en plan gratuito
Guarda tu URL en un archivo de texto cada vez:
ngrok http 80 | tee ngrok-url.txt
2. Script para automatizar (Windows PowerShell):
Crea iniciar-demo.ps1:
# Iniciar ngrok
Start-Process powershell -ArgumentList "ngrok http 80"
Start-Sleep -Seconds 3 # Obtener URL
$url = Invoke-RestMethod http://localhost:4040/api/tunnels | Select-Object -ExpandProperty tunnels | Select-Object -ExpandProperty public_url -First 1 # Mostrar URL
Write-Host "URL para el cliente: $url" -ForegroundColor Green # Copiar al portapapeles
Set-Clipboard $url
Write-Host "URL copiada al portapapeles!" -ForegroundColor Yellow
3. Script para Linux/Mac:
Crea iniciar-demo.sh:
#!/bin/bash
# Iniciar ngrok en background
ngrok http 80 &
sleep 3 # Obtener y mostrar URL
URL=$(curl -s http://localhost:4040/api/tunnels | jq -r '.tunnels[0].public_url')
echo "URL para el cliente: $URL" # Copiar al portapapeles (Mac)
echo $URL | pbcopy
echo "URL copiada al portapapeles!"
4. Configuración permanente en wp-config.php:
// Detectar si estamos en ngrok
if (strpos($_SERVER['HTTP_HOST'], 'ngrok') !== false) { define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']); define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']); $_SERVER['HTTPS'] = 'on';
}
Así no necesitas hacer search-replace cada vez.
Solución de Problemas
Error: "command not found: ngrok"
- Verifica que ngrok esté instalado correctamente
- En Windows, usa la ruta completa:
C:\ngrok\ngrok.exe http 80
El sitio se ve sin CSS/JS:
- Haz el search-replace de URLs correctamente
- Añade el código de wp-config.php para detectar ngrok
"Too many redirects":
Añade en wp-config.php:
$_SERVER['HTTPS'] = 'on';
Puerto ocupado:
Cambia el puerto:
ngrok http 8080
ngrok se cierra solo:
- En plan gratuito, las sesiones expiran a las 2 horas
- Simplemente reinicia:
ngrok http 80
Comparación: ngrok vs Cloudflare Tunnel
| Característica | ngrok (gratis) | Cloudflare Tunnel |
|---|---|---|
| Instalación | Más simple | Un poco más compleja |
| Configuración inicial | 2 minutos | 5-10 minutos |
| URL fija | ❌ (cambia) | ✅ Con dominio |
| Página advertencia | ✅ Sí | ❌ No |
| Límite de tiempo | 2 horas/sesión | Sin límite |
| Interfaz debug | ✅ Excelente | ❌ No |
| Ideal para | Demos rápidas | Uso permanente |
Resumen Ultra Rápido
# 1. Instalar ngrok
brew install ngrok/ngrok/ngrok # Mac
# o descarga desde ngrok.com # 2. Conectar cuenta
ngrok config add-authtoken TU_TOKEN # 3. Iniciar LocalWP
# Click en "Start site" # 4. Exponer a internet
ngrok http 80 # 5. Compartir la URL que aparece
https://abc123.ngrok-free.app
¡Listo en menos de 5 minutos! 🚀
Temas relacionados
¿Tienes un proyecto en mente?
Transformemos tus ideas en una realidad digital excepcional.
Artículos Relacionados

Cómo elegir tu Arquitectura Web en 2026
El surgimiento de la Arquitectura de Islas La Arquitectura de Islas representa un cambio fundamental en el desarrollo we ...

Vinext y la Revolución de Next.js en el Edge
El nacimiento de Vinext y el fin de una era Vinext surge como una respuesta directa a los problemas de despliegue de Nex ...

El Futuro de la Web: WordPress 2026 y la Revolución de los CMS Agénticos
Descubre cómo WordPress 2026 transforma el diseño web con IA, eliminando los constructores visuales y apostando por la s ...

OpenClaw: La Revolución del Agente de IA Personal y el Regreso de un Clásico
OpenClaw se ha posicionado en 2026 como una de las herramientas más disruptivas en el ecosistema de la inteligencia arti ...
