Multiple Tunnels/Configs per Cloudflared process


Is it possible to have multiple tunnels IDs within the same config.yml file?

The docs doesn’t clarify that, but, from a purely YAML perspective, it should be possible. Could anyone confirm if this is a working/supported behavior?

Thank you,

No, it is not possible.

Also, by design, we expect you to run 1 tunnel per box. Obviously there may be exceptions, mostly grounded on how teams and ops are organized in your case around hardware usage, but from a software perspective a single tunnel can expose arbitrary origins so it should suffice.


Basically, we would like to have a different tunnel for warp-routing (used for private networks), and other origins/resources (which are for public accesses).

I guess, we just have to run cloudflared twice, once for each config.yml.

On the note of warp-routing, can we define the private CIDRs on a per config.yml basis, instead of via the command prompt.

You can do that.

But you can also run a single Tunnel that exposes the private networks as well as the public hostname reachable resources.
Any reason to not stick with a single Tunnel (and hence a single cloudflared config and tunnel process)?

Good question. The answer is no.

In the meantime, I suggest to also check Tunnel’s UI, and just do it all there, rather than mess with the YAML configs:

Two use-cases:

  1. One of my clients - a small shared hosting provider - is looking to allow their clients to use Cloudflare Tunnels as a beta run… So, they’re considering various options on how that could work… Without having to run a CloudflareD for each of their client. A single tunnel can only work with a single CF Tenant.

  2. Note sure lol, a single tunnel to route both private and public traffic sounds a little bit off to some of my clients, especially with potential for misconfigurations.

Looks good actually, in a lot of cases, DevOps is preferred, being able to git a yml file is a plus.