Documentación
Inicio rápido + descripción de cada función y de cada dispositivo (en constante actualización)
Detección de servidores NAT y recomendaciones de túnel
Este artículo explica cómo el panel identifica automáticamente los servidores NAT, distingue entre «NAT con puertos configurables» y «NAT sin puertos configurables», y guía al usuario hacia la Operación mediante túnel cuando es necesario.
Primero, entendamos: qué es NAT
Un servidor NAT es un servidor que «solo tiene IP interna y no tiene IP pública propia». Por ejemplo, muchos VPS NAT baratos reciben del proveedor una dirección interna (como 192.168.x.x); no puedes acceder a él directamente desde la red pública, solo mediante el mapeo de puertos que ofrece el proveedor (que redirige algún puerto público a tu red interna).
Descripción de la función
Tras añadir un servidor, cuando la conexión SSH tiene éxito el panel detecta automáticamente si esta máquina es de tipo NAT (solo tiene dirección interna, sin IP pública propia). Al detectar NAT, muestra una pequeña insignia en la tarjeta del servidor y una explicación centralizada en la parte superior de «Resumen». El usuario puede pulsar la insignia amarilla para confirmar si ese servidor NAT permite configurar el reenvío de puertos en el panel del proveedor y decidir así si necesita la Operación mediante túnel.
Por qué hay que distinguir los NAT
«IP interna» ≠ «necesita túnel». Los servidores NAT se dividen en dos tipos:
| Tipo | Característica | ¿Necesita túnel? |
|---|---|---|
| NAT con puertos configurables | El proveedor ofrece un panel de mapeo de puertos y el usuario puede mapear por sí mismo un puerto público a un puerto interno | ❌ No; los puertos se resuelven solo |
| NAT sin puertos configurables | El proveedor solo mapea fijamente unos pocos puertos como SSH (22), y el resto no entra desde la red pública | ✅ Necesita Operación mediante túnel |
Solo los «NAT sin puertos configurables» necesitan la Operación mediante túnel. En un NAT con puertos configurables puedes mapear los puertos tú mismo y se usa igual que una máquina con IP pública, así que no debería avisarte una y otra vez.
Principio de detección
Cuando la conexión SSH tiene éxito, el panel ejecuta el comando de solo lectura ip -4 addr show para leer las IP de las tarjetas de red locales del servidor y determinar si todas pertenecen a rangos internos:
10.0.0.0/8172.16.0.0/12192.168.0.0/16100.64.0.0/10(CGNAT, NAT a nivel de operador)127.0.0.0/8,169.254.0.0/16,0.0.0.0/8
Basta con que exista una sola IP de rango público para considerar que «tiene IP pública» (no es NAT); si todas son de rango interno, se considera «NAT».
> El comando de detección es de solo lectura y no modifica ningún estado del servidor. El resultado se guarda en la base de datos; solo se detecta una vez en la primera conexión y luego se reutiliza, sin ralentizar la conexión.
Insignias y ubicación de las explicaciones
Tras detectar NAT, el aviso se presenta en dos lugares:
1. Pestaña «Resumen» del panel de Gestión del sistema: al pulsar «Gestión del sistema» en la tarjeta de un servidor y entrar en el panel, la primera pestaña, «Resumen», muestra el banner de aviso NAT correspondiente: los servidores marcados en amarillo muestran una explicación amarilla (con instrucciones para eliminarla) y los marcados en rojo muestran una guía roja hacia el túnel. El aviso solo aparece en servidores NAT directos aún no confirmados, sin ocupar espacio en la tarjeta.
2. Pequeña insignia en la tarjeta: en la tarjeta se conserva solo una pequeña insignia, con tres estados:
| Insignia | Color | Significado | Acción al pulsar |
|---|---|---|---|
NAT | Amarillo | Se ha detectado NAT (IP local de rango interno), pendiente de confirmar | Abre el cuadro de confirmación |
Necesita túnel | Rojo | Los puertos no son accesibles desde la red pública, necesita túnel | Abre la guía de Operación mediante túnel |
| (sin insignia) | — | Ya se confirmó «los puertos están bien», marca eliminada | — |
La insignia amarilla NAT es el estado «pendiente de confirmar»: al pulsarla se abre un cuadro de confirmación con dos opciones:
- «Los puertos están bien, eliminar la marca» → la insignia desaparece y no vuelve a avisar;
- «Los puertos no son accesibles, marcar como necesita túnel» → la insignia se vuelve roja y guía hacia la Operación mediante túnel.
La roja Necesita túnel es una «advertencia»: al pulsarla se va directamente a Operación mediante túnel + Penetración de puertos.
> Por qué no se hace «detección automática de si los puertos son accesibles»: el servidor del panel y el servidor de destino pueden estar en la misma sala de máquinas, y la detección desde el panel va por red interna, por lo que medir «accesible» no significa que un visitante externo pueda acceder; el resultado no es fiable. Por eso «necesita túnel» lo marca manualmente el usuario en el cuadro de explicación amarillo.
Por qué los servidores NAT «se desconectan con el uso»
Los servidores NAT tienen un idle timeout (tiempo de espera de conexión inactiva) en la puerta de enlace del proveedor. Cuando una conexión SSH lleva unos minutos inactiva, la puerta de enlace la corta silenciosamente (TCP semiabierto) sin que ninguna de las dos partes lo detecte.
El panel lo soluciona de raíz con estos dos puntos:
1. keepalive activado en las conexiones SSH: tras establecerse todas las conexiones se envía un paquete de keepalive cada 30 segundos, lo que evita que el NAT corte por inactividad y además detecta a tiempo las conexiones medio muertas.
2. Limpieza periódica del pool de conexiones: un hilo en segundo plano cierra cada 2 minutos las conexiones inactivas durante más de 2 minutos, evitando que se acumulen sin límite conexiones medio muertas.
Advertencias
1. La detección depende de que la conexión SSH tenga éxito: si el servidor está sin conexión o la contraseña es incorrecta, no se puede detectar y no se muestra la insignia.
2. Servidores que no muestran insignia: los servidores con IP pública, los dispositivos Android (Termux) y los dispositivos ya en túnel (con tunnel_token) no muestran la insignia NAT, porque ya van por sus propios canales y no necesitan el aviso NAT.
3. Margen para casos especiales: un número muy reducido de «NAT 1:1» (servidores con todos los puertos abiertos) también tiene IP local interna y se detectará como NAT. En ese caso, basta con que el usuario elija «Sí» en el cuadro de confirmación; no afecta al uso.
4. Se puede cambiar tras confirmar: el estado de la insignia lo decide la confirmación del usuario y se puede ajustar en cualquier momento pulsando la insignia.