What is ngrok?

Ngrok exposes local servers behind NATs and firewalls to the public internet over secure tunnels.

Sign up

how it works

1

Download ngrok

Download and run a program on your machine and provide it the port of a network service, usually a web server.

2

Connect your service

Connect to the ngrok cloud service which accepts traffic on a public address.

3

Access from anywhere

Traffic is relayed through to the ngrok process running on your machine and then on to the local address you specified.

What it's good for

Run personal cloud services from your home

Demo websites without deploying

Build webhook consumers on your dev machine

Test mobile apps connected to your locally running backend

Stable addresses for your connected devices that are deployed in the field

A few great features

secure tunnels

Easy HTTPS

Instantly create a public HTTPS url for a website running locally on your development machine. ngrok offloads TLS so you don't have to worry about your configuration.

Authenticated Access

Set HTTP auth credentials to protect access to your tunnel and those you share it with. ngrok also supports other authentication methods.  Add OAuth to your endpoints automatically; no code required.

developer friendly

Fast & Reliable

ngrok tunnels run using an optimized version of the technology that powers HTTP/2 so that your tunneled services load fast. ngrok runs in multiple regions and availability zones around the globe, ensuring that your tunnels are always online.

Target Virtual-Host Sites

Rewrite the Host header of tunneled requests to target a specific site in your WAMP/MAMP/Pow development environment.

ngrok http -host-header=mysite.dev 80

No More Port Forwarding

Don't configure port forwarding on your router or waste time setting up dynamicDNS solutions. ngrok works everywhere with no changes, even when a device changes networks.

Automate with the ngrok API

Dynamically start, stop and query tunnel status all with a simple RESTful API. Reconfigure the behavior of your tunnels on the fly.

be more productive

Request Inspection

Use ngrok's web inspection interface to understand the HTTP request and response traffic over your tunnel.

http://localhost:4040

Multiple Simultaneous Tunnels

Run multiple tunnels simultaneously with a single ngrok client.

ngrok start demo-site ssh admin-ui

Easily Build Services that Respond to Webhooks

Use ngrok URLs to configure public webhooks to a private service.  Easily develop and debug webhook integrations by simply 'replaying' webhook requests to your dev server.

Shared Account Access for Teams

Accounts can share access to reserved domains and addresses allowing multiple developers to collaborate on a project while still having their own credentials.

multiple protocol support

TCP Tunnels

Expose any networked service to the internet, even ones that don't use HTTP like SSH. Use ngrok to manage access to any TCP service without having to setup complicated port forwarding rules.

ngrok tcp 22

HTTP(S)

ngrok supports both HTTP and HTTPS tunnels out of the box. Great for sharing local web servers, demoing a development website, or sharing access to internal APIs with 3rd parties.

Websocket Support

Share your real-time web apps! ngrok tunnels websocket connections over HTTP tunnels without any changes.

Can I programmatically manage hundreds of ngrok processes or more?

Yes. ngrok link is a set of custom plans and additional features that allow you to use ngrok to manage connectivity to hundreds or thousands of devices or for targeted access into customer networks as a lightweight alternative to VPN. Contact sales@ngrok.com for more details.

Can I run my own ngrok server?

Yes, kind of. You may license a dedicated installation of the ngrok server cluster for commercial use. You provide us with keys to an AWS account and we will install the server cluster software into that account. We then provide on-going maintenance, operations, updates, monitoring and support for your dedicated cluster. Please contact sales for further details. It is not currently possible to license an on-prem version of the ngrok software to operate yourself, although feel free to get in touch if you're interested in that.