Como obter o endereço IP público usando o tunelamento ngrok ou ssh

Como obter o endereço IP público usando o tunelamento ngrok ou ssh
Cada dispositivo conectado na Internet possui um endereço IP que identifica exclusivamente o dispositivo. Os endereços IP podem ser classificados em dois tipos que são públicos e privados. Os endereços IP públicos podem ser acessados ​​de qualquer lugar da Internet, enquanto os endereços IP privados só podem ser acessados ​​na Rede da Área Local (LAN).

Agora, se você deseja compartilhar algo do seu servidor da web local com seus amigos que estão fora da rede local da área e eles não podem acessar sua máquina. Então, como você exporia sua localhost a seus amigos fora da LAN?

Nesse caso, você estabelece um túnel do seu host para a Internet e compartilha um endereço IP público com seus amigos que podem ser acessados ​​de toda a Internet.

Túneis podem ser estabelecidos usando Ssh ou Ngrok. Aqui discutiremos os dois caminhos e então verificaremos o resultado do tunelamento usando netcat.

Obtendo IP público usando Ngrok

Ngrok é um software de tunelamento de plataforma cruzada que pode ser usada para estabelecer túneis seguros da Internet para a rede local. Ele também captura todo o tráfego para inspeção. A seguir, o método para estabelecer túneis de localhost para a Internet.

Instalando NGrok

Antes de usar Ngrok Na sua máquina, temos que instalá -la. Ngrok pode ser instalado usando o seguinte comando no terminal.

ubuntu@ubuntu: ~ $ snap install ngrok

Quando você executa o comando acima, ele instalará o ngrok após o download de arquivos necessários. Você pode verificar se Ngrok foi instalado ou não usando o seguinte comando no terminal.

ubuntu@ubuntu: ~ $ ngrok --version

Se Ngrok foi instalado, ele dará à versão como mostrado na figura a seguir.

Depois de instalar Ngrok, Agora está pronto para usar para estabelecer túneis.

Expondo localhost ao público

Ngrok é usado para expor seu servidor da web local à Internet. Tudo o que precisamos fazer é dizer Ngrok em que porta o servidor da web local está ouvindo. Execute o seguinte comando para expor seu servidor da web local à Internet

ubuntu@ubuntu: ~ $ ngrok http 8080

Quando você executa o comando acima no terminal, Ngrok Estabelece um túnel do seu servidor da web local para a Internet através da porta 8080 e exibe o URL público pelo qual o servidor da web local pode ser acessado. A seguir, a GUI aparece no terminal quando você executa o comando acima.

Agora o seu localhost: 8080 pode ser acessado de toda a Internet usando o link mostrado na figura acima.

Inspecionar o tráfego através do túnel

Ngrok fornece -nos a capacidade de inspecionar todos os pedidos de entrada ou saída da Internet para sua localhost. Podemos observar todo o tráfego indo para o seguinte link

LocalHost: 4040/Inspect/http

Quando você obteve o link acima, o navegador mostra todas as solicitações de entrada ou saída, como mostrado na figura a seguir.

Terminal também mostra as solicitações feitas ao seu servidor da web local. A figura a seguir mostra como o terminal mantém o registro das solicitações HTTP.

Obtendo IP público usando SSH

Ssh Também conhecido como shell seguro é um protocolo de comunicação seguro usado para comunicação remota entre cliente e servidor. Além disso, Ssh também pode ser usado para estabelecer túneis para tornar sua localhost acessível ao público. Neste blog, veremos como usar o SSH para estabelecer túneis entre sua localhost e internet pública.

Expondo localhost ao público

Localhost também pode ser exposto ao público usando Ssh que é basicamente um protocolo de comunicação. É chamado Ssh tunelamento ou Ssh encaminhamento de porta. Execute o seguinte comando no terminal do seu host para estabelecer um túnel entre o host localizador e o servidor remoto

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

No comando acima

  • 8080 é a porta que é servidor está ouvindo
  • 8088 é a porta que você deseja expor
  • RemoteUser é o nome do usuário a quem você vai expor seu servidor da web
  • Ipaddress é o IP do usuário remoto
  • -R significa que você está criando uma conexão do servidor remoto para a sua localhost

Agora, a porta 8088 do seu localhost pode ser acessada de um servidor remoto com "endereço IP" IP e nome de usuário "RemoteUser" através da porta 8080.

Configuração do servidor remoto

Antes de acessar localhost através do túnel de um servidor remoto, faça algumas alterações no sshd_config arquivo do servidor remoto. Este arquivo pode ser aberto digitando o seguinte comando no terminal.

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

Depois de abrir o arquivo, faça as alterações como mostrado na figura a seguir.

AllowTcpforwarding Sim
Gatewayports sim

Depois de fazer alterações, reinicie seu Ssh servidor para aplicar essas alterações. Agora o localHost está aberto ao servidor remoto a ser acessado.

Testando os túneis

Até agora, estabelecemos túneis entre localhost e um servidor remoto usando Ssh e Ngrok. Agora vamos testar se esses túneis foram estabelecidos ou não. Nós vamos usar netcat comando para testar túneis. Execute o seguinte comando no terminal do seu host local

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

Quando você executa o comando acima no terminal de sua localhost, netcat começa a ouvir na porta 8088 do seu host localizador.

Agora digite o seguinte comando no terminal do servidor remoto para enviar mensagem

ubuntu@ubuntu: ~ $ echo “Olá!”| netcat [RemoteServer IP] 8080

Quando você executa o comando acima no terminal do seu servidor remoto, a mensagem "Hello" deve aparecer no terminal do localHost. Se isso acontecer, então seu túnel foi estabelecido.

Conclusão

Para tornar sua localhost acessível da Internet. Neste blog, discutimos como estabelecer túneis para tornar sua localhost acessível à Internet. Dois métodos para estabelecer túneis foram discutidos que são Ssh tunelamento e Ngrok tunelamento. Inspeção do tráfego usando Ngrok O tunelamento também foi discutido. Depois disso, o processo de teste dos túneis usando netcat foi discutido. Depois de ler este blog, será muito fácil para você fazer o seu servidor da web local para o público.