What is localtunnel?
The localtunnel npm package allows you to expose your localhost to the world for easy testing and sharing. It creates a publicly accessible URL that proxies all requests to your locally running webserver.
What are localtunnel's main functionalities?
Expose local server to the internet
This feature allows you to expose a local server running on a specific port to the internet by creating a tunnel. The code sample demonstrates how to create a tunnel to a local server running on port 3000 and log the public URL to the console.
const localtunnel = require('localtunnel');
(async () => {
const tunnel = await localtunnel({ port: 3000 });
// the assigned public url for your tunnel
// i.e. https://abcdefgjhij.localtunnel.me
console.log(tunnel.url);
tunnel.on('close', () => {
// tunnels are closed
});
})();
Specify subdomain
This feature allows you to request a specific subdomain for your tunnel, making the URL easier to remember and share. The code sample shows how to request a tunnel with a custom subdomain.
const localtunnel = require('localtunnel');
(async () => {
const tunnel = await localtunnel({ port: 3000, subdomain: 'mycustomsubdomain' });
console.log(tunnel.url);
})();
Close the tunnel
This feature allows you to programmatically close the tunnel when you are done with it. The code sample demonstrates how to close the tunnel.
const localtunnel = require('localtunnel');
(async () => {
const tunnel = await localtunnel({ port: 3000 });
console.log(tunnel.url);
// When you are done with the tunnel
tunnel.close();
})();
Other packages similar to localtunnel
ngrok
Ngrok is a popular tool that provides similar functionality to localtunnel. It creates secure tunnels to localhost and offers features like custom domains, reserved subdomains, and encrypted tunnels. Ngrok also has a paid version with additional features.
serveo
Serveo is an SSH server just for remote port forwarding. It works using existing SSH functionality, so there's no need to install a client. However, as of my knowledge cutoff in 2023, Serveo has been temporarily disabled due to phishing abuse.