Jump to content
From ArchWiki

Cloudflared may be used to run a local DNS over HTTPS server (DoH), i.e., a stub resolver.

## Installation

Install the cloudflared package.

## Configuration

Cloudflared by default ships with 1.1.1.1 and 1.0.0.1 enabled, with the DNS server runing at port 5300, and the server only accessible to localhost.

To change the configuration, edit the following file, replacing `<endpoint>` with preferred endpoints.

    /etc/cloudflared/config.yml

    ---
    logfile: /var/log/cloudflared.log
    proxy-dns: true
    proxy-dns-upstream:
     - <endpoint>
     - <endpoint>
     - <endpoint>
    proxy-dns-port: 53
    proxy-dns-address: 0.0.0.0

As per upstream documentation, here are the available endpoints:

Tip: cURL's documentation maintains a list of alternative public endpoints.

Endpoints | Description
--- | ---
     - https://1.0.0.1/dns-query
     - https://1.1.1.1/dns-query
     - https://2606:4700:4700::1111/dns-query
     - https://2606:4700:4700::1001/dns-query
| Standard
     - https://security.cloudflare-dns.com/dns-query
| Standard, but blocks malware
     - https://family.cloudflare-dns.com/dns-query
| Standard, but blocks malware and porn
     - https://9.9.9.9/dns-query
| Quad9

## Usage

Run `cloudflared` directly, or create a systemd service to run Cloudflared.

Note: Pending resolution of FS#75999, start and enable `cloudflared.service`. You will be able to use your device's IP address as a DNS server.
Tip: Use 1.1.1.1/help to check if browser is using Cloudflare DoH.

## See also

- Running a DNS over HTTPS Client - Cloudflare Resolver
- Introducing 1.1.1.1 for families

Category:

- Domain Name System