mrkeyoor.com_
Tue 01 Sept 17:40 UTC
Self-Hostedevaluationupdated 30 Aug 2026

cloudflared review

Cloudflared is the client that connects a private service to Cloudflare Tunnel through an outbound connection, so the service does not need a public inbound port. It can publish web origins through Cloudflare or help users reach protected SSH, RDP, and other Layer 4 services.

+24 / 1dstars / 7d
Verdict

Our cloudflared build took 91 seconds and 94 of 97 tests passed, so it is a practical fit for Cloudflare customers who can investigate three unresolved test failures. Use it when Cloudflare already owns the edge and removing inbound firewall exposure is worth the provider dependency. Choose frp or zrok when control of the relay and routing plane matters more than Cloudflare integration.

We ran it

Lab card: what happened when we ran cloudflaredScreenshot of cloudflared (developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel)
Install✓ · 38s0 packages
Build✓ · 91s
Tests✗ · 53s94 passed · 3 failed of 97 (go test)
Repo463 files~71,824 lines of source · 2.5 MB · 2 CI workflows · Dockerfile

Answers from our run

Does cloudflared build from source?

Dependencies installed in 38 seconds (0 packages), and the build succeeded in 91 seconds. We cloned commit 274888e into a clean Debian container with 3 CPUs and no project-specific setup.

Do cloudflared's tests pass?

Not all of them: 94 of 97 passed and 3 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use cloudflared?

Organizations that will not put public routing in a Cloudflare account or change authoritative nameservers: the README requires both for its standard public setup, with private routing described as an exception.

What are the alternatives to cloudflared?

frp, Tailscale, zrok. Our cloudflared build took 91 seconds and 94 of 97 tests passed, so it is a practical fit for Cloudflare customers who can investigate three unresolved test failures.

Setup3/538-second install, but accounts and route configuration remain
Docs4/5Clear install and routing links; source prerequisites are explicit
Community5/515,442 stars and active August 2026 issue and pull request work
Maturity4/5Frequent releases, though our run had three failed tests

Discussed on

  1. hnCfex: A CLI Tool Built on Cloudflared exposing HTTPS/HTTP/3 on your own domain5 points
  2. hnCloudflare Tunnel is now licensed under Apache4 points
  3. hnCloudflare's Agents.md3 points
  4. hnTurn cloudflared into an open source project?3 points
  5. hnRunning a DNS over HTTPS Client3 points

Who it’s for

Teams already using Cloudflare DNS and Access that want to publish an internal web service without opening an inbound firewall port.
Self-hosters who want a packaged binary or container for routing a local origin through Cloudflare.
Administrators using WARP for private routes or cloudflared access for protected SSH and RDP.
Go contributors prepared to install GNU Make and Cap'n Proto for source work.

Who it’s NOT for

Organizations that will not put public routing in a Cloudflare account or change authoritative nameservers: the README requires both for its standard public setup, with private routing described as an exception.
Operators who keep tunnel agents pinned for more than a year: Cloudflare says only releases within one year of the newest version are supported.
Azure Container Apps deployments that cannot tolerate brief QUIC interruptions: open issue 1728 reports connections timing out and reconnecting while the container stays healthy.
Monitoring setups that treat every error-level line as an incident: open issue 1726 reports normal HTTP/2 client cancellations being logged as errors.
Teams that require a clean test suite before evaluation: our fresh sandbox run ended with 94 passed and 3 failed tests.

Setup reality

Our sandbox install succeeded in 38 seconds and installed 0 system packages. The build succeeded in 91 seconds. Tests failed after 53 seconds: Go reported 94 passed and 3 failed out of 97. The log tail listed successful packages followed by FAIL; it did not identify the three failures in the supplied lines.

A named public tunnel needs a Cloudflare account, a site using Cloudflare nameservers, tunnel authentication, and hostname routing. Private routing can avoid the website requirement, while Quick Tunnels provide a trial path. Source builds currently document Go 1.26 or newer, GNU Make, and Cap'n Proto.

The daemon needs outbound reachability to Cloudflare and a configured origin. Cloudflare supports releases only within one year of the newest release. Open reports cover QUIC reconnects in Azure Container Apps and error-level logging for normal HTTP/2 cancellations, so production monitoring needs a trial with the intended network and workload.

The 2.5 MB client keeps inbound ports closed

Our 2.5 MB checkout contains the daemon that carries requests from Cloudflare's network to an origin through an outbound connection. A web server can stay off the public internet while Cloudflare handles the public hostname. That is the central reason to use cloudflared: firewall exposure shrinks, and the tunnel connects directly to the provider already serving DNS and edge traffic. The trade is equally direct. Reachability now depends on the local daemon, Cloudflare's control plane, and Cloudflare's network.

The repository had 463 files and about 71,824 source lines at commit 274888e, so this is more than a thin port-forwarding wrapper. The same client can reach protected Layer 4 origins for SSH or RDP, although the README points ordinary private-network users toward WARP instead of requiring a cloudflared command on every client. Public web routing, private routing, Access authentication, protocol negotiation, metrics, and service installation all live in this codebase. Operators should decide which of those roles they need before copying a broad configuration.

A 91-second build is easier than configuring the route

The source build passed in 91 seconds in our unprivileged Debian container. Current project instructions call for Go 1.26 or newer, GNU Make, and Cap'n Proto, then use make cloudflared. Most users can skip that toolchain because Cloudflare publishes standalone binaries, Debian and RPM packages, a Homebrew formula, Windows downloads, and a Docker image. The latest GitHub release, 2026.8.2, was published on August 14, 2026, with checksums for its downloadable artifacts.

Our install phase took 38 seconds and added 0 system packages in the supplied Go image. Running a named public tunnel still takes account work outside the binary: add a site to Cloudflare, point its nameservers there, authenticate the connector, and route a hostname to the origin. The README says private routing can avoid the website requirement. Quick Tunnels also provide a trial without first adding a site, which is useful for evaluation but should not be mistaken for the named production setup.

What happened when we ran it

Our sandbox installed cloudflared in 38 seconds, built it in 91 seconds, and then failed the test step after 53 seconds. Go reported 94 passed and 3 failed out of 97. Those figures come from commit 274888e in a fresh container with 3 CPUs, 8 GB of RAM, no secrets, and no elevated privileges. The checkout occupied 2.5 MB before the build and contained roughly 71,824 lines of source.

The supplied log tail names successful packages such as sshgen, stream, supervisor, tlsconfig, token, tracing, and websocket, then ends with FAIL. It does not show the names or error messages for the 3 failed tests, so assigning a cause would be guesswork. The useful result is narrower: install and compilation worked in the stated environment, while the complete Go test command did not pass. Our scan also found 2 CI workflow files and a Dockerfile, with no top-level tests directory.

Open protocol reports deserve a production trial

The 53-second failed suite is one reason to test the exact network path instead of treating a successful compile as deployment proof. Open issue 1609 says Quick Tunnels defaulted to QUIC rather than automatic protocol selection in version 2026.3.0; an open pull request proposes restoring automatic choice so HTTP/2 can be used where UDP is blocked. A separate August report from Azure Container Apps describes established QUIC connections timing out and reconnecting while the container itself remained healthy. That report does not establish whether Azure, QUIC, configuration, or cloudflared caused the interruptions.

Monitoring also needs calibration around long-lived streams. Issue 1726 reports that a normal HTTP/2 cancellation with error code 0 can appear at error level when a user closes a browser tab running server-sent events or live logs. On a repository with 94 passing tests in our run, one open report should not define the whole client. It can still create false incidents if an alert fires on every error line. Test reconnect behavior, streaming requests, and alert rules under the protocol your firewall permits.

August activity is current, while old agents lose support

GitHub recorded a push on August 28, 2026, two weeks after release 2026.8.2. The repository had 15,442 stars and 537 combined issues and pull requests when fetched. Recent reports and proposed fixes were receiving updates in the same month, which is better health evidence than the release tag alone. The large combined queue includes pull requests as well as issue reports. Operators can search it for platform-specific reports before settling on a deployment pattern.

Cloudflare's README says versions older than one year from the newest release can receive breaking changes and are outside the supported window. That policy turns upgrades into routine operations rather than an optional cleanup task. For an existing Cloudflare customer, the 38-second install and successful 91-second build make cloudflared easy to trial, and outbound-only origin access solves a concrete firewall problem. Teams seeking control over the relay should compare frp or zrok before putting a production hostname behind this client.

Alternatives

ProjectWhat it isPick it when
frp gh↗A reverse proxy that lets you operate both the server and client sides.pick this instead when you want to own the relay and avoid a Cloudflare account dependency.
Tailscale gh↗A WireGuard-based mesh client for reaching private machines and services.pick this instead when access is mainly for known devices and users rather than a public website.
zrokAn open-source sharing service built on OpenZiti with hosted and self-hosted modes.pick this instead when you want public sharing plus the option to run the sharing control plane yourself.

What people are saying

  1. [github-trending] cloudflare/cloudflared

Sources

  1. Cloudflared README
  2. Cloudflared repository
  3. Cloudflared 2026.8.2 release
  4. Quick Tunnel QUIC issue 1609
  5. HTTP/2 cancellation logging issue 1726
  6. Azure Container Apps QUIC issue 1728

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →