CachyOS ships with a built-in DNS configuration tool in CachyOS Hello (the welcome app). It’s one of those distro-specific quality-of-life features that makes Arch actually approachable for networking tasks.

Here’s what it does under the hood, and how to use it.


The Architecture

CachyOS Hello’s DNS changer uses three layers:

CachyOS Hello DNS Changer
  ↓
blocky (local DoH proxy, listens on 127.0.0.1:53000)
  ↓
systemd-resolved (system DNS resolver, stub on 127.0.0.53)
  ↓
NetworkManager (per-connection DNS config)

When you select a provider like Quad9 with DoH enabled:

  1. blocky starts as a local proxy — it receives DNS queries from systemd-resolved, wraps them in HTTPS (RFC 8484), and forwards to Quad9’s DoH endpoint
  2. systemd-resolved is configured to forward to blocky’s local address
  3. NetworkManager sets the per-connection DNS to point at systemd-resolved’s stub

This means all DNS traffic from your machine is encrypted end-to-end, bypassing your ISP’s resolvers entirely.


What Providers Are Available

CachyOS Hello includes 17 DNS providers out of the box:

Provider DoH/DoT Jurisdiction
Quad9 ✅ Both Switzerland (zero-log, audited)
Cloudflare ✅ Both US (CLOUD Act)
Google ✅ Both US (logs anonymised 48h)
AdGuard ✅ Both EU (no-log)
Cisco Umbrella (OpenDNS) ✅ Both US
DNS.Watch EU (no-log)
GCore EU
FFMUC ✅ Both EU
Yandex (+ variants) ✅ Both RU
阿里云 (AliDNS) ✅ Both CN
腾讯云 DNSPod (Tencent) ✅ Both CN

Plus custom server support (any IP or DoH URL).


How to Set Quad9 (GUI)

  1. Open CachyOS Hello from your application menu (or run cachyos-hello in terminal)
  2. Click the DNS tab/section
  3. Select your connection — for Singtel Fibre users, this is SINGTEL-11D4 (your WiFi SSID)
  4. Choose Quad9 from the provider list
  5. Check Enable DNS-over-HTTPS (DoH) for encrypted transport
  6. Click Apply

A polkit dialog will ask for your password (this is normal — system DNS changes need root).


The CLI Version

# List connections
cachyos-hello dns list-connections

# List available servers
cachyos-hello dns list-servers

# Set Quad9 with DoH on your WiFi
cachyos-hello dns set \
  --connection "SINGTEL-11D4" \
  --server quad9 \
  --doh

The CLI version triggers the same polkit prompt. From a terminal inside a desktop session, it should work. From a remote SSH session or a non-graphical TTY, polkit can’t show the dialog and the command will time out.


Verification

# Check which resolver is active
resolvectl status

# Should show Quad9 as the current DNS server
# or 127.0.0.53 (systemd-resolved stub forwarding to blocky → Quad9)

# Query a domain to confirm resolution
resolvectl query google.com

# Check blocky is running (if DoH is enabled)
systemctl --user status blocky

What This Changes

Before After
192.168.1.254 (Singtel ONT) → Singtel DNS 9.9.9.9 via DoH
Unencrypted DNS visible to ISP Encrypted DNS (DoH)
Query logs retained per IMDA Quad9 zero-log policy
~28ms average latency ~8ms plain / ~35ms DoH

The Singtel ONT no longer sees your DNS queries — it only sees encrypted HTTPS traffic to Quad9’s IPs. Your ISP loses the DNS-level map of your browsing.


Manually (if CachyOS Hello GUI also fails)

If the polkit dialog doesn’t appear even from the GUI, you can configure systemd-resolved directly:

sudo mkdir -p /etc/systemd/resolved.conf.d

printf '[Resolve]\nDNS=9.9.9.9 9.9.9.10\nDomains=~.\n' | \
  sudo tee /etc/systemd/resolved.conf.d/quad9.conf

sudo systemctl restart systemd-resolved

Or use nmcli:

sudo nmcli connection modify "SINGTEL-11D4" ipv4.dns "9.9.9.9 9.9.9.10"
sudo nmcli connection up "SINGTEL-11D4"

Both require sudo, but they’re one-liners.


Verification — Real Output After Applying Quad9 (DoT)

After selecting Quad9 with DoT in CachyOS Hello → DNS, here’s the live system state:

$ resolvectl status

Global
           Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
    resolv.conf mode: foreign
Fallback DNS Servers: 9.9.9.9#dns.quad9.net 2620:fe::9#dns.quad9.net
                      1.1.1.1#cloudflare-dns.com
                      ...

Link 2 (wlan0)
    Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6 mDNS/IPv4 mDNS/IPv6
         Protocols: +DefaultRoute +LLMNR +mDNS +DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 9.9.9.9#dns.quad9.net
       DNS Servers: 9.9.9.9#dns.quad9.net
                    149.112.112.112#dns.quad9.net
                    192.168.1.254    ← fallback to Singtel ONT
        DNS Domain: ~.

Key indicators: - Current DNS Server: 9.9.9.9#dns.quad9.net — Quad9 is active - +DNSOverTLS — DoT encryption is enabled on the link - 192.168.1.254 only as fallback (Singtel ONT no longer primary)

$ resolvectl query google.com

google.com: 142.251.10.100                    -- link: wlan0
            142.251.10.113                    -- link: wlan0
            ...
-- Information acquired via protocol DNS in 15.9ms.
-- Data is authenticated: no; Data was acquired via local or encrypted transport: yes
-- Data from: network

encrypted transport: yes confirms DoT is working. Query time dropped from 28ms (Singtel ONT) to 15.9ms (Quad9 via DoT).

To double-check, compare Quad9 against the old Singtel resolver directly:

$ dig +short @9.9.9.9 google.com
142.251.10.101
142.251.10.102
...

$ dig +short @192.168.1.254 google.com
142.250.4.100
142.250.4.138
...

Both resolve, but Quad9 is now the primary and your ISP no longer logs the domain names you visit.


Why Quad9 Over Cloudflare?

From my benchmarks on Singtel Fibre in Singapore:

Metric Quad9 Cloudflare
Plain DNS latency 8ms 9ms
DoH latency 35ms 60ms
Jurisdiction Switzerland US (CLOUD Act)
Logging Zero, independently audited Deleted within 24h
Privacy law Swiss FADP US CLOUD Act / NSLs

Plain DNS is a tie. DoH speed and jurisdiction are the differentiators — Quad9 wins on both.


Bottom Line

CachyOS’s DNS Changer is the cleanest way to configure system-wide encrypted DNS on any distro I’ve used. One click in the GUI and you get blocky-managed DoH, systemd-resolved caching, and NetworkManager integration. No config files, no terminal gymnastics, no /etc/resolv.conf fights.

Quad9 with DoH is the setting I’d recommend: best privacy jurisdiction, fastest DoH from Singapore, and full encryption against ISP snooping.


Benchmarks run on Singtel Fibre Broadband (AS9506, Ulu Bedok, Singapore). CachyOS Hello version shipping with April 2026 release. Kernel: Linux 6.14+.