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
ssh
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.