A Comprehensive Review And Comparison of Popular Ngrok Alternatives With Features, Installation, Usage and Pricing To Help You Select The Best Tool:
In this tutorial, we will explore the most popular Ngork competitors that are available in the market.
This is an in-depth comparison of the various tools similar to Ngork along with their features, installation, pricing, etc.
=> Read Through All Ngrok Tutorials Here
Table of Contents:
Top Ngrok Alternatives To Know
Enlisted below are the most popular Ngork Competitors that are available in the market.
- Localtunnel
- Serveo
- Teleconsole
- Pagekite
Comparison of Ngrok and Its Alternatives
Parameter | Authorization | Support – HTTP / HTTPS, SSH | Usage | Free vs Paid | Subdomain Support |
---|---|---|---|---|---|
Ngrok | User is required to sign up in order to generate auth token. | Supports all 3 protocols. | Usage is through ngrok executable (or through node js based library). | Offers both free and paid version. Free version has limited but rich functionalities. | Subdomains are supported in the paid version. |
Localtunnel | No auth token is required. You can simply install the node package and start using it. | Supports http/https. | Can be simply used through nodejs executable. Example: lt –port 3000 | Is Free. | Free version supports subdomain too. If available it starts subdomain with the given value. |
Serveo | No auth token is required. The application can be used directly through the command prompt even without any installation. | Supports http/https, tcp. | Can be used with or without executable ssh -R 80:localhost:3000 serveo.net | Both free and paid versions are available. | Supports subdomain as per the availability. |
Teleconsole | Not required. | HTTP/HTTPS is not directly supported but is through SSH. It is a good and extremely easy utility for SSH. | Teleconsole binary needs to be installed and later it can be used as a shell script. | Free and open sourced. | Not applicable as it’s mostly used for SSH session sharing. |
Pagekite | One time account setup is required. | Supports HTTP/HTTPS, SSH, and TCP. | One time subdomain setup which is tied to email address is required and can be used every time when tunnel setup is required. | Both free and paid options are available. (Free for a month). | Subdomain is supported as first class citizens. It is a part of the account setup itself. |
Parameter | Configuration Files | Multiple Tunnels | Documentation | Platform |
---|---|---|---|---|
Ngrok | Supports yaml based configuration files which could also be used to define and execute tunnels. | Ngrok supports running multiple tunnels through the config files. | Well maintained documentation. | Supports all platforms. |
Localtunnel | Config file support is not available. | No support is available for running multiple tunnels. | No maintained documentation. | Supports all platforms. |
Serveo | Config file support not available. | 3 simultaneous tunnels can be created for the free version. | Well maintained documentation. | Supports all platforms. |
Teleconsole | Not applicable | Not applicable | Well maintained documentation. | Currently supports Unix based and MacOS only. |
Pagekite | Not applicable | Not applicable | Well maintained documentation. | Supports all the platforms as it is a python script that can be executed on almost all the platforms. |
Let’s Explore!!
#1) Localtunnel
Localtunnel is a free tunneling solution, to host your local web applications over the cloud and access the app from the publicly accessible web url.
Installation & Usage
Installation is simple as it’s a node package that could be installed globally or locally.
npm install -g localtunnel
Once the installation is complete, you can simply create a tunnel as shown below, for any port that will forward the request to the locally hosted and running application.
lt --port 3000
The above command will issue a web url as below and forward all the requests to that url to your locally hosted application.
your url is: https://ordinary-parrot-7.localtunnel.me
The above url can be simply accessed to view the locally hosted app on port 3000 (i.e. the port for which the tunnel was actually created).
Specifying a subdomain for your tunnel is also possible, through the subdomain flag. This will allow you to have a custom sub-domain which will be easy to remember.
lt --port 3000 --subdomain mynodejsapp
You will get the url for your subdomain as shown below (subject to the availability).
https://mynodejsapp.localtunnel.me
Documentation: Localtunnel
Website: Localtunnel
#2) Serveo
Serveo is another easy-to-use alternative to Ngrok. It allows you to create local tunnels without installing any other third-party software.
It’s an SSH server that allows port forwarding for the locally hosted application.
Suggested reading =>> Port Forwarding Tutorial
Installation & Usage
As opposed to the other tools like Localtunnel and Ngrok, you don’t need to install Serveo separately. You can simply use it through the command line.
For Example: For exposing a locally running application on port 3000, you can make it web-accessible using the following command.
ssh -R 80:localhost:3000 serveo.net
The above statement tells serveo.net domain to create a remote tunnel at port 80 on serveo.net and forward all the requests to the local port 3000.
Once the tunnel gets created, it displays the tunnel name, using which the locally hosted applications can be accessed.
Forwarding HTTP traffic from https://cado.serveo.net Press g to start a GUI session and ctrl-c to quit
It also allows you to see all the requests/responses going through this tunnel, by viewing a command line log display (by pressing ‘g’ key as mentioned above).
Documentation: Serveo
Website: Serveo
#3) Teleconsole
Unlike HTTP / HTTPS, Teleconsole allows you to share your terminal session over the web by creating a unique session id.
It has to be used with caution and should be shared with someone extremely trustworthy, as it’s as good as giving full access to your terminal.
Let’s see how it works:
Teleconsole server is an SSH proxy, which generates a unique session ID for the requesting clients who want to share the terminal over the remote.
The clients who want to join the remote session need to use the generated session ID in order to access the shared terminal remotely.
Installation and Usage
Download the binaries for the respective platform from this location. Please note, that currently, it is available only for Unix, Linux, and macOS Platforms.
Once the binary is installed, it can be used as a simple shell script to execute.
Let’s see the below steps:
Once the session ID / Teleconsole ID is obtained, you can use the exposed web UI to access the terminal. The above screenshot shows a webUI for the created session. A remote client can simply use this URL to access the remote SSH session.
Let’s see how the session will look to the remote user.
In order to exit/disconnect the session, simply type “exit command” on the remote or local session and the session will get disconnected.
Documentation: Teleconsole
Website: Teleconsole
#4) Pagekite
Pagekite is another tool that is similar to Ngrok and supports HTTP / HTTPS / TCP and SSH tunnels.
The advantage of using pagekite over Ngrok is its stable domain names which are fixed during the account setup itself. But, this also has a disadvantage, one can not start multiple tunnels simultaneously unlike Ngrok.
Installation and Usage
It’s typically simple to use. A simple curl to get a Python-based executable is a one-time process.
Let’s see the steps below:
#1) get the Python-based executable using curl.
curl -O https://pagekite.net/pk/pagekite.py
#2) setup the pagekite account while starting the tunnel.
python pagekite.py 3000 {domain-name }.pagekite.me
#3) While the above command gets executed, it will prompt to register the given domain name against an email id that the user needs to provide. Once an available domain name is found and registration is successful, the domain name is setup.
Once the domain name setup is successful, the same domain name can be used for setting up the tunnel.
For Example: If the domain name setup is foodomain, then you can start a tunnel to the localhost port 3000 using the command below:
python pagekite.py 3000 foodomain.pagekite.me
Documentation: Pagekite
Website: Pagekite
Conclusion
In this tutorial, we looked at the most popular Ngrok alternatives and explored a few other tools like Localtunnel, Serveo, Pagekite, and Teleconsole that can perform the same or similar functionality.
We also compared all the tools against various parameters. You can select the best tool for your requirements based on this comparison and review. In general, Ngrok is more widely used compared to other tools.