---
description: Install and run cloudflared as a Windows service.
title: Windows
image: https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/as-a-service/windows/og.png?v=670a5f401668b36b
---

[Skip to content](#main-content)

> Documentation Index  
> Fetch the complete documentation index at: https://developers.cloudflare.com/tunnel/llms.txt  
> Use this file to discover all available pages before exploring further.

# Windows

Last updated Sep 11, 2026|Copy as Markdown| [View as Markdown](https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/as-a-service/windows/index.md)| [Agent setup](https://developers.cloudflare.com/agent-setup/)

You can install `cloudflared` as a system service on Windows.

## Configure `cloudflared` as a service

By default, Cloudflare Tunnel expects all of the configuration to exist in the `%USERPROFILE%\.cloudflared\config.yml` [configuration file](https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/configuration-file/). At a minimum you must specify the following arguments to run as a service:

| Argument | Description |
| --- | --- |
| `tunnel` | The UUID of your tunnel |
| `credentials-file` | The location of the credentials file for your tunnel |

## Run `cloudflared` as a service

1. [Download](https://developers.cloudflare.com/tunnel/downloads/) the latest `cloudflared` version.
2. Create a new directory:

   ```bash
   C:\Cloudflared\bin
   ```


3. Copy the `.exe` file you downloaded in step 1 to the new directory and rename it to `cloudflared.exe`.
4. Open CMD as an administrator and go to `C:\Cloudflared\bin`.
5. Run this command to install `cloudflared`:

   ```bash
   cloudflared.exe service install
   ```


6. Next, run this command to create another directory:

   ```bash
   mkdir C:\Windows\System32\config\systemprofile\.cloudflared
   ```


7. Log in and authenticate `cloudflared`:

   ```bash
   cloudflared.exe login
   ```


8. The login command will generate a `cert.pem` file and save it to your user profile by default. Copy the file to the `.cloudflared` folder created in step 5 using this command:

   ```bash
   copy C:\Users\%USERNAME%\.cloudflared\cert.pem C:\Windows\System32\config\systemprofile\.cloudflared\cert.pem
   ```


9. Next, create a tunnel:

   ```bash
   cloudflared.exe tunnel create <Tunnel Name>
   ```

   This will generate a [credentials file](https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/local-tunnel-terms/#credentials-file) in `.json` format.
10. [Create a configuration file](https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/create-local-tunnel/#4-create-a-configuration-file) with the following content:

    ```txt
    tunnel: <Tunnel ID>
    credentials-file: C:\Windows\System32\config\systemprofile\.cloudflared\<Tunnel-ID>.json
    # Uncomment the following two lines if you are using self-signed certificates in your origin server
    # originRequest:
    #   noTLSVerify: true

    ingress:
      - hostname: app.mydomain.com
        service: https://internal.mydomain.com
      - service: http_status:404
    logfile:  C:\Cloudflared\cloudflared.log
    ```


11. Copy the credentials file to the folder created in step 6:

    ```bash
    copy C:\Users\%USERNAME%\.cloudflared\<Tunnel-ID>.json C:\Windows\System32\config\systemprofile\.cloudflared\<Tunnel-ID>.json
    ```


12. Validate the ingress rule entries in your configuration file using the command:

    ```bash
    cloudflared.exe tunnel ingress validate
    ```


13. In the Registry Editor, go to `Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cloudflared`.
14. In the Cloudflared registry entry, modify `ImagePath` to point to the `cloudflared.exe` and `config.yml` files. Make sure that there are no extra spaces or characters while you modify the registry entry, as this could cause problems with starting the service.

    ```bash
    C:\Cloudflared\bin\cloudflared.exe --config=C:\Windows\System32\config\systemprofile\.cloudflared\config.yml tunnel run
    ```


15. If the service does not start, run the following command from `C:\Cloudflared\bin`:

    ```bash
    sc start cloudflared
    ```

    You will see the output below:

    ```txt
    SERVICE_NAME: cloudflared
            TYPE               : 10  WIN32_OWN_PROCESS
            STATE              : 2  START_PENDING
                                    (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
            WIN32_EXIT_CODE    : 0  (0x0)
            SERVICE_EXIT_CODE  : 0  (0x0)
            CHECKPOINT         : 0x0
            WAIT_HINT          : 0x7d0
            PID                : 3548
            FLAGS              :
    ```



## Next steps

You can now [route traffic through your tunnel](https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/create-local-tunnel/#5-start-routing-traffic). If you add IP routes or otherwise change the configuration, restart the service to load the new configuration:

```bash
sc stop cloudflared
sc start cloudflared
```

Was this helpful?

YesNo

## On this page

[![](https://developers.cloudflare.com/_astro/logo.te5VL_aD.svg)Docs](https://developers.cloudflare.com/)

```json
{"@context":"https://schema.org","@type":"TechArticle","@id":"https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/as-a-service/windows/#page","headline":"Windows","description":"Install and run cloudflared as a Windows service.","url":"https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/as-a-service/windows/","inLanguage":"en","image":"https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/as-a-service/windows/og.png?v=670a5f401668b36b","dateModified":"2026-09-11","publisher":{"@type":"Organization","name":"Cloudflare","description":"One platform for your apps, agents, and workforce. Build, secure, and scale without managing infrastructure","url":"https://www.cloudflare.com/","sameAs":["https://github.com/cloudflare","https://www.linkedin.com/company/cloudflare","https://x.com/cloudflare"],"logo":{"@type":"ImageObject","url":"https://developers.cloudflare.com/logo.svg"},"address":{"@type":"PostalAddress","streetAddress":"101 Townsend St","addressLocality":"San Francisco","addressRegion":"CA","postalCode":"94107","addressCountry":"US"},"contactPoint":[{"@type":"ContactPoint","contactType":"Customer Support","url":"https://support.cloudflare.com/","availableLanguage":["English"]},{"@type":"ContactPoint","contactType":"Sales","url":"https://www.cloudflare.com/contact/","availableLanguage":["English"]}]},"isPartOf":{"@type":"WebSite","@id":"https://developers.cloudflare.com/#website","name":"Cloudflare Docs","url":"https://developers.cloudflare.com/"},"keywords":["Windows"]}
```
