Ngrok
Configuração Inicial
Registrando chave
ngrok config add-authtoken <key>
Ao realizar o comando acima, irá salvar sua chave em /home/mysther/.config/ngrok/ngrok.yml
.
Criando Túneis
Ao criar um túnel, será possíve acessar o seu host (mesmo em uma rede interna, como na empresa ou casa), em alguma porta (que pode ser escolhida) de forma externa. Em resumo, basta apenas ter internet para que possa acessar a sua máquina. Quando criar um túnel, verifique o valor de Forwarding
, que indicará algo como https://741s54ded2a.ngrok.app -> http://localhost:8080
. Isso significa que, quando acessar a URL externa https://741s54ded2a.ngrok.app
, irá ser redirecionado para o seu localhost na porta 8080 (que obviamente estará rodando algum serviço/listener).
HTTP
Abrindo um túnel para que seja possível acessar http://localhost:8080 de forma externa.
ngrok http 8080
Por padrão o redirecionamento é feito para o localhost, porém é possível personalizar esse redirecionamento. Note que você pode até mesmo redirecionar para um site externo qualquer.
ngrok http localhost:8080
ngrok http site-externo.com.br:443
Configurando senha de acesso no Ngrok.
ngrok http http://localhost:8080 --basic-auth '<user>:<pass>'
Configurando ranges de IP que podem e não podem acessar o Ngrok
ngrok http 80 --cidr-allow 110.0.0.0/8 --cidr-allow 220.12.0.0/16 --cidr-deny 110.2.3.4/32
TCP
De forma semalhante ao HTTP, aqui iremos mudar o Protocolo e obviamente o motivo disso ser feito. Acima utilizamos para páginas web, já no TCP podemos trabalhar com SSH, RDP, Reverse Shell etc. Caso queira utilizar SSH, verifique nas configurações do próprio Ngrok para fazer isso.
Domínio Personalizado
Até então o ngrok está definindo aleatoriamente a URL externa. Temos dois modos de alterar isso, sendo a primeira, disponível na versão free do Ngrok. Note que só é possível alterar os subdomínios de .ngrok-free.app
.
ngrok http 8080 --domain <qualquer-coisa>.ngrok-free.app
Segue abaixo um tabela com os Domínios que podemos utilizar
ngrok.app
/ ngrok.dev
Disponível para contas pagas
ngrok-free.app
/ ngrok-free.dev
Disponíível para contas gratuitas
ngrok.io
Descontinuado e disponível apenas para contas legadas
Já para definir uma URL personalizdas é preciso estar com a versão paga, ir painel administrativo do ngrok, adicionar um Dominio e então executar o comando abaixo. Para que isso dê certo, é preciso também ir no painel adminsitrativo do Domínio (por exemplo, o https://registro.br/) e configurar um registro DNS do tipo CNAME para o host do Ngrok.
ngrok http http://localhost:8080 --domain=<domain.com>
ngrok http 8080 --domain <domain.com>
Utilizando um Domínio personalizado, podemos utilizar o HTTP, porém não podemos utilizar o TCP.
Múltiplos Túneis
Edite o arquivo de configuração localizado em /home/mysther/.config/ngrok/ngrok.yml
e deixe-o no padrão abaixo. Remova o campo domain
caso esteja utilizando a versão free e altere os demais valores de acordo com sua necessidade.
version: "2"
authtoken: <token>
tunnels:
<name-tunnel-1>:
domain: <seu-dominio.com.br>
addr: 8000
proto: http
<name-tunnel-2>:
addr: 22
proto: tcp
Agora execute com o comando abaixo para iniciar todos os tunéis de uma só vez
ngrok start --all
Caso quira executar somente um dos túneis, basta especificar o nome do túnel
ngrok start <name-tunnel-1>
Last updated
Was this helpful?