Ngrok is an ingress-as-a-service that provides tunnels facilitating instant ingress to your apps in any cloud, private network, or device. Using Ngrok tunnels you can share your website / app from your localhost. It has many other use cases, such as connecting to IoT devices behind NAT and firewall, receiving webhooks, debugging HTTP requests, and more. Recently, ngrok has expanded its offerings to API gateway, firewall, and load balancing to host on-premise apps and services. Although very mature, Ngrok has its own limitations of being a complex ingress-as-a-service.
In this article, we will explore the best 10 alternatives of Ngrok in 2024. We will cover the features, installation process, ease of use and pricing of the Ngrok alternatives to help you choose the best one.
Before jumping into the alternatives for Ngrok, we will have a brief overview of Ngrok itself.
Ngrok provides tunnels for ingress through its programmable network edge. It offers HTTPS, TCP, and TLS tunnels. It provides observability as well as the ability to change traffic parameters such as headers on the go to your apps with no code changes. In order to use Ngrok you must download the Ngrok client and sign up to get an account. In the paid plans you get features such as webhook verification, OAuth authentication, custom domain, persistent TCP port, etc.
Ngrok starts at $8 per month for the “Personal” plan, which provides one persistent domain and TCP port. It has a bandwidth cap of 1GB per month. The “Pro” plan, priced at $20 per month, offers features such as IP whitelisting and unlimited webhook verification. It charges $0.10/GB for bandwidth exceeding 1GB per month.
Pinggy.io is a tunneling tool that gives a public address to access your localhost, even while sitting behind a NAT or a firewall – all this in a single command. With this Ngrok alternative, without downloading anything, a single command gives users access to your website / app hosted in localhost without configuring the cloud, or any port forwarding, or DNS, or VPN.
To get how simple it is to open a tunnel, here is an example. If you want to share your React app running on localhost:3000
, you can do so using pinggy with the command:
ssh -p 443 -R0:localhost:3000 a.pinggy.io
Pinggy is one of the Ngrok alternatives which you can try out for free without signing up for an account. Over Ngrok, it provides features such as QR codes for tunnel URLs and an HTTP request / response inspection tool within the terminal.
Pinggy is one of the cheaper Ngrok alternatives. It has a free tier, and the paid tier starts at $2.5 per month. It offes all features including custom domains, persistent TCP ports, live header manipulation, in this plan.
LocalXpose is a reverse proxy tool that provides a public URL to localhost. This is one of the most feature complete alternatives of Ngrok. By simply downloading their client you can create HTTP / HTTPS tunnels, and also TCP / TLS as well as UDP tunnels. Among the three it is the only one that supports UDP traffic. LocalXpose also provides a built-in file server to share your files instantly.
LoxalXpose starts at $6 per month for 10 tunnels.
Localtunnel is a Ngrok alternative that comes as an npm package. The package lets you create http / https tunnels to localhost. It provides a random subdomain when you run it through your terminal. Being a node package, localtunnel can be integrated to your applications as a library and you can use it to test your nodejs apps.
Localtunnel is free and it does not have a paid tier. It does not provide custom domain or subdomains or TCP tunnels.
Zrok is an impressive open source Ngrok alternative that operates on the principles of zero trust networking. Built on top of OpenZiti, a programmable zero trust network overlay, zrok provides users with a secure and efficient way to share resources both publicly and privately.
Users can download zrok from GitHub https://github.com/openziti/zrok/releases/latest. It is one of the best self-hosted alternatives of Ngrok.
Zrok is open source and you need to host in a server.
localhost.run is possibly the simplest tunneling tool which is client-less and can instantly make a locally running application available on an internet accessible URL.
Just run the following command to create a tunnel to port 3000
:
ssh -R 80:localhost:8080 localhost.run
Serveo is another alternative to Ngrok that does not require any client installation. Serveo is “an SSH server just for remote port forwarding”. With one ssh command, users can get a URL through which they can expose a port of their localhost.
Serveo is free! However, you can donate to support Serveo.
Tailscale is not exactly an Ngrok alternative, rather it is a VPN service. Instead of using a central VPN server employed by traditional VPN services, Tailscale uses a mesh network. The strategy employed by Tailscale prevents centralization whenever feasible. This leads to increased throughput and decreased latency, as machine-to-machine network traffic can move directly. Moreover, opting for decentralization enhances stability and dependability by minimizing instances of singular failure points.
The Tailscale Funnel represents a functionality enabling the directing of external internet traffic towards one or multiple nodes within your Tailscale network. This can be likened to the act of openly sharing a node, granting accessibility to anyone, irrespective of their possession of Tailscale.
Using Tailscale Funnel you can achive the functionality of Ngrok.
Cloudflare Tunnel allows users to connect their applications and services to cloudflare infrastructure without requiring a public IP address. To use Cloudflare Tunnels, users need to install a daemon called cloudflared
on their local computer. Cloudflare Tunnels are capable of creating secure connections for various protocols like HTTP web servers, SSH servers, and remote desktops to link to Cloudflare. This ensures that your end-users can route traffic via Cloudflare securely, while preventing attacks.
In the broad scheme of Cloudflare offerings, using Cloudflare Tunnels, organizations can setup Internet-native Zero Trust Network Access (ZTNA). Read more about it here.
Playit.gg is specifically targeted towards gamers. It offers TCP as well as UDP tunnels to enable playing games such as Minecraft. It supports custom domains as well as subdomains.
You need to download the playit.gg tool, and install it to start the tunnels. It is available for all platforms - Windows, Mac, and Linux. The client application is open source, which adds to its trustworthiness.
The free version offers up to 4 TCP tunnels and 4 UDP tunnels. The paid version starts from 3 USD per month and offers custom domains and dedicated IP addresses.
Pagekite has been around for more than 14 years now. It offers HTTP(S) and TCP tunnels. It has built-in IP whitelisting, password auth, and other advanced features. The free tier includes 2 GB of transfer quota per month, as well as custom domains.
Although the Pagekite program has to be downloaded and installed to access the service, the tool is entirely open-source and written in Python. So, if you are a developer, feel free to hack away!
If you are looking for only open source ngrok alternatives, here is a list:
In conclusion, we discussed some of the best alternatives of Ngrok in 2024, some of which are much easier to use without the need to download anything, such as localhost.run and Pinggy. Some are packed with features such as LocalXpose. We also took a look at Zrok which is an open-source and self-hosted alternative to Ngrok.