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 dinámico.

Instalación

🪟 Windows

Método 1: Instalación Manual

  1. Descarga el archivo: chantunn-client-windows-amd64.exe
  2. Crea una carpeta: C:\Program Files\Chantunn\
  3. Mueve el archivo descargado a esa carpeta
  4. 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 miapp 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'




    Label
    com.chantunn.client
    ProgramArguments
    
        /usr/local/bin/chantunn-client
        miapp
        TU_TOKEN
        3000
    
    RunAtLoad
    
    KeepAlive
    


EOF

launchctl load ~/Library/LaunchAgents/com.chantunn.client.plist

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 miapp 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 dinámico asignado
  • Ideal para SSH y bases de datos
  • Conexión directa TCP
chantunn-client --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 myreact TOKEN 3000

# Tu app está en: https://myreact.chantunn.com

Python Flask / Django

# Flask (puerto 5000 por defecto)
flask run
chantunn-client myflask TOKEN 5000

# Django (puerto 8000 por defecto)
python manage.py runserver
chantunn-client mydjango TOKEN 8000

PHP / Laravel

# Laravel (puerto 8000)
php artisan serve
chantunn-client mylaravel TOKEN 8000

# PHP built-in server
php -S localhost:8080
chantunn-client myphp 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 miapi 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)

  1. Instalar OpenSSH Server:
    • Configuración → Aplicaciones → Características opcionales
    • Agregar característica → OpenSSH Server
  2. 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 --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 público cambia en cada reconexión (por diseño)

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 --type=tcp mysql TOKEN 3306

# Conectar desde fuera
mysql -h chantunn.com -P PUERTO \
  -u usuario -p

PostgreSQL

# Crear túnel
chantunn-client --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:

  1. Ingresa a dash.cloudflare.com
  2. Agrega tu dominio (si no está agregado)
  3. Ve a la pestaña "DNS""Records"
  4. Haz clic en "Add record"

Configuración del registro:

Type: CNAME
Name: tunnel
Target: chantunn.com
TTL: Auto
Proxy status: ⚠️ Desactivado (DNS only)

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 default 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 api TU_TOKEN 8080
chantunn-client admin TU_TOKEN 3001
chantunn-client default TU_TOKEN 3000

HTTPS con Cloudflare (Proxy)

Si quieres que Cloudflare maneje el HTTPS (con su certificado) y protección adicional:

  1. En Cloudflare, cambia el registro CNAME a "Proxied" (naranja)
  2. Ve a SSL/TLS → selecciona "Full (strict)"
  3. 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.com o nslookup 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.

  1. Haz clic derecho en chantunn-client.exe
  2. Selecciona "Propiedades"
  3. En la pestaña "General", marca "Desbloquear"
  4. 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.

  1. Verifica que tu aplicación esté corriendo
  2. Confirma el puerto correcto (revisa la salida de tu servidor)
  3. Asegúrate de que el servicio esté escuchando en 0.0.0.0 o 127.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.