Cloudflare Quick Tunnels: Share Localhost Without Port Forwarding
Your app is running on http://localhost:8000, the page looks right, and then a teammate asks to see it from a phone. That address is not a share link: localhost means the same computer that made the request. Cloudflare Quick Tunnels bridge that gap. Using cloudflared, Cloudflare’s command-line client, you can give a local web app a temporary public HTTPS address—HTTPS is the encrypted form of ordinary web traffic—without adding a domain or opening an inbound port.
That makes a Quick Tunnel useful for previewing a feature, checking a responsive layout on a real device, or receiving a webhook, which is an HTTP callback sent by another service. Your app stays on your machine; a small process creates an outbound connection and carries requests back to the port where the app is already listening. (developers.cloudflare.com)
A localhost address is not a share link
Think of a tunnel as a road that starts from inside your network. Traditional port forwarding asks your router or firewall to accept incoming traffic and direct it toward your computer. A Quick Tunnel takes the opposite approach: cloudflared calls out to Cloudflare, then uses that established connection to deliver web requests back to your local application.
Cloudflare’s edge network is a collection of servers distributed around the world. When someone opens your temporary link, the request first reaches that network, travels through the tunnel, and finally arrives at localhost. The important detail is that your laptop does not need a public IP address or an inbound firewall rule for this path to work.
The flow looks like this:
- A browser opens the generated
trycloudflare.comaddress. - Cloudflare receives the HTTPS request at its edge.
- The request travels through the connection maintained by
cloudflared. cloudflaredforwards it to the local port where your app is running.
That small change in direction is what makes a localhost tunnel so useful during development.
Install the tool and start a local server
Install cloudflared for your operating system. On macOS, Homebrew provides the shortest route:
brew install cloudflared
cloudflared --version
Linux users can install a package or download the matching binary. Windows users can download the executable or installer. Cloudflare publishes packages for common architectures, along with Docker images and release binaries. (developers.cloudflare.com)
For a quick demonstration, start a basic web server in a directory containing a few files:
python -m http.server 8000
Here, 8000 is a port—a numbered doorway that applications use to receive network traffic. You can replace it with the port used by Vite, Next.js, Django, Rails, an API server, or another development tool. The only requirement is that the service is reachable from the same machine running cloudflared.
Quick Tunnels do not require a Cloudflare account, a DNS record, or a tunnel configuration file. That is why they work well for a first experiment or a short-lived review link. (developers.cloudflare.com)
Create the Quick Tunnel
Open a second terminal window and point cloudflared at the local server:
cloudflared tunnel --url http://localhost:8000
The command contacts Cloudflare, creates a temporary tunnel, and prints a randomly generated hostname similar to this:
https://quiet-sky-1234.trycloudflare.com
Open that address from another device, send it to a teammate, or use it as a temporary webhook endpoint. Keep both terminal processes running. The local server supplies the content, while cloudflared keeps the connection to Cloudflare alive; closing either process breaks the path.
Secure enough for a preview, not a permission system
A Quick Tunnel solves network reachability, but it does not automatically solve application access. The public address uses HTTPS, and the connection from your machine is outbound, yet anyone who obtains the generated link can send requests to your app. HTTPS protects traffic in transit; it does not decide whether a visitor is allowed to use the application.
Treat the link as public. Use sample data instead of production records, keep administrator screens away from the tunnel, and make sure your application’s own login or authorization checks are enabled. For webhook testing, validate the sender’s signature or a secret token rather than trusting the fact that the request arrived through Cloudflare.
Know the limits before you depend on it
As of September 18, 2026, Cloudflare positions Quick Tunnels for testing and development rather than production traffic. The temporary hostname is random, and creating a new tunnel can give you a different address. Cloudflare also documents a limit of 200 concurrent in-flight requests, meaning requests that have started but have not finished, and Quick Tunnels do not support Server-Sent Events, a technique that keeps a browser connection open for server-pushed updates. (developers.cloudflare.com)
That last restriction can be surprising. A normal page may load correctly while a live notification panel, streaming log viewer, or development dashboard appears frozen because it relies on Server-Sent Events. Quick Tunnels also have no uptime guarantee, so a preview link should not become part of a critical workflow. (github.com)
There is one more practical snag: an existing .cloudflared/config.yaml file can prevent a Quick Tunnel from working as expected. Quick Tunnels do not need that file, so temporarily moving it aside or using a named tunnel may resolve the conflict.
When a preview becomes a real service
Most connection failures are easier to diagnose than they first appear. If your app runs on port 3000 but the tunnel points to port 8000, Cloudflare cannot reach the right process. Test the local address first, then compare it with the URL in the tunnel command. If the page loads but links redirect visitors to localhost, update the application’s public base URL; a visitor’s browser interprets localhost as their own device.
Quick Tunnels are a good fit for a few minutes or a day of collaboration. When you need a stable hostname, access policies that control who may enter, automatic startup, monitoring, or multiple tunnel connectors for availability, move to a named or remotely managed tunnel. That option requires more setup, but it is designed for a persistent connection rather than a disposable preview.
Cloudflare Quick Tunnels occupy a useful middle ground. Your application remains local, while the outside world gets a temporary HTTPS doorway. One command turns an isolated development server into something a teammate, phone, or webhook service can reach—without turning your laptop into a permanent public host.
Comments (0)
No comments yet. Be the first to respond!
Leave a Comment
Your comment will be visible after review.