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. Although very mature, Ngrok has its own limitations of being a complex ingress-as-a-service.
In this article, we will explore the top 5 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.
Bonus: Tailscale
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.
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.
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.
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
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.
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.