Pangolin

Pangolin – El túnel reverso autoalojable de código abierto para acceder a tus servicios privados sin abrir puertos

Descripción del programa Pangolin

Pangolin es un servidor de proxy inverso con túnel y control de acceso basado en identidad, diseñado para exponer recursos privados en redes distribuidas de forma segura. Desarrollado por Fossorial (anteriormente conocido como fosrl), esta herramienta de código abierto se posiciona como una alternativa autoalojable a Cloudflare Tunnel, ofreciendo a los usuarios el control total sobre su infraestructura y datos.

Lanzado originalmente en 2024 como un proyecto en desarrollo activo, Pangolin ha evolucionado rápidamente, alcanzando la versión 1.16.2 en la actualidad. El nombre del proyecto sigue una temática animal, haciendo referencia al pangolín (mamífero cubierto de escamas), y sus componentes también llevan nombres de animales excavadores: Newt (el cliente ligero), Badger y Gerbil.

Su principal fortaleza radica en permitir exponer servicios web y recursos de red (HTTP/HTTPS y TCP/UDP) sin necesidad de abrir puertos en el router o configurar reenvíos complicados. Utiliza WireGuard para crear túneles cifrados desde tu red privada hacia un servidor central en la nube, y proporciona un completo sistema de autenticación y control de acceso con panel de administración web.

Pangolin es especialmente útil para:

  • Exponer servicios en homelabs detrás de CG-NAT o firewalls restrictivos
  • Acceder a IoT devices, Raspberry Pi o servidores edge desde cualquier lugar
  • Crear un API gateway seguro entre múltiples nubes y servidores on-premise
  • Compartir aplicaciones internas con usuarios externos sin VPN complejas

¿Necesitas exponer tus servicios caseros o empresariales a Internet sin depender de terceros ni abrir puertos en tu router?

Características clave de Pangolin

1. Proxy inverso a través de túneles WireGuard

El corazón de Pangolin es su capacidad de crear túneles cifrados mediante WireGuard entre tu red privada y un servidor central en la nube. El cliente Newt (un cliente WireGuard en espacio de usuario) se ejecuta dentro de tu red y establece un túnel saliente hacia el servidor, lo que significa que no necesitas abrir puertos entrantes en tu router o firewall. El servidor central (Pangolin) recibe las solicitudes externas y las reenvía a través del túnel a los servicios privados.

Esta arquitectura permite:

  • Firewall punching: superar redes con CG-NAT o ISP que bloquean puertos
  • SSL automático: certificados HTTPS gratuitos gestionados por Let’s Encrypt
  • Soporte para múltiples protocolos: no solo HTTP/HTTPS, sino también TCP/UDP raw (para SSH, bases de datos, etc.)
  • Balanceo de carga: distribuir tráfico entre múltiples instancias
  • Extensibilidad con plugins de Traefik: como CrowdSec y GeoBlock

2. Gestión de Identidad y Acceso (IAM) centralizada

Pangolin incluye un robusto sistema de autenticación y autorización, eliminando la necesidad de gestionar logins separados para cada aplicación:

  • Single Sign-On (SSO): los usuarios solo necesitan una cuenta para acceder a todos los recursos expuestos
  • Autenticación de dos factores (TOTP): con códigos de respaldo para mayor seguridad
  • Control de acceso granular: define reglas por IP, rangos de IP, y rutas URL por recurso
  • Múltiples opciones de autenticación adicionales:
  • Enlaces temporales autodestructibles
  • Códigos PIN por recurso
  • Contraseñas específicas por recurso
  • Lista blanca de emails con códigos de un solo uso
  • Organizaciones y roles: crea organizaciones con múltiples sitios, usuarios y roles, con control de acceso basado en roles (RBAC)
  • Integración con proveedores externos: soporte OAuth2/OIDC para Authentik, Keycloak, Okta, etc. con auto-provisionamiento de usuarios

3. Panel de control web intuitivo

Pangolin proporciona un dashboard web moderno y responsive (compatible con móvil) que facilita la gestión de toda la infraestructura:

  • Gestión de sitios: añade, edita y monitoriza los conectores (Newt) en cada red privada
  • Gestión de recursos: expone servicios individuales desde los sitios, configurando dominios y reglas de acceso
  • Control de usuarios y roles: administra quién puede acceder a qué
  • API completa: con claves API scoped y documentación Swagger para automatización e integraciones
  • Modo claro/oscuro: interfaz personalizable según preferencias

4. Soporte para recursos públicos y privados

Pangolin distingue dos tipos de recursos:

  • Recursos públicos (Public Resources): accesibles desde Internet sin autenticación adicional (útil para sitios web públicos)
  • Recursos privados (Private Resources): requieren autenticación a través del sistema IAM de Pangolin antes de acceder, ideal para aplicaciones internas, paneles de administración o herramientas DevOps como Grafana

Novedad en versión 1.14.0+: Los recursos privados ahora soportan:

  • Firewall de puertos: permite especificar qué puertos TCP/UDP están permitidos (todos, ninguno, o rangos específicos)
  • Wildcard DNS aliases: define *.vpn.internal para que todos los subdominios resuelvan al mismo destino, útil cuando ejecutas un reverse proxy (como Traefik) junto a Newt
  • ICMP ping: ahora soportado y configurable para pruebas de conectividad

5. Fácil despliegue con Docker Compose

Pangolin está diseñado para ser fácil de instalar y mantener:

  • Instalación mediante script: un único comando descarga el instalador y guía la configuración inicial
  • Despliegue basado en Docker Compose: todo se ejecuta en contenedores, facilitando actualizaciones y mantenimiento
  • Múltiples opciones de despliegue: autoalojado, nube gestionada (Pangolin Cloud), o despliegue empresarial on-premises

6. Clientes ligeros para múltiples plataformas

Pangolin ofrece Newt, un cliente ligero en espacio de usuario que se conecta al servidor central:

  • Disponible como CLI, contenedor Docker, y próximamente para Windows, macOS y Linux (con soporte para DNS privado a través del túnel)
  • Configuración sencilla: solo necesita un ID y secreto generados por el dashboard
  • Soporte para cualquier cliente WireGuard estándar, no solo Newt

Explicación detallada del funcionamiento

La arquitectura de Pangolin se compone de varios elementos, cada uno con un rol específico:

1. Servidor Central (Pangolin): Se despliega en un VPS con IP pública. Gestiona la autenticación de usuarios, las políticas de acceso, los certificados SSL y coordina las conexiones entre los clientes y los servicios internos. Internamente utiliza Traefik como proxy inverso y WireGuard para los túneles.

2. Sitios (Sites): Representan las redes privadas (tu casa, oficina, etc.) que se conectan al servidor central.

3. Newt (Cliente): El conector ligero que se ejecuta dentro de tu red privada. Establece un túnel saliente hacia el servidor central, eliminando la necesidad de abrir puertos en tu router.

4. Recursos (Resources): Representan servicios individuales expuestos desde un sitio. Cada recurso tiene un dominio, reglas de acceso y configuración de autenticación.

El flujo de funcionamiento típico es el siguiente:

  1. Despliegas el servidor central en un VPS con Docker Compose (usando el script de instalación).
  2. Configuras tu dominio apuntando al VPS.
  3. En tu red privada (ej. tu casa), ejecutas el cliente Newt (como contenedor Docker). Newt establece un túnel WireGuard saliente hacia el servidor central.
  4. Desde el dashboard, añades el sitio (la conexión se muestra como «Online»).
  5. Añades recursos: defines qué servicio quieres exponer (ej. un servidor web en http://192.168.1.100:80), eliges un subdominio (ej. miapp.tudominio.com), y configuras reglas de acceso (autenticación, IPs permitidas, etc.).
  6. Los usuarios externos acceden a miapp.tudominio.com. El servidor central autentica al usuario (si es necesario) y reenvía el tráfico a través del túnel a tu servicio privado.

Este enfoque es especialmente valioso cuando tu ISP utiliza CG-NAT (direcciones IP compartidas) o bloquea el reenvío de puertos, ya que el túnel se inicia desde tu red hacia afuera, no al revés.

Descarga e instalación de Pangolin

Opción 1: Instalación rápida mediante script (recomendada)

Requisitos previos:

  • Un VPS (Servidor Virtual Privado) con IP pública (ej. RackNerd, DigitalOcean, Hetzner, XServer)
  • Un dominio apuntando a la IP de tu VPS
  • Docker y Docker Compose instalados (el script puede instalarlos automáticamente)

Pasos de instalación:

  1. Conéctate a tu VPS por SSH.
  2. Ejecuta el siguiente comando para descargar el instalador de la última versión:
   wget -O installer "https://github.com/fosrl/pangolin/releases/download/1.16.2/installer_linux_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')" && chmod +x./installer
  1. Ejecuta el instalador:
   sudo./installer
  1. Responde las preguntas de configuración:
  • Base domain: tu dominio base (ej. ejemplo.com)
  • Dashboard domain: subdominio para el panel de control (ej. pangolin.ejemplo.com)
  • Email for Let’s Encrypt: tu correo electrónico
  • Use Gerbil: yes (valor por defecto)
  • Email functionality (SMTP): no si no necesitas notificaciones
  • IPv6 capable: no a menos que tu VPS tenga IPv6 configurado
  • Install and start containers: yes
  1. Espera a que se descarguen e inicien los contenedores. El proceso puede tardar varios minutos.

Opción 2: Instalación manual con Docker Compose

Si prefieres un control más granular o el script falla, puedes desplegar manualmente:

  1. Clona el repositorio:
   git clone https://github.com/fosrl/pangolin.git
   cd pangolin
  1. Copia el archivo de ejemplo de configuración:
   cp.env.example.env
  1. Edita .env con tus configuraciones (dominio, emails, etc.)
  2. Inicia los contenedores:
   docker compose up -d

Opción 3: Pangolin Cloud (versión gestionada)

Si prefieres no administrar tu propio servidor, Fossorial ofrece Pangolin Cloud, un plan gratuito con funcionalidades básicas y planes de pago para necesidades más avanzadas. Las limitaciones del plan gratuito incluyen posibles restricciones de streaming y tamaño de archivo.

Versiones y actualizaciones

  • Última versión estable: 1.16.2 (con componentes: Pangolin 1.16.2, Newt 1.8.0+, Badger 1.3.1+, Gerbil 1.3.0+, Olm 1.3.0+)
  • Requisitos mínimos del VPS: 1 vCPU, 1 GB RAM, ~20 GB SSD (suficiente para un despliegue básico)
  • Proveedores recomendados: RackNerd (desde ~12$/año), DigitalOcean, Hetzner, XServer

⚠️ Importante: Siempre realiza una copia de seguridad de tu configuración (config/app-data) antes de actualizar, ya que no es fácil hacer downgrades.

Cómo usar Pangolin

Paso 1: Acceder al dashboard

Una vez instalado, accede a https://pangolin.tudominio.com (el subdominio que configuraste). Crea tu cuenta de administrador.

Paso 2: Conectar un sitio (tu red privada)

  1. En el dashboard, ve a Sites > Add Site.
  2. Elige el tipo de conexión:
  • Newt Site: recomendado, usando el cliente ligero
  • Docker: despliegue con Docker Compose
  • Docker Compose: obtén el compose pregenerado
  1. Copia el docker-compose.yaml generado (contiene el NEWT_ID y NEWT_SECRET).
  2. En tu máquina privada (ej. Raspberry Pi, NAS, servidor casero), crea un archivo docker-compose.yml con ese contenido y ejecuta docker compose up -d.
  3. Si necesitas conectar el contenedor Newt con otros contenedores (ej. para exponer servicios locales), añade la red correspondiente al compose:
   networks:
     web-service:
       external: true
       name: web-service
  1. Vuelve al dashboard y refresca. El sitio debería aparecer como «Online».

Paso 3: Exponer un recurso (servicio)

  1. Ve a Resources > Public Resources o Private Resources (según necesites autenticación o no).
  2. Haz clic en Add Resource.
  3. Elige el tipo de recurso:
  • HTTPS Resource: para servicios web
  • TCP/UDP Resource: para SSH, bases de datos, etc.
  1. Configura:
  • Base Domain: elige el dominio (puedes usar el proporcionado gratuitamente o el tuyo propio)
  • Subdomain: el nombre que quieras (ej. mi-app)
  • Target: la dirección del servicio dentro de tu red privada (ej. http://nombre_contenedor:8000 o 192.168.1.100:80)
  1. En la pestaña Authentication, configura quién puede acceder:
  • Use Platform SSO: si está activado, solo usuarios autenticados en Pangolin pueden acceder (para recursos privados)
  • Desactívalo para recursos públicos (acceso abierto)
  • También puedes configurar reglas por IP, códigos PIN, etc.
  1. Haz clic en Create Resource y luego Save Access Controls.

Paso 4: Acceder al servicio

Desde cualquier navegador, accede a https://mi-app.tudominio.com (o el subdominio que configuraste). Si configuraste autenticación, se te pedirá que inicies sesión con tu cuenta de Pangolin.

Paso 5: Configuración avanzada (opcional)

  • Firewall de puertos: desde la versión 1.14.0, puedes limitar qué puertos TCP/UDP están expuestos en recursos privados.
  • Wildcard alias: define *.vpn.internal para exponer múltiples subdominios apuntando al mismo destino.
  • DNS privado: los clientes de escritorio pueden usar servidores DNS privados a través del túnel.
  • CrowdSec: el instalador puede configurar automáticamente CrowdSec para proteger contra ataques de fuerza bruta.

Observaciones sobre el programa Pangolin

Frente a otras soluciones de túneles reversos como Cloudflare Tunnel, ngrok o Tailscale, Pangolin se posiciona como la opción autoalojable que prioriza la soberanía de datos. Mientras que Cloudflare Tunnel es fácil de usar pero depende completamente de la infraestructura de Cloudflare (que termina el TLS en sus servidores y podría inspeccionar el tráfico), Pangolin te permite alojar tanto el plano de control como los relays en tu propia infraestructura.

Para el administrador de sistemas o entusiasta de homelab, el beneficio práctico de Pangolin es tener control total sobre los datos y la configuración. No dependes de los límites de ancho de banda, las restricciones de streaming o las políticas de uso de un tercero. Además, puedes elegir el VPS que mejor se adapte a tus necesidades (y presupuesto).

El desarrollo de Pangolin es muy activo. El proyecto, que comenzó como un proyecto personal, ha recibido contribuciones de numerosos desarrolladores y cuenta con una comunidad creciente. Las versiones se suceden con frecuencia (1.14.0, 1.16.2), incorporando nuevas funcionalidades como el firewall de puertos, soporte para wildcard DNS, y mejoras en la interfaz. El equipo detrás de Pangolin también ofrece Pangolin Cloud como servicio gestionado, pero el núcleo sigue siendo autoalojable y de código abierto.

Casos de uso destacados según la documentación oficial:

  • Homelab con CG-NAT: muchos ISP asignan IPs compartidas y bloquean el reenvío de puertos. Pangolin resuelve esto sin necesidad de servicios de terceros.
  • IoT y dispositivos edge: monitoriza y accede a Raspberry Pi o sensores distribuidos sin complejas configuraciones de red.
  • API Gateway: balancea carga entre múltiples nubes y servidores on-premise.
  • Negocios: expone aplicaciones internas a empleados o clientes con autenticación SSO, sin VPN tradicional.

Limitaciones a tener en cuenta:

  • Necesitas un VPS con IP pública: aunque el coste puede ser muy bajo (desde 12$/año), no es completamente gratuito como el nivel gratuito de Cloudflare Tunnels.
  • Desarrollo activo: el proyecto está en «heavy development», lo que implica que puede haber cambios entre versiones, bugs ocasionales, y la documentación podría no estar siempre al día.
  • Curva de aprendizaje: aunque la instalación es sencilla, conceptos como WireGuard, Traefik y la gestión de identidades pueden requerir cierto tiempo de adaptación.
  • Licenciamiento dual: Pangolin es AGPL-3 (código abierto) para uso personal, pero ofrece una licencia comercial para distribuciones empresariales que requieran un modelo diferente.

Limitaciones importantes

  • Dependencia de un VPS: Necesitas alquilar un servidor en la nube con IP pública (coste mínimo, pero no es cero).
  • Desarrollo en curso: Al ser un proyecto joven, pueden existir bugs o cambios no documentados entre versiones.
  • Licencia AGPL: Si planeas modificar y redistribuir el software comercialmente, debes cumplir con los términos de AGPL-3 o adquirir una licencia comercial.
  • Curva de aprendizaje: Aunque el dashboard es intuitivo, entender WireGuard, la creación de túneles y el sistema de autenticación requiere algo de tiempo.

Alternativa recomendada

Si buscas una solución completamente gestionada y gratuita (con límites), Cloudflare Tunnel sigue siendo la opción más sencilla para casos de uso básicos. No requiere mantener un VPS, pero sacrificas soberanía de datos y dependes de las políticas de Cloudflare.

Si prefieres una alternativa de código abierto más madura pero con menos funcionalidades integradas de IAM, Tailscale (basado en WireGuard) es excelente para crear redes privadas, aunque no ofrece proxy inverso con autenticación SSO de forma nativa.

Si buscas una solución autoalojable similar a Pangolin pero con un enfoque diferente, FRP (Fast Reverse Proxy) es una alternativa madura, aunque carece del panel de control y sistema de autenticación integrado de Pangolin.

Pangolin es la herramienta ideal para entusiastas de homelabs, administradores de sistemas y pequeñas empresas que priorizan el control total de su infraestructura y la privacidad de sus datos. Su combinación de túneles WireGuard, proxy inverso con SSL automático, IAM centralizado y panel web intuitivo lo convierten en una solución muy completa. Puedes comenzar con el plan gratuito de Pangolin Cloud para probarlo, o desplegar tu propia instancia en un VPS económico siguiendo la guía de instalación rápida.

Sección FAQ

¿Pangolin es gratis o de pago?

Pangolin es de código abierto (AGPL-3) y puedes autoalojarlo gratuitamente en tu propio servidor. Los desarrolladores también ofrecen Pangolin Cloud, un servicio gestionado con un plan gratuito (con limitaciones) y planes de pago para necesidades más avanzadas.

¿Funciona en Linux, macOS, Windows 10 y Windows 11?

Pangolin está diseñado para ejecutarse en Linux (el servidor central y el cliente Newt). El cliente Newt también está disponible para Windows y macOS (con soporte para DNS privado a través del túnel en versiones recientes). El dashboard web es accesible desde cualquier sistema operativo con un navegador moderno.

¿Qué diferencia a Pangolin de Cloudflare Tunnel?

La principal diferencia es que Pangolin es autoalojable y de código abierto, mientras que Cloudflare Tunnel es un servicio gestionado. Con Pangolin, tú controlas los datos (el TLS termina en tu infraestructura) y no dependes de los límites de ancho de banda o las políticas de un tercero. Cloudflare es más sencillo de configurar y tiene un nivel gratuito generoso, pero sacrificas soberanía de datos.

¿Necesito un dominio propio para usar Pangolin?

No necesariamente. Pangolin puede proporcionar subdominios gratuitos a través de su servicio gestionado (Pangolin Cloud). Sin embargo, si autoalojas, necesitas un dominio propio apuntando a tu VPS para poder generar certificados SSL con Let’s Encrypt.

¿Qué ha pasado con el desarrollo de Pangolin?

El desarrollo de Pangolin es muy activo. El proyecto se lanzó en 2024 y ha recibido múltiples actualizaciones, con la versión 1.16.2 como la más reciente. El equipo añade nuevas funcionalidades regularmente, como el firewall de puertos, wildcard DNS, y soporte para DNS privado en clientes de escritorio. La comunidad está creciendo y el proyecto tiene un roadmap público.