Cómo obtener la dirección IP pública utilizando el túnel NGROK o SSH

Cómo obtener la dirección IP pública utilizando el túnel NGROK o SSH
Cada dispositivo conectado en Internet tiene una dirección IP que identifica de manera única el dispositivo. Las direcciones IP se pueden clasificar en dos tipos que son públicas y privadas. Se puede acceder a las direcciones IP públicas desde cualquier lugar de Internet, mientras que las direcciones IP privadas solo se pueden acceder dentro de la Red de Área Local (LAN).

Ahora, si desea compartir algo de su servidor web local a sus amigos que están fuera de la red de área local y no pueden acceder a su máquina. Entonces, ¿cómo expondrías tu localhost a tus amigos fuera de la lan??

En este caso, establece un túnel de su localhost a Internet y comparte una dirección IP pública con sus amigos a los que se puede acceder desde todo Internet.

Los túneles se pueden establecer utilizando Ssh o Ngrok. Aquí discutiremos las formas y luego verificaremos el resultado del túnel utilizando netcat.

Conseguir IP pública usando ngrok

Ngrok es un software de túnel de plataforma cruzada que se puede utilizar para establecer túneles seguros desde Internet hasta la red local. También captura todo el tráfico para la inspección. El siguiente es el método para establecer túneles de localhost a Internet.

Instalación de NGROK

Antes de usar Ngrok En su máquina, tenemos que instalarla. Ngrok se puede instalar utilizando el siguiente comando en la terminal.

ubuntu@ubuntu: ~ $ snap install ngrok

Cuando ejecuta el comando anterior, instalará el NGROK después de descargar los archivos requeridos. Puedes verificar si Ngrok se ha instalado o no utilizando el siguiente comando en el terminal.

ubuntu@ubuntu: ~ $ ngrok --version

Si Ngrok se ha instalado, le dará la versión como se muestra en la siguiente figura.

Después de instalar Ngrok, ahora está listo para usar para establecer túneles.

Exponer localhost a público

Ngrok se utiliza para exponer su servidor web local a Internet. Todo lo que tenemos que hacer es decir Ngrok en qué puerto está escuchando su servidor web local. Ejecute el siguiente comando para exponer su servidor web local a Internet

ubuntu@ubuntu: ~ $ ngrok http 8080

Cuando ejecuta el comando anterior en la terminal, Ngrok Establece un túnel desde su servidor web local a Internet a través del puerto 8080 y muestra la URL pública a través de la cual se puede acceder a su servidor web local. La siguiente GUI aparece en la terminal cuando ejecuta el comando anterior.

Ahora se puede acceder a su localhost: 8080 desde todo Internet utilizando el enlace que se muestra en la figura anterior.

Inspeccionar el tráfico a través del túnel

Ngrok nos proporciona la capacidad de inspeccionar todas las solicitudes entrantes o salientes de Internet a su localhost. Podemos observar todo el tráfico yendo al siguiente enlace

Localhost: 4040/Inspect/HTTP

Cuando obtienes el enlace anterior, el navegador te muestra todas las solicitudes entrantes o salientes como se muestra en la siguiente figura.

Terminal también muestra las solicitudes realizadas en su servidor web local. La siguiente figura muestra cómo el terminal mantiene el registro de las solicitudes HTTP.

Conseguir IP pública usando SSH

Ssh También se conoce como Secure Shell es un protocolo de comunicación seguro utilizado para la comunicación remota entre el cliente y el servidor. Además, Ssh También se puede utilizar para establecer túneles para que su localhost sea accesible para el público. En este blog veremos cómo usar SSH para establecer túneles entre su localhost e Internet público.

Exponer localhost a público

Localhost también puede estar expuesto al público mediante el uso de Ssh que es básicamente un protocolo de comunicación. Se llama Ssh túnel o Ssh reenvío de puertos. Ejecute el siguiente comando en el terminal de su localhost para establecer un túnel entre su localhost y el servidor remoto

Ubuntu@ubuntu: ~ $ ssh -r 8080: localhost: 8088 remotouser@ipaddress

En el comando anterior

  • 8080 es el puerto que el servidor está escuchando
  • 8088 es el puerto que desea exponer
  • RemoteUser es el nombre del usuario al que va a exponer su servidor web
  • IPaddress es la IP del usuario remoto
  • -R significa que está creando una conexión desde el servidor remoto a su localhost

Ahora se puede acceder al puerto 8088 de su localhost desde un servidor remoto que tiene "dirección IP" de IP y nombre de usuario "remoto" a través del puerto 8080.

Configuración del servidor remoto

Antes de acceder a localhost a través del túnel desde un servidor remoto, realice algunos cambios en el sshd_config archivo del servidor remoto. Este archivo se puede abrir escribiendo el siguiente comando en la terminal.

ubuntu@ubuntu: ~ $ nano/etc/ssh/sshd_config

Después de abrir el archivo, realice los cambios como se muestra en la siguiente figura.

Permitirse para hacer
Gatewayports Sí

Después de hacer cambios, reinicie su Ssh servidor para aplicar estos cambios. Ahora localhost está abierto al servidor remoto para acceder.

Prueba de los túneles

Hasta ahora hemos establecido túneles entre localhost y un servidor remoto utilizando Ssh y Ngrok. Ahora probaremos si estos túneles han sido establecidos o no. Usaremos netcat comandar para probar túneles. Ejecute el siguiente comando en el terminal de su localhost

ubuntu@ubuntu: ~ $ netcat -l -p 8088

Cuando ejecuta el comando anterior en la terminal de su localhost, netcat Comienza a escuchar en el puerto 8088 de tu localhost.

Ahora escriba el siguiente comando en el terminal del servidor remoto para enviar un mensaje

ubuntu@ubuntu: ~ $ echo "Hola!"| NetCat [RemoteServer IP] 8080

Cuando ejecuta el comando anterior en el terminal de su servidor remoto, el mensaje "hola" debe aparecer en el terminal de localhost. Si esto sucede, entonces se ha establecido su túnel.

Conclusión

Para que su localhost sea accesible desde Internet, se realiza estableciendo túneles entre su localhost e Internet. En este blog hemos discutido cómo establecer túneles para que su localhost sea accesible para Internet. Se han discutido dos métodos para establecer túneles que son Ssh túnel y Ngrok túnel. Inspección del tráfico usando Ngrok túneles también se ha discutido. Después de esto, el proceso de probar los túneles utilizando netcat ha sido discutido. Después de leer este blog, será muy fácil para usted hacer que su servidor web local sea público al público.