Cloudflared

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