NGROK

Using ngrok to access internal services

Purpose

Ngrok allows us to share internal services to Internet facing systems. It's an incredibly useful way to access internal systems or create a way to directly access sensitive network systems.

Setup

Visit ngrok.com to get set up with an account.

Download the tool at https://ngrok.com/download

Configure the ngrok preferences with the applicable key

ngrok config add-authtoken ***REDACTED KEY***

Usage

As always, we ask for help to learn what to do.

ngrok help

To start a listener, we can simply run the code below:

ngrok http 9999

This will result in a window similar to below:

In the example above, we can directly access the service on localhost:9999 by accessing the page at https://7807-52-22-69-233.ngrok.io. This was a python3 simple http server on that port.

EXAMPLES:
    ngrok http 80                    # secure public URL for port 80 web server
    ngrok http -subdomain=baz 8080   # port 8080 available at baz.ngrok.io
    ngrok http foo.dev:80            # 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 -hostname=foo.com 443  # TLS traffic for foo.com to port 443
    ngrok start foo bar baz          # start tunnels from the configuration file

Last updated