Skip to content

Update cloudflared

Updates will cause cloudflared to restart which will impact traffic currently being served. You can perform zero-downtime upgrades by using Cloudflare's Load Balancer product or by using multiple cloudflared instances.

Remotely-managed tunnels

To update cloudflared for a tunnel created through the dashboard:

Run the following command:

PowerShell
cloudflared update

This updates cloudflared and automatically restarts the service.

Update with Cloudflare Load Balancer

You can update cloudflared without downtime by using Cloudflare's Load Balancer product with your Cloudflare Tunnel deployment.

  1. Install a new instance of cloudflared and create a new Tunnel.
  2. Configure the instance to point traffic to the same locally-available service as your current, active instance of cloudflared.
  3. Add the address of the new instance of cloudflared into your Load Balancer pool as priority 2.
  4. Swap the priority such that the new instance is now priority 1 and monitor to confirm traffic is being served.
  5. Once confirmed, you can remove the older version from the Load Balancer pool.

Update with multiple cloudflared instances

If you are not using Cloudflare's Load Balancer, you can use multiple instances of cloudflared to update without the risk of downtime.

  1. Install a new instance of cloudflared and create a new Tunnel.
  2. Configure the instance to point traffic to the same locally-available service as your current, active instance of cloudflared.
  3. In the Cloudflare DNS dashboard, replace the address of the current instance of cloudflared with the address of the new instance. Save the record.
  4. Remove the now-inactive instance of cloudflared.

Run multiple instances in Windows

Windows systems require services to have a unique name and display name. You can run multiple instances of cloudflared by creating cloudflared services with unique names.

  1. Install and configure cloudflared.
  2. Next, create a service with a unique name and point to the cloudflared executable and configuration file.
PowerShell
sc.exe create <unique-name> binPath='<path-to-exe>' --config '<path-to-config>' displayname="Unique Name"
  1. Proceed to create additional services with unique names.

  2. You can now start each unique service.

PowerShell
sc.exe start <unique-name>