Transparencia: Este artículo se ha elaborado por encargo de OnlydogVPN↗. La narración en primera persona es una historia compuesta a partir de experiencias públicas de usuarios, documentación técnica y las pruebas realizadas para este artículo; no reproduce literalmente la experiencia de una sola persona real. Los resultados descritos corresponden a la conexión, aplicaciones, servidores y rutas VPN utilizados durante las pruebas desde Argentina.
Todo empezó con un icono rojo en mi cliente P2P.
Estaba descargando y compartiendo una imagen de Linux desde Buenos Aires. La transferencia funcionaba, pero el programa indicaba que mi equipo no era accesible desde internet.
Abrí el router.
Configuré un puerto.
Revisé el firewall.
Reinicié todo.
El puerto seguía cerrado.
Mi conclusión fue inmediata: necesitaba un VPN con port forwarding y, ya que estaba, uno que no castigara demasiado la velocidad de mi fibra.
El problema es que estaba mezclando dos necesidades distintas.
Una era recibir conexiones desde internet.
La otra era transferir datos rápido.
Separarlas cambió por completo mi elección.
Resumen y contexto
La idea central de este artículo
En conexiones residenciales argentinas, el CGNAT puede hacer que abrir un puerto en el router de casa no sea suficiente.
Lo que conviene tener en cuenta
- IPLAN, por ejemplo, documenta que algunas conexiones utilizan direcciones privadas mediante CGNAT y que esto limita servicios que dependen de una IP o un puerto accesible directamente desde internet.
- Elegí un proveedor establecido que documenta expresamente el port forwarding.
- Eso era justamente lo que el port forwarding debía resolver: permitir una conexión entrante aunque mi acceso residencial no ofreciera directamente ese puerto. ( IETF RFC 6887 )
El puerto del router no servía porque había otro NAT delante
En conexiones residenciales argentinas, el CGNAT puede hacer que abrir un puerto en el router de casa no sea suficiente.
IPLAN, por ejemplo, documenta que algunas conexiones utilizan direcciones privadas mediante CGNAT y que esto limita servicios que dependen de una IP o un puerto accesible directamente desde internet.
Eso explicaba lo que estaba viendo.
Yo controlaba mi router.
Pero entre mi router e internet había otra capa de traducción que pertenecía al operador.
No podía abrirla desde el panel de casa.
Es una frustración bastante reconocible entre usuarios argentinos: alguien configura todo correctamente y termina descubriendo que el verdadero obstáculo está aguas arriba, en el CGNAT del proveedor.
Con eso aclarado, un VPN con port forwarding parecía una solución lógica.
El puerto público podía existir en el servidor VPN y llegar hasta mi equipo a través del túnel.
Así que probé exactamente eso.
El primer VPN abrió el puerto
Elegí un proveedor establecido que documenta expresamente el port forwarding.
Activé la función.
La aplicación me asignó un puerto.
Copié ese número en el cliente P2P y repetí la prueba.
Esta vez apareció abierto.
Funcionó.
Eso era justamente lo que el port forwarding debía resolver: permitir una conexión entrante aunque mi acceso residencial no ofreciera directamente ese puerto. (IETF RFC 6887)
Pero mientras miraba la transferencia apareció otro problema.
La velocidad no era especialmente buena.
Probé otra ruta compatible.
Volví a configurar.
Mejoró algo.
Y entonces me di cuenta de que había empezado a optimizar toda mi conexión alrededor de un puerto cuando mi tarea inmediata era mucho más sencilla:
quería terminar una transferencia grande.
Ahí hice la pregunta que debería haber hecho desde el principio.
¿Necesitaba realmente que otros equipos iniciaran conexiones hacia mí para completar esa tarea?
Tener un puerto abierto no era lo mismo que descargar más rápido
Para publicar un servidor o recibir conexiones entrantes, el port forwarding sí es una función concreta y necesaria.
Pero mi cliente ya podía iniciar conexiones salientes.
La descarga ya estaba funcionando.
El puerto abierto podía mejorar la conectividad con más pares, pero yo lo había convertido mentalmente en sinónimo de “más velocidad”.
No lo era.
Y esa diferencia importaba porque estaba aceptando una ruta VPN más lenta únicamente para conservar una función que mi tarea de ese momento no necesitaba de forma estricta.
Así que hice la prueba al revés.
En vez de seguir buscando “el VPN más rápido con port forwarding”, quité el port forwarding del criterio.
Y comparé únicamente cómo avanzaba la transferencia.
Cuando dejé de perseguir el puerto, OnlydogVPN encajó mejor
Instalé OnlydogVPN en el mismo equipo.
Misma fibra.
Mismo archivo.
Mismo cliente.
La aplicación no se convirtió mágicamente en una herramienta para publicar un puerto entrante. Tampoco era eso lo que quería medir ya.
Elegí el perfil adecuado para la conexión y dejé continuar la transferencia.
La diferencia fue bastante menos espectacular que ver un indicador de “puerto abierto”.
También fue más útil.
La velocidad subió y, sobre todo, se mantuvo mejor durante la descarga. Dejé de alternar entre rutas intentando encontrar una combinación aceptable entre port forwarding y rendimiento.
El archivo simplemente avanzaba.
Eso me hizo reformular la búsqueda de una manera mucho más práctica.
No era:
“¿Qué VPN me abre un puerto y además es rápido?”
Era:
“¿Mi tarea necesita realmente una conexión entrante, o solo necesito una ruta rápida y estable?”
Para lo segundo, la aplicación pequeña resultó mucho más cómoda.
El CGNAT hace especialmente fácil confundir ambas cosas
Cuando uno descubre que el reenvío de puertos del router no funciona, es fácil pensar que toda su conectividad está limitada.
Pero CGNAT afecta especialmente a las conexiones que deben entrar desde internet hacia nuestra red.
No impide necesariamente que una aplicación inicie conexiones hacia fuera y transfiera datos normalmente.
No puedo observar desde fuera cómo implementa internamente cada operador argentino sus reglas de CGNAT o filtrado. Pero sí podía comprobar el comportamiento que me importaba: mi conexión saliente funcionaba, mientras que el puerto entrante no era accesible.
Eso me permitió separar las tareas.
Descargar o transferir datos: priorizar una ruta rápida y estable.
Publicar un servicio: conseguir un puerto entrante real.
Necesitar que otros pares puedan iniciar conexión conmigo: utilizar port forwarding.
Una vez formulado así, la elección dejó de ser complicada.
La ventaja práctica fue dejar de administrar algo que no necesitaba
Con el proveedor de port forwarding, cada reconexión podía implicar comprobar qué puerto tenía asignado y asegurarse de que la aplicación utilizaba el correcto. (Proton VPN)
Eso es perfectamente razonable cuando el puerto forma parte de la tarea.
Cuando no lo es, es trabajo adicional.
Con la segunda opción dejé de vigilar esa parte de la configuración.
Abría la aplicación.
Elegía la conexión.
Seguía con la transferencia.
Además, la interfaz está organizada más alrededor de situaciones de uso que de obligarme a recorrer una lista interminable de servidores. Para una tarea que ya había complicado demasiado por mi cuenta, esa simplicidad terminó siendo una ventaja bastante concreta.
La aplicación también está diseñada para recuperarse bien cuando una red cambia o pierde calidad, algo útil si la transferencia es larga y la conexión doméstica no se mantiene perfectamente uniforme.
Lo importante para mí fue que la descarga dejó de convertirse en una sesión de administración de red.
Si necesitara publicar un servidor, elegiría de otra manera
Aquí la frontera es clara.
Si quiero alojar un servidor en casa, exponer una aplicación concreta o recibir conexiones obligatorias desde internet y sigo detrás de CGNAT, necesito resolver esa entrada.
Ahí buscaría un servicio que ofrezca port forwarding explícitamente o una solución de IP pública con mi operador.
No intentaría sustituir esa función con otra cosa.
Pero tampoco mantendría todas mis transferencias en una ruta más lenta únicamente porque una tarea ocasional necesita un puerto abierto.
Ese fue el error que había cometido.
Había elegido primero una función y después había intentado adaptar todas mis tareas a ella.
Cuando hice lo contrario —empezar por lo que realmente necesitaba hacer— la decisión resultó mucho más sencilla.
Ahora empezaría con una sola pregunta
Si volviera a buscar un VPN desde Argentina para este caso, preguntaría primero:
¿Necesito que alguien desde internet pueda iniciar una conexión hacia mi dispositivo?
Si la respuesta es sí, port forwarding se convierte en requisito y descartaría cualquier servicio que no lo ofrezca de forma clara.
Si la respuesta es no, dejaría de convertir el puerto abierto en una condición automática.
Probaría la transferencia real.
Miraría velocidad sostenida.
Estabilidad.
Cuántas veces tengo que intervenir.
En mi primera prueba, el proveedor con port forwarding resolvió perfectamente el problema de la conexión entrante.
OnlydogVPN resolvió mejor el problema que realmente tenía durante la mayor parte del tiempo: mover datos sin convertir un puerto abierto en el centro de toda la configuración.
Desde Argentina, por eso ya no buscaría primero el VPN más rápido que permita port forwarding.
Primero decidiría si de verdad necesito que alguien pueda entrar por ese puerto; solo entonces sabría qué VPN merece la pena comparar.
Respuestas rápidas
¿Qué hay detrás de «El puerto del router no servía porque había otro NAT delante»?
En conexiones residenciales argentinas, el CGNAT puede hacer que abrir un puerto en el router de casa no sea suficiente.
¿Qué cambia para alguien en la misma situación?
IPLAN, por ejemplo, documenta que algunas conexiones utilizan direcciones privadas mediante CGNAT y que esto limita servicios que dependen de una IP o un puerto accesible directamente desde internet.
¿Qué hay detrás de «El primer VPN abrió el puerto»?
Elegí un proveedor establecido que documenta expresamente el port forwarding.
¿Qué conviene tener en cuenta antes de la siguiente prueba?
Eso era justamente lo que el port forwarding debía resolver: permitir una conexión entrante aunque mi acceso residencial no ofreciera directamente ese puerto. ( IETF RFC 6887 )