ABRIR LOS PUERTOS DEL ROUTER

 

En este texto vamos a ver qué son los puertos del router, qué estamos haciendo realmente cuando los abrimos y por qué hacerlo es una buena idea. Si has jugado online, realizado videoconferencias o utilizado Emule, seguro que has oído o leído que si abres los puertos del router la velocidad del juego y de las descargas aumenta y la videoconferencia deja de entrecortarse. Enseguida te cuento todo lo que necesitas saber al respecto.

 

Antes de empezar, es necesario aclarar que los puertos a los que se refiere esta página son los “puertos virtuales” que no son lo mismo que los “puertos físicos”, que son los conectores USB, HDMI, Ethernet, etc. En ambos casos se utiliza esta palabra porque son elementos que posibilitan la comunicación de dos equipos informáticos. En adelante nos referiremos a los puertos virtuales como “puertos” a secas. Antes de entrar en lo que más te puede interesar (cómo se abren los puertos del router), veamos antes de forma rápida qué es un puerto y como funciona.

QUÉ ES UN PUERTO

Un puerto es un punto de conexión para el intercambio de datos entre dos programas que se ejecutan en equipos diferentes situados en redes diferentes. Se trata de un número que va del 0 al 65535.

 

Para hacernos una idea, pensemos en lo que ocurre cuando jugamos on-line a Call of Duty. En un lado de la conexión tenemos el juego que se está ejecutando en nuestro PC (programa local) y en el otro extremo se encuentra el servidor de Call of Duty al que estamos conectados (programa remoto). Nuestro PC y el servidor están enviándose gran cantidad de datos de forma constante. Si el intercambio de datos no es totalmente fluido, se producirán cortes en el juego y pérdida de calidad, impidiendo que podamos luchar en igualdad de condiciones con el resto de participantes. Para facilitar el intercambio de datos entre ambos programas, se utilizan los puertos, los cuales permiten que la comunicación sea directa entre programas, sin intermediarios que procesen el paquete de datos y luego lo redirijan. De esta forma, aumenta la velocidad de transmisión de la información y se reduce la probabilidad de que el juego falle.

Carátula del juego Call of duty World at War

 

 

PUERTOS ASIGNADOS POR DEFECTO

La IANA (Internet Assigned Numbers Authority) creó tres grupos de puertos, cada uno de ellos pensados para unos conjuntos de programas específicos:

 

PUERTOS DEL 0 al 1023

Estos puertos son los llamados “bien conocidos” o “puertos de sistema” (well-known ports o system ports), reservados para el sistema operativo. Algunos de los ejemplos más conocidos son:

 

Puerto 21: utilizado para las conexiones FTP

 

Puerto 80: utilizado por los servidores HTTP (Hypertext Transfer Protocol) que nos dan la información de las páginas web cuando navegamos por Internet.

 

Puerto 443: utilizado por los servidores HTTPS para la transferencia segura de páginas web.

 

Puerto 445: utilizado por Windows 10 para compartir archivos con el resto de equipos de la red local (si quieres saber cómo compartir archivos en la red local de tu casa, clica aquí).

PUERTOS DEL 1024 AL 49151

Estos puertos son los llamados “puertos registrados” o “puertos de usuario” (registered ports o user ports), utilizados por las aplicaciones y juegos que instalemos en nuestro PC.

 

PUERTOS DEL 49152 al 65535

Estos puertos son los llamados “dinámicos”, “privados” o “efímeros” (dynamic ports, private ports o ephemeral ports), correspondiente a aplicaciones que necesitan conectarse a un servidor como es el caso de los clientes de descargas de Torrent y P2P, entre otros.

Imagen del juego Counter Strike: GO (CSGO)

 

FUNCIONAMIENTO DE LA COMUNICACIÓN

Cuando dos programas se están comunicando desde equipos diferentes haciendo uso de los puertos, como en el ejemplo anterior, tenemos:

 

En nuestro PC:

- Un número de puerto local

- La dirección IP privada de nuestro PC

- El nombre del programa que está utilizando ese puerto en nuestro PC (Call of Duty).

En el servidor:

- Un número de puerto remoto

- La dirección IP pública del equipo remoto

- El nombre del programa que está utilizando el puerto remoto (Call of Duty Server).

Utilizado por ambas partes:

- Un protocolo de comunicaciones (TCP/UDP) que permite el transporte de datos a través de la red, desde nuestro PC hasta el servidor y viceversa.

 

Cualquier puerto está ligado en exclusiva a un único programa, es decir, ningún otro programa puede utilizar ese mismo puerto. Por este motivo, un puerto identifica de forma inequívoca una aplicación o proceso que se está ejecutando en un equipo.

La comunicación entre ambos programas se realiza mediante uno de los dos protocolos siguientes: TCP o UDP. Ambos se basan en el uso de los puertos como puntos de conexión para el intercambio de información:

 

TCP (Transmission Control Protocol)

Se utiliza cuando los equipos se conectan de forma directa (como es el caso de nuestro ejemplo) durante el tiempo que dura la transmisión. La conexión es estable, rápida y eficiente, aunque requiere que el equipo esté trabajando constantemente mientras dura el intercambio de datos.

 

UDP (User Datagram Protocol)

No requiere conexión directa entre los equipos que envían y reciben la información. Los paquetes de datos se envían de forma similar a como se envía una carta por correo: la transmisión se basa en la red. Debido a esto, existe la posibilidad de que el paquete de datos no llegue a su destino. La ventaja de UDP es que no requiere que el dispositivo esté trabajando de forma constante.

Imagen del juego Fortnite

 

 

EL ROUTER Y LOS PUERTOS

Como ya vimos en la sección correspondiente, cualquier comunicación que se produce entre nuestro PC y cualquier equipo fuera de nuestra red local pasa necesariamente por el router (clic aquí). Volviendo al ejemplo inicial, supongamos que además de dar servicio a nuestra partida de Call of Duty, el router tiene que atender a otros dispositivos conectados que están navegando por Internet. Estos equipos reciben los datos de las páginas web que visitan desde servidores diversos, que nada tienen que ver con el servidor de Call of Duty.

 

¿Cómo se las apaña el router para enviarme a mí los paquetes de datos correspondientes a mi partida y al resto de dispositivos los datos de navegación de forma rápida y sin retraso? La respuesta es mediante el uso de los puertos.

 

El router dispone de una tabla que relaciona cada programa que se está ejecutando en cada dispositivo y su puerto correspondiente, que como ya dijimos es un valor único. Cada paquete de datos, sea utilizando el protocolo TCP o el UDP, lleva en su cabecera el número del puerto. Para entenderlo, debemos pensar en el puerto como si fuera una dirección de correos y el router el cartero. El router lee la cabecera del paquete que viene de Internet, averigua a qué proceso va dirigido dicho paquete mediante el número del puerto y lo envía sin más.

Imagen del juego Call of duty World at War

 

 

EN QUÉ CONSISTE ABRIR LOS PUERTOS DEL ROUTER

Abrir los puertos es la forma coloquial de referirse a mapear los puertos, que no es más que encargarnos de que el router sepa a qué puerto debe asociar cada aplicación, informando en su tabla de memoria interna la relación correspondiente.

 

En nuestro caso, para poder jugar a Call of Duty sin ningún problema, necesitamos que el router tenga en su tabla un número de puerto asociado a dicha aplicación. Si esto no es así, tendremos problemas a la hora de jugar, ya que cuando lleguen los paquetes el router no sabrá a quién entregarlos (lo mismo que le pasa a un cartero cuando se topa con una carta sin dirección).

PORQUE NO TENGO PROBLEMAS DE CONEXIÓN SI

NO HE ABIERTO NINGÚN PUERTO

Ya sé que aun no te he explicado como abrir los puertos del router, enseguida te lo cuento. Antes debemos preguntarnos, ¿por qué no tengo problemas normalmente con la conexión si no he abierto manualmente ningún puerto?

La respuesta es que tu router dispone de una funcionalidad llamada Universal Plug and Play, que abre los puertos de tu router automáticamente en función de la aplicación que lo requiera. Es decir, lo habitual es que no sea necesario que pierdas el tiempo abriendo los puertos de tu router, ya que suele ser algo automático y transparente (vamos, que ni te enteras).

 

En ocasiones, este proceso no funciona para algunas aplicaciones y en otras el puerto no se abre por algún problema durante la instalación. Es entonces cuando tendremos que abrir manualmente el puerto para la aplicación que nos interese, ya que en caso contrario el router no sabrá a qué programa entregar los paquetes pertinentes.

Imagen del juego Counter Strike: GO (CSGO)

 

 

COMO ABRIR LOS PUERTOS DE UN ROUTER

Abrir o mapear los puertos es sencillo. Independientemente del menú del router (hay muchísimos) seguiremos los siguientes pasos:

 

Paso 1 - Averiguaremos la siguiente información:

- Dirección IP del router (clic aquí para ver cómo obtenerla)

- Dirección IP privada del equipo que va a ejecutar el programa (clic aquí para ver cómo obtenerla).

- Número del puerto (dependerá del programa, algunos funcionan con cualquier puerto y otros necesitan un puerto en concreto, lo mejor es que busques en Internet el mejor valor para tu aplicación).

- Protocolo (TCP o UDP)

- Nombre del programa (es opcional, pero vale la pena ponerlo para no perdernos).

 

Paso 2 - Entra en el menú del router (clic aquí para ver cómo hacerlo)

 

Paso 3 - Te pedirá una contraseña. Si no la sabes, mira debajo del router, acostumbran a llevar una chapa o pegatina con la clave correspondiente.

 

Paso 4 - Una vez dentro del menú, buscaremos una entrada que diga “Apertura de puertos”, “Mapeo de puertos”, “Redirección de puertos”, “Port forwarding”, “NAT”, “Opciones avanzadas” o algo similar.

 

Paso 5 - Después de entrar en “Apertura de puertos” (o similar), nos tiene que aparecer una ventana con campos a rellenar, que tendrá más o menos esta pinta:

 

 

Paso 6 - En la casilla “Nombre regla de puertos” insertaremos el nombre del programa (en mi caso Emule).

Paso 7 - En la casilla “Dirección IP” insertaremos la dirección IP privada de nuestro PC, la cual habremos averiguado en el primer paso. Es importante darnos cuenta de que el puerto se abre para una dirección IP privada en concreto. Si la dirección IP privada cambia, el router redirigirá los paquetes a la antigua dirección IP, que puede corresponder a otro equipo o a ninguno. Por ello es interesante que la IP sea fija cuando abrimos o mapeamos un puerto (clic aquí para ver cómo hacerlo).

Paso 8 - En el campo “Protocolo” indicaremos si la aplicación para la que queremos abrir el puerto utiliza el protocolo TCP, el UDP o ambos.

Paso 9 - En el campo “Abrir puerto / Rango Externo (WAN)” introduciremos el número del puerto que queremos abrir en el PC correspondiente a la dirección IP anteriormente introducida.

Dejaremos en blanco el campo “Abrir puerto / Rango Interno (LAN)”

 

Paso 10 - Guardamos la configuración y el puerto habrá quedado abierto (mapeado) para la aplicación y dirección IP que hayamos indicado.

 

 

COMO SABER QUÉ PUERTOS ESTÁN ABIERTOS EN MI PC

Para saber cuáles son los puertos que están abiertos en nuestro ordenador, qué aplicaciones lo están utilizando y otra información adicional, te recomiendo que utilizas la aplicación CurrPorts, la cual puedes descargar desde el siguiente link:

CurrPorts: Monitoring TCP/IP network connections on Windows (nirsoft.net)

 

Los links están al final de la página y un poco más abajo encontrarás otro enlace para disponer del programa en castellano. Es un programa muy sencillo que no requiere de instalación, sólo descomprimirlo en una carpeta y ejecutarlo. La ventana principal tiene este aspecto:

Los campos más importantes, de izquierda a derecha, son:

 

Nombre del proceso: es el programa que está utilizando el puerto.

 

Protocolo: el que esté utilizando el programa (TCP o UDP).

Puerto local: el número del puerto que el programa está utilizando y con el que se identifica de forma única (obsérvese que los números de los puertos no se repiten). Por ejemplo, la aplicación Emule está utilizando el puerto local 4662 para comunicarse con otro Emule instalado en otro PC.

 

Dirección local: vemos que hay dos opciones:

a) 0.0.0.0:XXXXX – No son comunicaciones con el exterior, las utiliza el PC para "hablar consigo mismo" y realizar comprobaciones.

b) 192.168.1.36:XXXXX – Es la dirección IP privada de mi PC seguida del número de puerto que está ocupando cada programa. Este conjunto de "IP:Puerto" se conoce como socket.

Puerto remoto: se trata del número de puerto que está utilizando el programa que se está ejecutando fuera de nuestra red. En el caso de Emule, el PC que está recibiendo nuestros archivos lo hace mediante el puerto 52164.

Dirección remota: nuevamente hay dos opciones:

a) 0.0.0.0:0000 – La comunicación remota no existe, ya que el PC no se comunica con el exterior en este caso.

b) YYY.YYY.YYY.YYY:XXXXX – Es la dirección IP pública del PC con el que nos estamos comunicando y a través de qué puerto lo estamos haciendo.

Imagen del juego CSGO

 

Si no te ha quedado claro alguno de los conceptos contacta conmigo a través del chat o mediante Facebook y te ayudaré sin compromiso.