Wednesday 23 February 2022

How to install ngrok on Linux

ngrok is a tool which provides a public URL to the localhost server which is behind the router. It is useful for testing e.g. your web server. 

To install it on Ubuntu, go to download page and download an archive from Extract its content (ngrok directory) into /usr/local/bin:

$ sudo tar xvzf ~/Downloads/ngrok-stable-linux-amd64.tgz -C /usr/local/bin

Let's check that it's indeed in the desired location:

$ ls -la /usr/local/bin | grep ngrok
-rwxr-xr-x  1 root root 30053267 May  4  2021 ngrok

 Let's run it:
$ ngrok

   ngrok - tunnel local ports to public URLs and inspect traffic

    ngrok exposes local networked services behinds NATs and firewalls to the
    public internet over a secure tunnel. Share local websites, build/test
    webhook consumers and self-host personal services.
    Detailed help for each command is available with 'ngrok help <command>'.
    Open http://localhost:4040 for ngrok's web interface to inspect traffic.

    ngrok http 80                    # secure public URL for port 80 web server
    ngrok http -subdomain=baz 8080   # port 8080 available at
    ngrok http            # tunnel to host:port instead of localhost
    ngrok http https://localhost     # expose a local https server
    ngrok tcp 22                     # tunnel arbitrary TCP traffic to port 22
    ngrok tls 443  # TLS traffic for to port 443
    ngrok start foo bar baz          # start tunnels from the configuration file


  inconshreveable - <>

   authtoken    save authtoken to configuration file
   credits    prints author and licensing information
   http        start an HTTP tunnel
   start    start tunnels by name from the configuration file
   tcp        start a TCP tunnel
   tls        start a TLS tunnel
   update    update ngrok to the latest version
   version    print the version string
   help        Shows a list of commands or help for one command

We could have extracted ngrok into any directory e.g. default ~/Downloads/ngrok-stable-linux-amd64 but then we'd be able to run it as:

~/Downloads/ngrok-stable-linux-amd64$ ./ngrok

To start using ngrok we need to authenticate our local ngrok agent first. For this, we need to log in to our ngrok account and get authentication token first:


Let's authenticate ngrok agent now (with copy-pasted Authtoken):
$ ngrok authtoken 2pCTN...fwvjiUA2
Authtoken saved to configuration file: /home/bojan/.ngrok2/ngrok.yml

Authtoken can be reset any time in our ngrok account. We can check the current value by looking at this configuration file:

$ cat /home/bojan/.ngrok2/ngrok.yml
authtoken: 2pCTN...fwvjiUA2

Let's run it:

$ ngrok http 5000

To stop it, use CTRL-C.

No comments: