Saltar a contenido

Sí, es posible conectarse a la computadora de tu cliente a través de SSH sin una dirección IP pública o un dominio. Para hacer esto, puedes utilizar una herramienta llamada "reverse SSH tunneling".

El reverse SSH tunneling es una técnica que te permite conectarte a una computadora detrás de un firewall o NAT, como la computadora de tu cliente, desde una computadora en Internet. En lugar de que la computadora de tu cliente se conecte a tu computadora, como lo hace normalmente con SSH, tu computadora se conecta a la computadora de tu cliente a través de un túnel SSH inverso.

Para establecer un túnel SSH inverso, debes ejecutar el siguiente comando en la computadora de tu cliente:

ssh -R :localhost: @ Donde:

es el puerto que deseas utilizar en la computadora de tu cliente para conectarte a través del túnel SSH inverso. es el puerto en tu computadora que deseas utilizar para conectarte a la computadora de tu cliente. es el nombre de usuario en tu computadora que deseas utilizar para conectarte a la computadora de tu cliente. es la dirección IP o el nombre de dominio de tu computadora. Una vez que hayas ejecutado este comando en la computadora de tu cliente, puedes conectarte a la computadora de tu cliente desde tu computadora utilizando el siguiente comando:

ssh @localhost -p Donde:

es el nombre de usuario en la computadora de tu cliente. es el puerto que especificaste en el comando anterior para el túnel SSH inverso. De esta manera, puedes conectarte a la computadora de tu cliente desde tu computadora a través del túnel SSH inverso, sin necesidad de una dirección IP pública o un nombre de dominio. Es importante tener en cuenta que debes asegurarte de que el puerto que utilizas para el túnel SSH inverso esté abierto en el firewall de la computadora de tu cliente.

Si tu cliente y tú no tienen una dirección IP pública ni un dominio, y ambos tienen Syncthing instalado, una opción para conectarte a la computadora de tu cliente sería a través de un túnel SSH inverso. Esto te permitiría conectarte a la computadora de tu cliente desde tu propia computadora, sin tener que abrir puertos en el firewall de su red.

Para hacer esto, primero necesitarás que tu cliente ejecute un script bash que te envíe su dirección IP local. Una vez que tengas esta dirección IP, puedes configurar un túnel SSH inverso en tu propia computadora para conectarte a la computadora de tu cliente.

Para configurar el túnel SSH inverso, primero debes conectarte a la computadora de tu cliente a través de SSH. Luego, ejecuta el siguiente comando en tu propia computadora:

ssh -R 2222:localhost:22 usuario@direccion_ip_cliente Este comando establecerá un túnel SSH inverso que redirigirá el tráfico desde el puerto 2222 de la computadora de tu cliente al puerto 22 de tu propia computadora. De esta manera, podrás conectarte a la computadora de tu cliente a través de SSH utilizando el puerto 2222.

Es importante que tu cliente tenga permisos de root o de administrador para ejecutar el script bash y permitir el acceso a través del firewall de su red. También debes asegurarte de que ambos dispositivos estén conectados a la misma red local para que el túnel SSH inverso funcione correctamente.

Otra opción podría ser utilizar una herramienta de asistencia remota como TeamViewer o AnyDesk, que te permitiría conectarte a la computadora de tu cliente sin tener que configurar un túnel SSH inverso. Sin embargo, esto requeriría que tu cliente tenga la herramienta instalada y esté disponible para permitirte el acceso remoto.

Para enviar automáticamente la dirección IP de tu cliente, puedes crear un script que se ejecute al inicio de la computadora de tu cliente y que envíe la dirección IP a través de un servicio de correo electrónico. Aquí te proporciono un ejemplo de cómo podrías hacerlo en un sistema Linux:

Abre un editor de texto en la computadora de tu cliente y crea un nuevo archivo con el siguiente contenido:

!/bin/bash

Obtener la dirección IP pública

IP=$(curl -s https://checkip.amazonaws.com)

Enviar la dirección IP por correo electrónico

echo "La dirección IP de mi cliente es: $IP" | mail -s "Dirección IP de mi cliente" tu_correo_electronico@gmail.com Guarda el archivo con un nombre descriptivo, como "enviar_ip.sh", en una ubicación fácil de recordar, como el directorio de inicio de tu cliente.

Dale permisos de ejecución al archivo con el siguiente comando:

chmod +x enviar_ip.sh Agrega una entrada al archivo de tareas programadas (crontab) para que el script se ejecute automáticamente al inicio de la computadora y todos los días a una hora determinada. Para hacerlo, ejecuta el siguiente comando en la terminal: crontab -e Agrega la siguiente línea al final del archivo y guarda los cambios: @reboot /ruta/al/archivo/enviar_ip.sh 0 9 * * * /ruta/al/archivo/enviar_ip.sh Este comando ejecutará el script al inicio de la computadora y todos los días a las 9:00 a.m.

Para conectarte a la computadora de tu cliente a través de un túnel SSH inverso, debes seguir los siguientes pasos:

Configura un túnel SSH inverso en la computadora de tu cliente. Para hacerlo, ejecuta el siguiente comando en la terminal de tu cliente: ssh -R 2222:localhost:22 usuario_de_tu_cliente@tu_servidor Este comando redirige el puerto 22 de la computadora de tu cliente al puerto 2222 de tu servidor.

En tu servidor, conecta a la computadora de tu cliente a través del túnel SSH inverso con el siguiente comando: ssh usuario_de_tu_cliente@localhost -p 2222 Este comando se conecta a la computadora de tu cliente a través del puerto 2222 de tu servidor, que está redirigido al puerto 22 de la computadora de tu cliente.

Espero que esta información te sea útil. Si tienes alguna otra pregunta, no dudes en preguntarme.