Public Access to Localhost: A Guide to Using Ngrok


Developers often work on projects locally using localhost servers. However, sharing these projects for testing or collaboration purposes can be challenging due to the restrictions of localhost. Ngrok offers a simple solution by creating secure tunnels to localhost, making local development servers publicly accessible. In this guide, we'll explore how to use Ngrok to expose localhost URLs for public access.

What is Ngrok?

Ngrok is a powerful tool that creates secure tunnels to localhost. It establishes a connection between a public endpoint and a port on your local machine, effectively exposing your local server to the internet. Ngrok supports various protocols like HTTP, HTTPS, TCP, and more, making it versatile for different use cases.

Getting Started:

  1. Sign Up and Download:

    • Visit the Ngrok website ( and sign up for an account.
    • After signing up, navigate to the downloads section and download the Ngrok binary suitable for your operating system.
  2. Installation:

    • Once downloaded, extract the Ngrok binary to a directory on your machine.
    • Optionally, add the Ngrok executable to your system's PATH for easy access from any directory.

Using Ngrok:

  1. Start Your Local Server:

    • Before using Ngrok, ensure that your local development server is up and running on a specific port. Ngrok will create a tunnel to this port.
  2. Running Ngrok:

    • Open a terminal or command prompt window.
    • Navigate to the directory where you extracted the Ngrok binary.
    • Run the following command to start a tunnel to your localhost server:
      ./ngrok http <port>
      Replace <port> with the port number where your local server is running (e.g., 3000 for a Node.js server).
  3. Accessing the Public URL:

    • After running the Ngrok command, it will generate a public URL that you can use to access your localhost server from anywhere.
    • Look for the URLs displayed in the Ngrok console under the "Forwarding" section. You'll typically see both HTTP and HTTPS URLs.
    • Share the provided Ngrok URL with anyone who needs access to your local server.

Additional Features:

  • HTTPS Support: Ngrok provides secure HTTPS tunnels by default, ensuring encryption for data transmission.
  • Custom Subdomains: Ngrok allows you to reserve custom subdomains for your tunnels, providing a more branded and memorable URL.
  • Authentication: Secure your Ngrok tunnels with basic authentication to restrict access to authorized users only.
  • TCP Tunnels: Besides HTTP/HTTPS, Ngrok supports TCP tunnels, enabling access to other services running on your local machine, such as databases.

Security Considerations:

  • While Ngrok is a convenient tool for temporary public access to localhost, be cautious when exposing sensitive data or services.
  • Avoid using Ngrok for production deployments without proper security measures in place.
  • Ngrok URLs are randomly generated and can be accessed by anyone who obtains them, so exercise caution when sharing them.


Ngrok simplifies the process of making localhost URLs accessible to the public, facilitating easier testing, collaboration, and demonstrations. By following the steps outlined in this guide, you can quickly set up Ngrok to expose your local development server to the internet, enabling seamless sharing and collaboration in your projects.

Leave your comment