# SSH tunnels: el reenvío de puertos SSH en detalle

Para acceder a una página web que no está disponible desde tu red, los SSH tunnels ofrecen una buena solución: en lugar de navegar hasta la página web directamente desde tu propia conexión de red, puedes tomar el túnel SSH (también denominado reenvío de puertos SSH) para ir a través de un servidor SSH.

## ¿Qué es un SSH tunnel?

Los túneles SSH, al igual que los túneles reales, sirven para **conectar dos puntos**. El primero de estos puntos es un ordenador que suele estar conectado a una red no segura. El punto de destino es un servidor o una dirección web a la que no puedes o no quieres acceder desde tu red. Los túneles SSH funcionan, por lo tanto, como **enlaces entre diferentes servidores** y conectan los [puertos TCP](https://www.ionos.es/digitalguide/servidores/know-how/puertos-tcp-puertos-udp/ "Puertos TCP Puertos UDP") de dos ordenadores entre sí para cumplir su función. Cabe señalar que cualquier puerto TCP puede ser reenviado mediante un túnel SSH, por lo que el proceso también se denomina reenvío de puertos SSH o reenvío SSH.

Con respecto al servidor SSH, puedes utilizar prácticamente cualquier servidor para esto. Un ejemplo sería el [servidor Raspberry Pi SSH](https://www.ionos.es/digitalguide/servidores/configuracion/activar-ssh-en-raspberry-pi/ "Activar SSH en Raspberry Pi").

---

### Consejo

¿Todavía no has podido encontrar un servidor adecuado? ¡No hay problema! Echa un vistazo a los [servidores cloud](https://www.ionos.es/cloud/servidores-cloud "Hosting de servidores cloud - IONOS") de IONOS y selecciona el servidor que mejor se adapta a tus necesidades.

---

¿Pero qué transporta exactamente un SSH tunnel? El túnel SSH permite que ciertos [protocolos TCP](https://www.ionos.es/digitalguide/servidores/know-how/que-es-tcp-transport-control-protocol/ "Qué es TCP (Transport Control Protocol)") puedan utilizarse de forma segura. También el [SMTP](https://www.ionos.es/digitalguide/correo-electronico/cuestiones-tecnicas/smtp/ "SMTP") o protocolo para el envío de correos electrónicos utiliza el SSH tunneling para la transferencia de datos. SSH garantiza la seguridad de los datos que se transportan en el túnel.

## ¿Para qué se utilizan los túneles SSH?

Hay varios casos de uso para el reenvío de puertos [secure shell](https://www.ionos.es/digitalguide/servidores/herramientas/protocolo-ssh/ "Protocolo SSH"). En la mayoría de los casos, el reenvío de puertos SSH se utiliza para crear una **conexión cifrada** entre un ordenador local (el host local) y un ordenador remoto. El uso de esta red virtual permite eludir ciertas restricciones de acceso. Parecerá que estás en esta red, cuando en realidad sólo estás accediendo a ella mediante el SSH tunnel. Esto es similar a una red privada virtual (VPN), pero no obstante es diferente: intenta no confundir las dos cosas.

Si transportas datos desde servicios que utilizan un protocolo no cifrado, puedes utilizar el reenvío SSH para cifrar la transferencia de datos. Para ello se utilizará un **Protocolo de Transferencia de Archivos SSH**, [SFTP](https://www.ionos.es/digitalguide/servidores/know-how/sftp-ssh-file-transfer-protocol/ "SFTP (SSH File Transfer Protocol)"). Los túneles SSH también ofrecen mayor seguridad cuando navegas por redes de acceso público como, por ejemplo, la de un hotel o una cafetería. Las [claves SSH](https://www.ionos.es/digitalguide/servidores/seguridad/como-usar-las-claves-ssh-para-una-conexion-de-red/ "Cómo usar las claves SSH para una conexión de red") utilizan un [cifrado asimétrico](https://www.ionos.es/digitalguide/servidores/seguridad/cifrado-asimetrico/ "Cifrado asimétrico") y proporcionan un nivel de seguridad aún mayor.

Es importante que tengas en cuenta que los hackers utilizan con frecuencia los túneles SSH. Ellos construyen **puertas traseras en las redes internas** para que los atacantes puedan acceder fácilmente a los datos internos.

---

### Consejo

¿Quieres aprovechar las ventajas del SSH para tu página web? El [pack de alojamiento web](https://www.ionos.es/alojamiento/alojamiento-web "Hosting - IONOS") de IONOS incluye un certificado SSL y te proporciona todo lo que necesitas. O si sólo quieres mejorar tu página web con SSL, echa un vistazo a los [certificados SSL](https://www.ionos.es/seguridad/certificado-ssl "Comprar certificados SSL - IONOS") que ofrece IONOS. Y si decides aumentar la seguridad de tu web, por ejemplo con la autenticación de dos factores, consulta [IONOS Domain Guard](https://www.ionos.es/dominios/domain-guard "Seguridad de dominio - IONOS").

---

## Uso de túneles SSH en Linux

Hay varias opciones para configurar un túnel SSH.

### Reenvío de puertos locales SSH

El método más habitual para configurar un túnel SSH es **el reenvío local de puertos**. Esto implica acceder a los recursos de la red local desde tu ordenador local y reenviar un puerto de tu ordenador a un puerto del servidor SSH. A continuación, el puerto puede ser reenviado a un puerto del ordenador de destino.

Para configurar el reenvío local de puertos, utiliza el siguiente comando de terminal en los sistemas operativos basados en Unix o en macOS:

```none
ssh -L local_port: remote_address: remote_port username@server.com
```

Primero tendrás que definir qué puerto quieres reenviar (local\_port). Puedes utilizar **cualquier número de puerto** superior a 1024. Esto se debe a que los puertos con números inferiores están restringidos y sólo el root puede acceder a ellos. A continuación, introduce la dirección IP del servidor de destino (remote\_address) y tus credenciales (remote\_port).

Apliquemos esto a un ejemplo: supongamos que quieres conectarte con un servidor de tu oficina cuya dirección de red es *123.234.1.111*. Puedes acceder al servidor SSH de tu oficina mediante *ssh.test.com*. Tu nombre de usuario es “Testuser”. El comando que utilizarías para configurar el túnel SSH para el puerto 1234 sería el siguiente:

```none
ssh -L 8888: 123.234.1.111: 1234 Testuser@ssh.test.com
```

Tras ejecutar el comando, tendrás acceso al servidor de la oficina a través del puerto 8888. Si el servidor permite el acceso web, también podrás acceder al servidor de la oficina a través de *http://localhost:8888*. Los datos que envíes al puerto 8888 de tu ordenador se reenviarán al puerto 1234 del ordenador de destino mediante el túnel SSH.

### Reenvío de puertos remotos SSH

El reenvío de puertos remotos conecta un puerto del servidor SSH a un puerto del ordenador cliente, que puede establecer una conexión con el ordenador de destino. Este tipo de reenvío de puertos suele utilizarse para **proporcionar a una persona externa acceso a servicios internos**. El comando de terminal para configurar un túnel SSH remoto tiene el siguiente aspecto:

```none
ssh -R remote_port: target_address: target_port user@ssh_server_address
```

Si ahora quieres, por ejemplo, interceptar un puerto con número de puerto 8080 y enviar los datos al puerto número 3000 de tu ordenador local, el comando tendría el siguiente aspecto:

```none
ssh -R 8080: 127.0.0.1:3000 user@remote.host
```

En el ejemplo anterior, el servidor SSH tiene la dirección *remote.host*. Ahora puedes acceder externamente a los datos que estás “tunelizando” si introduces esta dirección junto con el número de puerto en un navegador:

```none
remote.host:8080
```

Si tienes problemas para configurar el reenvío remoto de puertos, puede deberse a la **configuración de tu servidor SSH**. El reenvío remoto de puertos suele estar **desactivado** por defecto. Solo tienes que activar el GatewayPorts en el archivo de configuración de tu servidor SSH. Para ello, abre el archivo y pon **GatewayPorts** en “yes”.

### Reenvío dinámico de puertos SSH

Una tercera manera de utilizar los túneles SSH consiste en el **reenvío dinámico de puertos**. Esta manera te permite utilizar un socket en tu ordenador local que funcionará como una especie de proxy SOCKS. Todas las aplicaciones que utilicen un proxy SOCKS se conectarán entonces con el servidor SSH y enviarán su tráfico a través del túnel. Este tipo de reenvío de puertos se utiliza a menudo para **tunelizar el tráfico del navegador web**.

Para configurar el reenvío dinámico de puertos, utiliza el siguiente comando de terminal:

```none
ssh -D [local_ip_address:]local_port user@ssh_server_address
```

Si no introduces una dirección IP local, se utilizará automáticamente la dirección IP *127.0.0.1* ([localhost](https://www.ionos.es/digitalguide/servidores/know-how/localhost/). Si, por ejemplo, configuras un túnel SOCKS para el puerto 9090 con la dirección *remote.host*, el comando tendrá el siguiente aspecto:

```none
ssh -D 9090 -N -f user@remote.host
```

Después de configurar el proxy SOCKS, asegúrate de configurar correctamente las aplicaciones que utilizan el proxy.

## SSH tunnels y Windows

También puedes configurar túneles SSH en Windows. Como el terminal es menos importante en Windows, querrás utilizar una de las muchas **herramientas prácticas con interfaz de usuario**, como [PuTTY](https://www.putty.org/ "Página principal de PuTTY"). Hacen que configurar un túnel SSH sea muy fácil.

Cuando hayas descargado e instalado PuTTY, ábrelo. En el menú de inicio, introduce la dirección IP del servidor SSH deseado en “Hostname”. A continuación, accede a “Connection/SSH/Tunnels”. Aquí puedes introducir el puerto de origen y el de destino en los cuadros “Source Port” y “Destination”. para establecer la conexión. Ahora deberías poder establecer una conexión y acceder al puerto en el navegador con *127.0.0.1:port\_number.*

## Túneles SSH inversos

Para acceder a ordenadores con una dirección IP privada necesitarás un túnel SSH inverso. Con un túnel SSH inverso, el ordenador remoto al que quieres acceder puede crear una conexión con tu ordenador local. Luego puedes utilizar esa conexión para crear una nueva conexión desde el ordenador local al ordenador remoto.

El siguiente comando configurará un SSH tunnel desde el ordenador remoto:

```none
ssh -Nf -R 2222:localhost:22 user@local.computer
```

El ordenador local puede entonces utilizar el siguiente comando para conectarse con el ordenador remoto:

```none
ssh localhost -p 2222
```


This is a markdown version of: [https://www.ionos.es/digitalguide/servidores/seguridad/como-utilizar-los-ssh-tunnels/](https://www.ionos.es/digitalguide/servidores/seguridad/como-utilizar-los-ssh-tunnels/) for AI/LLM consumption.