¿Qué es un puerto de red? TCP, UDP y puertos abiertos
Un puerto de red es un número que usan los protocolos de transporte, como TCP y UDP, para dirigir el tráfico al servicio correcto. El protocolo, la dirección IP y el puerto forman juntos el extremo práctico de una conexión. Un puerto es un identificador lógico, no una toma física del router.
Numeración y usos habituales
Los números de puerto son valores de 16 bits entre 0 y 65535. La IANA los agrupa en puertos del sistema (0–1023), puertos de usuario (1024–49151) y puertos dinámicos o privados (49152–65535). HTTP suele usar el puerto TCP 80 y HTTPS el TCP 443, pero un servicio puede configurarse en otro número.
TCP y UDP tienen espacios de puertos independientes, de modo que el mismo número puede servir para cosas distintas en cada protocolo. Al conectarse al puerto de destino en el que escucha un servidor, el cliente suele elegir un puerto de origen temporal. Ver un puerto alto en el lado del cliente es normal y no implica que haya un servicio público abierto.
Qué significa «abierto»
En TCP, una prueba externa puede considerar abierto un puerto cuando consigue completar una conexión con un servicio que escucha en él. Una respuesta de puerto cerrado, la pérdida de paquetes o un tiempo de espera agotado significan cosas distintas, y un cortafuegos puede hacer difícil diferenciarlos. Las pruebas de UDP son menos concluyentes, porque un servicio puede sencillamente no responder a la sonda.
Que un programa escuche en una dirección local no lo hace accesible desde Internet. En el resultado influyen el cortafuegos del equipo, la redirección de puertos del router, el filtrado del proveedor y el CGNAT. Compruebe primero la dirección y el protocolo en los que escucha el servicio y pruebe después desde fuera de la red local.
Cómo abrir puertos con responsabilidad
Exponga solo los servicios que necesite. Configure la autenticación, mantenga el software actualizado y restrinja las direcciones de origen cuando sea posible. Que la prueba de conexión salga bien no dice nada sobre si la aplicación es segura o está bien configurada. Del mismo modo, una prueba fallida no identifica por sí sola la capa exacta que bloquea el tráfico.
Si un servicio es solo para uso local, vincúlelo a la interfaz de loopback o a una interfaz privada y no cree redirecciones innecesarias. Antes de tocar las reglas del cortafuegos, anote el protocolo y el puerto de destino esperados. Después del cambio, vuelva a comprobarlo desde otra red y elimine las reglas obsoletas cuando retire el servicio.
Al documentar una incidencia, anote el nombre del servicio, el protocolo de transporte, el puerto de destino y el lugar desde el que se hizo la prueba. El resultado obtenido dentro de la red doméstica puede diferir del de una prueba con datos móviles, porque el router puede tratar de forma distinta las conexiones a su propia dirección pública. Repita la prueba desde una red realmente externa antes de pedir un cambio al proveedor.
TCP y UDP requieren pruebas distintas
Un mismo número de puerto puede existir en TCP y en UDP, pero son transportes diferentes. Una conexión TCP correcta no dice nada sobre un servicio UDP en ese número. Encontrará más detalles en las guías sobre TCP frente a UDP y sobre los puertos abiertos, cerrados y filtrados.