Documentación de Chantunn
Guía completa para utilizar Chantunn, la plataforma de túneles reverso que permite exponer servicios locales a internet sin necesidad de configurar un router o contratar una IP pública estática.
¿Qué es un túnel reverso?
Un túnel reverso es una conexión de red que permite a un cliente (tu PC) expuestar servicios locales a través de un servidor intermediario. En lugar de configurar puertos en tu router (que muchas veces no es posible debido al CGNAT), tu PC inicia una conexión saliente hacia nuestros servidores, y el tráfico entrante se redirige a través de esa conexión.
Sin configuración de router
No necesitas acceder a tu router ni configurar port forwarding.
Conexiones seguras
Todas las conexiones usan HTTPS y autenticación por token.
Configuración en segundos
Un solo comando y tu servicio está disponible en internet.
Conceptos Fundamentales
1 Subdominio
Es el nombre único que identifica tu túnel. Cuando creas un túnel con el nombre
miapp, tu servicio estará disponible en
https://miapp.chantunn.com.
Restricciones: Solo letras minúsculas, números y guiones. Debe ser único en toda la plataforma. Longitud máxima: 63 caracteres.
2 Token de Acceso
Es tu credencial única de autenticación. Se genera automáticamente al crear una cuenta y es necesario para establecer cualquier túnel. Funciona como una contraseña que identifica quién eres y a qué túneles tienes acceso.
Importante: El token no puede recuperarse si se pierde. Guárdalo en un lugar seguro. Si lo pierdes, deberás crear una nueva cuenta.
3 Puerto Local
Es el puerto en tu computadora donde está corriendo el servicio que quieres exponer.
Por ejemplo, si tu aplicación React corre en http://localhost:3000,
el puerto local es 3000.
4 Tipo de Túnel
HTTP (Predeterminado)
Para aplicaciones web, APIs REST, servidores HTTP. Soporta HTTPS automático y headers HTTP completos.
TCP
Para protocolos arbitrarios: SSH, bases de datos, FTP, etc. Se asigna un puerto público fijo.
Cómo Funciona
Chantunn utiliza una arquitectura de túnel reverso compuesta por dos componentes principales: un servidor con IP pública y un cliente que corre en tu PC local.
Arquitectura
┌─────────────────┐ ┌──────────────────────────┐ ┌─────────────────┐ │ │ HTTPS │ │ Túnel seguro │ │ │ Navegador │────────────────▶ │ Servidor Chantunn │ ◀───────────────▶ │ Tu PC (Local) │ │ (Público) │ │ │ │ │ └─────────────────┘ │ ┌─ Proxy HTTP │ │ Cliente │ │ ├─ Panel Web / API │ │ Chantunn │ │ └─ Control Plane (túnel) │ │ │ │ └──────────────────────────┘ │ ▼ │ │ Servicio local │ │ (puerto 3000) │ └─────────────────┘
Servidor
Se instala en un VPS con IP pública (o lo proporcionamos nosotros en chantunn.com). Tiene tres funciones:
-
●
Proxy HTTP: Recibe el tráfico web público (ej:
miapp.chantunn.com) y lo enruta al túnel correcto. - ● Panel Web / API: Interfaz donde creas tu cuenta, gestionas túneles y descargas el cliente.
- ● Control Plane: Gestiona las conexiones persistentes con los clientes. Aquí se establece el túnel.
Cliente
Se ejecuta en tu computadora local. Su función es simple:
- ● Inicia una conexión saliente hacia el servidor (no necesitas abrir puertos en tu router).
- ● Mantiene el túnel abierto y reenvía el tráfico que llega del servidor hacia tu servicio local.
- ● Se reconecta automáticamente si se pierde la conexión.
Flujo de Conexión paso a paso
Creas una cuenta
Desde el panel web o la API, registras tu email y recibes un token de autenticación.
# Ejemplo: crear cuenta via API
$ curl -X POST https://chantunn.com/register \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]", "password": "tu_password"}'
Ejecutas el cliente en tu PC
El cliente se conecta al servidor, se autentica con tu token y crea el túnel automáticamente. Elige un nombre único para tu túnel (ej: miapp). Esta conexión es saliente desde tu PC — no necesitas abrir puertos.
$ ./chantunn-client --server=tunnel.chantunn.com:19500 miapp TU_TOKEN 3000
✓ Conectado al servidor
✓ Túnel activo: https://miapp.chantunn.com → localhost:3000
Un visitante accede a tu URL
Cuando alguien visita https://miapp.chantunn.com, la petición llega al Proxy HTTP del servidor.
El servidor enruta al túnel correcto
El proxy identifica el subdominio (miapp) y reenvía la petición a través del túnel establecido con tu cliente.
Tu PC recibe la petición y responde
El cliente en tu PC recibe la petición del túnel y la reenvía a tu servicio local (ej: localhost:3000). La respuesta viaja de vuelta por el mismo camino: tu servicio → cliente → servidor → visitante.
Resumen del flujo
Tipos de Túnel
Túnel HTTP
Para aplicaciones web, APIs REST, webhooks y cualquier servicio HTTP/HTTPS
El tipo más común. El servidor actúa como proxy reverso HTTP: inspecciona el header Host de cada petición para identificar a qué túnel enviarla.
Características:
- ✓ HTTPS automático a través de Cloudflare
- ✓ Subdominio personalizado (ej:
miapp.chantunn.com) - ✓ Headers HTTP completos preservados
- ✓ Ideal para: React, Next.js, Django, Flask, Express, Laravel, APIs REST
# Exponer una app web en el puerto 3000
$ ./chantunn-client --server=tunnel.chantunn.com:19500miapp TU_TOKEN 3000
# Exponer una API en el puerto 8080
$ ./chantunn-client --server=tunnel.chantunn.com:19500miapi TU_TOKEN 8080
Túnel TCP
Para cualquier protocolo que use TCP: SSH, bases de datos, FTP, servidores de juegos
Funciona a nivel de socket TCP puro. El servidor asigna un puerto público fijo (se mantiene al reconectar) y todo el tráfico que llega a ese puerto se reenvía directamente a tu servicio local.
Características:
- ✓ Puerto público fijo asignado automáticamente
- ✓ Cualquier protocolo TCP soportado
- ✓ Conexión directa socket-a-socket
- ✓ Ideal para: SSH, PostgreSQL, MySQL, Redis, Minecraft, FTP
# Exponer SSH (puerto 22)
$ ./chantunn-client --server=tunnel.chantunn.com:19500--type=tcp missh TU_TOKEN 22
✓ Puerto TCP asignado: 10234
# Ahora puedes conectar desde cualquier lugar:
$ ssh -p 10234 [email protected]
# Exponer PostgreSQL (puerto 5432)
$ ./chantunn-client --server=tunnel.chantunn.com:19500--type=tcp midb TU_TOKEN 5432
Seguridad: El puerto TCP queda expuesto públicamente. Asegúrate de que tu servicio local tenga autenticación fuerte (ej: claves SSH en vez de password, contraseñas robustas en bases de datos).
La clave: conexión saliente
El cliente siempre inicia la conexión desde tu PC hacia el servidor. Esto significa que funciona incluso si estás detrás de CGNAT, firewalls corporativos o redes restrictivas. No necesitas abrir puertos, configurar tu router ni tener IP pública.
Instalación
🪟 Windows
Método 1: Instalación Manual
- Descarga el archivo: chantunn-client-windows-amd64.exe
- Crea una carpeta:
C:\Program Files\Chantunn\ - Mueve el archivo descargado a esa carpeta
- Agrega esa carpeta a tu variable de entorno PATH
Método 2: PowerShell (Automático)
# Crear directorio
New-Item -ItemType Directory -Force -Path "C:\Program Files\Chantunn"
# Descargar
Invoke-WebRequest `
-Uri "https://chantunn.com/static/downloads/chantunn-client-windows-amd64.exe" `
-OutFile "C:\Program Files\Chantunn\chantunn-client.exe"
# Agregar al PATH (requiere reiniciar terminal)
[Environment]::SetEnvironmentVariable(
"Path",
$env:Path + ";C:\Program Files\Chantunn",
"User"
)
⚠️ Desbloquear archivo (IMPORTANTE)
Windows Defender SmartScreen puede bloquear el archivo. Haz clic derecho → Propiedades → Marcar "Desbloquear" → Aplicar.
🐧 Linux
Instalación Automática (Recomendada)
curl -fsSL https://chantunn.com/install.sh | bash
Instalación Manual
# Detectar arquitectura
ARCH=$(uname -m)
case $ARCH in
x86_64) ARCH="amd64" ;;
aarch64) ARCH="arm64" ;;
esac
# Descargar
sudo curl -fsSL \
"https://chantunn.com/static/downloads/chantunn-client-linux-${ARCH}" \
-o /usr/local/bin/chantunn-client
# Hacer ejecutable
sudo chmod +x /usr/local/bin/chantunn-client
# Verificar instalación
chantunn-client --help
Configurar como Servicio (systemd)
# Crear archivo de servicio sudo tee /etc/systemd/system/chantunn.service << 'EOF' [Unit] Description=Chantunn Tunnel Client After=network.target [Service] Type=simple User=$USER ExecStart=/usr/local/bin/chantunn-client --server=tunnel.chantunn.com:19500miapp TU_TOKEN 3000 Restart=always RestartSec=10 [Install] WantedBy=multi-user.target EOF # Activar servicio sudo systemctl daemon-reload sudo systemctl enable chantunn sudo systemctl start chantunn sudo systemctl status chantunn
🍎 macOS
Instalación
# Detectar si es Intel o Apple Silicon
if [[ $(uname -m) == "arm64" ]]; then
ARCH="arm64"
else
ARCH="amd64"
fi
# Descargar
sudo curl -fsSL \
"https://chantunn.com/static/downloads/chantunn-client-darwin-${ARCH}" \
-o /usr/local/bin/chantunn-client
# Hacer ejecutable
sudo chmod +x /usr/local/bin/chantunn-client
⚠️ Desactivar Gatekeeper
macOS bloquea aplicaciones no firmadas. Ejecuta:
xattr -dr com.apple.quarantine /usr/local/bin/chantunn-client
LaunchAgent (Inicio automático)
mkdir -p ~/Library/LaunchAgents cat > ~/Library/LaunchAgents/com.chantunn.client.plist << 'EOF'EOF launchctl load ~/Library/LaunchAgents/com.chantunn.client.plist Label com.chantunn.client ProgramArguments /usr/local/bin/chantunn-client --server=tunnel.chantunn.com:19500 miapp TU_TOKEN 3000 RunAtLoad KeepAlive
Tipos de Túneles
HTTP
Para aplicaciones web y APIs
Uso: Aplicaciones web (React, Vue, Angular), APIs REST, servidores HTTP
URL: https://subdominio.chantunn.com
Características:
- HTTPS automático con certificado SSL válido
- Headers HTTP completos
- Soporte para WebSockets
- Redirección automática HTTP → HTTPS
chantunn-client --server=tunnel.chantunn.com:19500miapp TOKEN 3000
TCP
Para protocolos arbitrarios
Uso: SSH, bases de datos (MySQL, PostgreSQL), FTP, Minecraft, etc.
URL: chantunn.com:PUERTO_ASIGNADO
Características:
- Transmisión binaria sin modificación
- Puerto público fijo (se mantiene al reconectar)
- Ideal para SSH y bases de datos
- Conexión directa TCP
chantunn-client --server=tunnel.chantunn.com:19500--type=tcp ssh TOKEN 22
Casos de Uso
Aplicaciones Web
Expón tu aplicación web desarrollada localmente para compartirla con clientes, hacer demos, o probar en dispositivos reales.
React / Next.js
# Terminal 1: Iniciar servidor de desarrollo npm run dev # Normalmente corre en puerto 3000 # Terminal 2: Crear túnel chantunn-client --server=tunnel.chantunn.com:19500myreact TOKEN 3000 # Tu app está en: https://myreact.chantunn.com
Python Flask / Django
# Flask (puerto 5000 por defecto) flask run chantunn-client --server=tunnel.chantunn.com:19500myflask TOKEN 5000 # Django (puerto 8000 por defecto) python manage.py runserver chantunn-client --server=tunnel.chantunn.com:19500mydjango TOKEN 8000
PHP / Laravel
# Laravel (puerto 8000) php artisan serve chantunn-client --server=tunnel.chantunn.com:19500mylaravel TOKEN 8000 # PHP built-in server php -S localhost:8080 chantunn-client --server=tunnel.chantunn.com:19500myphp TOKEN 8080
APIs y Backends
Expón tu API para que aplicaciones externas puedan consumirla, realizar pruebas de integración, o desarrollar webhooks.
Ejemplo: API Node.js
# Iniciar tu API
node server.js # Supongamos que corre en puerto 8080
# Crear túnel
chantunn-client --server=tunnel.chantunn.com:19500miapi TOKEN 8080
# Tu API está disponible en:
# https://miapi.chantunn.com
# Consumir la API:
curl https://miapi.chantunn.com/users
curl -X POST https://miapi.chantunn.com/users \
-H "Content-Type: application/json" \
-d '{"name":"Juan"}'
Nota sobre headers: Chantunn preserva todos los headers HTTP, incluyendo Content-Type, Authorization, cookies, etc. Las APIs funcionan exactamente igual que en localhost.
Acceso SSH Remoto
Conéctate a tu PC desde cualquier lugar vía SSH, ideal para acceder a tu estación de trabajo, servidores locales, o hacer soporte remoto.
Configuración en Windows (Servidor SSH)
- Instalar OpenSSH Server:
- Configuración → Aplicaciones → Características opcionales
- Agregar característica → OpenSSH Server
- Iniciar el servicio:
# PowerShell como Administrador Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic'
Crear Túnel SSH
# En tu PC local chantunn-client --server=tunnel.chantunn.com:19500--type=tcp ssh TOKEN 22 # Verás algo como: # "Túnel TCP activo: ssh -> localhost:22 (puerto público: 15234)"
Conectar desde otro equipo
# Usando el puerto asignado ssh -p 15234 [email protected] # Si usas clave privada ssh -p 15234 -i ~/.ssh/id_rsa [email protected]
⚠️ Seguridad SSH
- Deshabilita login como root en tu servidor SSH
- Usa autenticación por clave, no por contraseña
- El puerto TCP asignado se mantiene fijo mientras uses el mismo nombre de túnel
Bases de Datos Remotas
Conecta a tu base de datos local desde herramientas externas o permite acceso a tu equipo de desarrollo.
MySQL / MariaDB
# Crear túnel chantunn-client --server=tunnel.chantunn.com:19500--type=tcp mysql TOKEN 3306 # Conectar desde fuera mysql -h chantunn.com -P PUERTO \ -u usuario -p
PostgreSQL
# Crear túnel chantunn-client --server=tunnel.chantunn.com:19500--type=tcp postgres TOKEN 5432 # Conectar desde fuera psql -h chantunn.com -p PUERTO \ -U usuario -d basededatos
Advertencia de seguridad: Exponer bases de datos directamente a internet es arriesgado. Usa esto solo temporalmente y asegúrate de tener contraseñas fuertes y acceso restringo por IP si es posible.
Dominio Personalizado
En lugar de usar tunombre.chantunn.com, puedes configurar tu propio dominio
(ej: tudominio.com o app.tudominio.com)
para acceder a tus túneles. Esto es ideal para proyectos profesionales, demos de clientes,
o simplemente tener una URL más personalizada.
Ventajas
- • URL profesional con tu marca
- • HTTPS automático incluido
- • Fácil configuración
- • Sin costo adicional
Requisitos
- • Un dominio propio (cualquier registrador)
- • Acceso al panel DNS del dominio
- • Recomendado: Cloudflare (gratuito)
1 Configurar DNS (Cloudflare recomendado)
Debes crear un registro CNAME que apunte tu dominio/subdominio a Chantunn. Cloudflare es gratuito y ofrece HTTPS automático.
Ejemplo con Cloudflare:
- Ingresa a dash.cloudflare.com
- Agrega tu dominio (si no está agregado)
- Ve a la pestaña "DNS" → "Records"
- Haz clic en "Add record"
Configuración del registro:
Resultado: tunnel.tudominio.com → apunta a Chantunn
Configuración DNS genérica (cualquier proveedor):
Si usas otro proveedor (GoDaddy, Namecheap, etc.), busca la sección de administración DNS y crea un registro CNAME:
Tipo: CNAME Host: tunnel (o el subdominio que prefieras) Valor: chantunn.com TTL: 3600
2 Crear el túnel "default"
El dominio raíz siempre debe apuntar a un túnel especial llamado "default". Este es el túnel que responderá cuando alguien acceda a tu dominio personalizado.
En tu PC local:
# Suponiendo que tu app corre en puerto 3000 chantunn-client --server=tunnel.chantunn.com:19500default TU_TOKEN 3000
Importante: El nombre del túnel debe ser exactamente
default (en minúsculas).
3 Verificar funcionamiento
Una vez configurado el DNS y ejecutado el cliente, espera unos minutos a que el DNS se propague y verifica:
Prueba tu dominio:
# Desde cualquier navegador, visita: https://tunnel.tudominio.com # O desde terminal: curl -I https://tunnel.tudominio.com
Deberías ver tu aplicación cargando correctamente con HTTPS.
Configuraciones Avanzadas
Dominio raíz (sin subdominio)
Si quieres usar el dominio raíz directamente (ej: tudominio.com
sin el tunnel.):
- En Cloudflare: Name =
@(representa el raíz) - En otros DNS: deja el host/subdominio vacío o pon
@
Nota: Algunos proveedores DNS no permiten CNAME en el dominio raíz.
En ese caso, usa un subdominio como app.tudominio.com o
tunnel.tudominio.com.
Múltiples subdominios
Puedes tener varios subdominios apuntando a diferentes servicios:
# DNS Configuración: api.tudominio.com → CNAME → chantunn.com (túnel: api) admin.tudominio.com → CNAME → chantunn.com (túnel: admin) web.tudominio.com → CNAME → chantunn.com (túnel: default) # En tu PC, ejecuta múltiples clientes: chantunn-client --server=tunnel.chantunn.com:19500api TU_TOKEN 8080 chantunn-client --server=tunnel.chantunn.com:19500admin TU_TOKEN 3001 chantunn-client --server=tunnel.chantunn.com:19500default TU_TOKEN 3000
HTTPS con Cloudflare (Proxy)
Si quieres que Cloudflare maneje el HTTPS (con su certificado) y protección adicional:
- En Cloudflare, cambia el registro CNAME a "Proxied" (naranja)
- Ve a SSL/TLS → selecciona "Full (strict)"
- Chantunn ya provee HTTPS, así que funciona perfectamente con Full strict
Ventaja: Con Cloudflare proxy activado, obtienes protección DDoS, caché, y analíticas de tráfico además del túnel.
⚠️ Importante sobre propagación DNS
Los cambios en DNS pueden tardar desde unos minutos hasta 48 horas en propagarse globalmente. Si tu dominio no funciona inmediatamente:
- Verifica que el registro CNAME esté correcto
- Espera al menos 5-10 minutos
- Prueba con
dig tunnel.tudominio.comonslookup tunnel.tudominio.com - Limpia el caché DNS de tu navegador/PC
Solución de Problemas
"Windows protegió tu PC" / SmartScreen ▼
Windows Defender está bloqueando el archivo porque no está firmado digitalmente.
- Haz clic derecho en
chantunn-client.exe - Selecciona "Propiedades"
- En la pestaña "General", marca "Desbloquear"
- Haz clic en "Aplicar" y "Aceptar"
"No se puede verificar el desarrollador" (macOS) ▼
macOS Gatekeeper está bloqueando la aplicación.
xattr -dr com.apple.quarantine /usr/local/bin/chantunn-client
O ve a Preferencias del Sistema → Seguridad y Privacidad → "Permitir de todos modos"
"Token inválido" ▼
- Verifica que copiaste el token completo (16 dígitos)
- No agregues espacios extras
- Si perdiste el token, debes crear una cuenta nueva
Desconexiones frecuentes ▼
Las conexiones inactivas pueden ser cerradas por firewalls intermedios. Esto es normal.
El cliente se reconecta automáticamente. Si persiste:
- Verifica tu conexión a internet
- Comprueba que no haya firewall bloqueando conexiones salientes al puerto 19500
"El subdominio ya está en uso" ▼
Otro usuario ya registró ese nombre. Los nombres son únicos en toda la plataforma.
Sugerencias:
- Agrega tu nombre de usuario:
juan-miapp - Usa un nombre más descriptivo:
miapp-beta-v2
"No se puede conectar a localhost" ▼
El servicio local no está corriendo o está en un puerto diferente.
- Verifica que tu aplicación esté corriendo
- Confirma el puerto correcto (revisa la salida de tu servidor)
- Asegúrate de que el servicio esté escuchando en
0.0.0.0o127.0.0.1
Preguntas Frecuentes
¿Chantunn es gratuito?
Sí, existe un plan gratuito que incluye hasta 3 conexiones simultáneas con URLs personalizadas y HTTPS. Para uso profesional con conexiones ilimitadas y dominios personalizados, ofrecemos el plan Pro.
¿Es seguro usar Chantunn?
Sí. Todas las conexiones HTTP usan HTTPS con certificados SSL válidos. El túnel solo expone el puerto que especificas, no toda tu computadora. Sin embargo, como con cualquier servicio expuesto a internet, debes asegurar tu aplicación (autenticación, validaciones, etc.).
¿Pierdo mi subdominio si cierro el cliente?
No. Tu subdominio está reservado mientras exista la cuenta. Cuando cierras el cliente, el túnel simplemente aparece como "offline". Al reconectar, vuelve a funcionar automáticamente con el mismo nombre.
¿Puedo usar mi propio dominio?
Sí. Puedes configurar un CNAME en tu DNS apuntando a chantunn.com y crear un túnel llamado "default". Consulta la sección de casos de uso para más detalles.
¿Funciona con WebSockets?
Sí, los túneles HTTP soportan WebSockets completamente. Las conexiones WebSocket se mantienen abiertas y funcionan de manera bidireccional.
¿Qué es CGNAT y por qué necesito Chantunn?
CGNAT (Carrier-Grade NAT) es una técnica que usan los ISPs para compartir una IP pública entre múltiples clientes. Si tu ISP usa CGNAT, no puedes abrir puertos en tu router porque no tienes una IP pública dedicada. Chantunn soluciona esto creando una conexión saliente que no requiere IP pública.