feat(dns): add custom DNS server support#196
Open
awlx wants to merge 1 commit intoCachyOS:developfrom
Open
Conversation
Add a 'Custom' option to the DNS server dropdown allowing users to specify their own DNS server addresses and DoT hostname, addressing use cases like NextDNS or other custom resolvers. Changes: - Add 'Custom' entry to DNS server combo box with IPv4, IPv6, and DoT hostname input fields - Use NetworkManager's native 'address#hostname' notation to persist DoT hostnames across restarts - Read back DoT state and hostname from NM on startup - Add SNI hostname validation (RFC-compliant DNS labels) - Add 'set-custom' CLI subcommand for custom DNS from command line - Fix preset servers to include DoT hostname in addr#hostname format - Add i18n strings for custom DNS to all 31 locales Closes: CachyOS#144
6b0bd68 to
008e256
Compare
awlx
added a commit
to awlx/CachyOS-Welcome
that referenced
this pull request
Mar 25, 2026
Add DoH support to the DNS settings page using blocky as a local DNS proxy. When DoH is enabled, blocky is installed (blocky-bin from AUR), configured with the selected server's DoH URL, and started as a systemd service. NetworkManager is pointed to 127.0.0.1 for resolution. Changes: - Add DoH URL map for 14 DNS servers that support DNS over HTTPS - Add blocky config generation with DoT-encrypted bootstrap DNS when the server supports it, falling back to plaintext IPs otherwise - Add DoH checkbox to DNS settings GUI (mutually exclusive with DoT) - Add --doh flag to 'dns set' CLI subcommand (conflicts_with dot) - Add --doh and --doh-url flags to 'dns set-custom' for custom DoH servers, using the custom IPv4/IPv6 addresses and DoT hostname for bootstrap resolution - Add DoH URL input field to the custom DNS server form - Auto-install blocky-bin via paru with pkexec for GUI password prompt - Stop and disable blocky on DNS reset or when switching to DoT/plain - Show DoH support in 'dns list-servers' output - Add i18n strings for DoH to all 31 locales Built on top of CachyOS#196 (custom DNS server support). Note: DNS over QUIC (DoQ) can be added once blocky ships with 0xERR0R/blocky#2013 (DoQ upstream support) Addresses: CachyOS#156, CachyOS#144
awlx
added a commit
to awlx/CachyOS-Welcome
that referenced
this pull request
Mar 25, 2026
Add DoH support to the DNS settings page using blocky as a local DNS proxy. When DoH is enabled, blocky is installed (blocky-bin from AUR), configured with the selected server's DoH URL, and started as a systemd service. NetworkManager is pointed to 127.0.0.1 for resolution. Changes: - Add DoH URL map for 14 DNS servers that support DNS over HTTPS - Add blocky config generation with DoT-encrypted bootstrap DNS when the server supports it, falling back to plaintext IPs otherwise - Add DoH checkbox to DNS settings GUI (mutually exclusive with DoT) - Add --doh flag to 'dns set' CLI subcommand (conflicts_with dot) - Add --doh and --doh-url flags to 'dns set-custom' for custom DoH servers, using the custom IPv4/IPv6 addresses and DoT hostname for bootstrap resolution - Add DoH URL input field to the custom DNS server form - Auto-install blocky-bin via paru with pkexec for GUI password prompt - Stop and disable blocky on DNS reset or when switching to DoT/plain - Show DoH support in 'dns list-servers' output - Add i18n strings for DoH to all 31 locales Built on top of CachyOS#196 (custom DNS server support). Note: DNS over QUIC (DoQ) can be added once blocky ships with 0xERR0R/blocky#2013 (DoQ upstream support) Addresses: CachyOS#156, CachyOS#144
awlx
added a commit
to awlx/CachyOS-Welcome
that referenced
this pull request
Mar 25, 2026
Add DoH support to the DNS settings page using blocky as a local DNS proxy. When DoH is enabled, blocky is installed (blocky-bin from AUR), configured with the selected server's DoH URL, and started as a systemd service. NetworkManager is pointed to 127.0.0.1 for resolution. Changes: - Add DoH URL map for 14 DNS servers that support DNS over HTTPS - Add blocky config generation with DoT-encrypted bootstrap DNS when the server supports it, falling back to plaintext IPs otherwise - Add DoH checkbox to DNS settings GUI (mutually exclusive with DoT) - Add --doh flag to 'dns set' CLI subcommand (conflicts_with dot) - Add --doh and --doh-url flags to 'dns set-custom' for custom DoH servers, using the custom IPv4/IPv6 addresses and DoT hostname for bootstrap resolution - Add DoH URL input field to the custom DNS server form - Auto-install blocky-bin via paru with pkexec for GUI password prompt - Stop and disable blocky on DNS reset or when switching to DoT/plain - Show DoH support in 'dns list-servers' output - Add i18n strings for DoH to all 31 locales Built on top of CachyOS#196 (custom DNS server support). Note: DNS over QUIC (DoQ) can be added once blocky ships with 0xERR0R/blocky#2013 (DoQ upstream support) Addresses: CachyOS#156, CachyOS#144
awlx
added a commit
to awlx/CachyOS-Welcome
that referenced
this pull request
Mar 25, 2026
Add DoH support to the DNS settings page using blocky as a local DNS proxy. When DoH is enabled, blocky is installed (blocky-bin from AUR), configured with the selected server's DoH URL, and started as a systemd service. NetworkManager is pointed to 127.0.0.1 for resolution. Changes: - Add DoH URL map for 14 DNS servers that support DNS over HTTPS - Add blocky config generation with DoT-encrypted bootstrap DNS when the server supports it, falling back to plaintext IPs otherwise - Add DoH checkbox to DNS settings GUI (mutually exclusive with DoT) - Add --doh flag to 'dns set' CLI subcommand (conflicts_with dot) - Add --doh and --doh-url flags to 'dns set-custom' for custom DoH servers, using the custom IPv4/IPv6 addresses and DoT hostname for bootstrap resolution - Add DoH URL input field to the custom DNS server form - Auto-install blocky-bin via paru with pkexec for GUI password prompt - Stop and disable blocky on DNS reset or when switching to DoT/plain - Show DoH support in 'dns list-servers' output - Add i18n strings for DoH to all 31 locales Built on top of CachyOS#196 (custom DNS server support). Note: DNS over QUIC (DoQ) can be added once blocky ships with 0xERR0R/blocky#2013 (DoQ upstream support) Addresses: CachyOS#156, CachyOS#144
awlx
added a commit
to awlx/CachyOS-Welcome
that referenced
this pull request
Mar 25, 2026
Add DoH support to the DNS settings page using blocky as a local DNS proxy. When DoH is enabled, blocky is installed (blocky-bin from AUR), configured with the selected server's DoH URL, and started as a systemd service. NetworkManager is pointed to 127.0.0.1 for resolution. Changes: - Add DoH URL map for 14 DNS servers that support DNS over HTTPS - Add blocky config generation with DoT-encrypted bootstrap DNS when the server supports it, falling back to plaintext IPs otherwise - Add DoH checkbox to DNS settings GUI (mutually exclusive with DoT) - Add --doh flag to 'dns set' CLI subcommand (conflicts_with dot) - Add --doh and --doh-url flags to 'dns set-custom' for custom DoH servers, using the custom IPv4/IPv6 addresses and DoT hostname for bootstrap resolution - Add DoH URL input field to the custom DNS server form - Auto-install blocky-bin via paru with pkexec for GUI password prompt - Stop and disable blocky on DNS reset or when switching to DoT/plain - Show DoH support in 'dns list-servers' output - Add i18n strings for DoH to all 31 locales Built on top of CachyOS#196 (custom DNS server support). Note: DNS over QUIC (DoQ) can be added once blocky ships with 0xERR0R/blocky#2013 (DoQ upstream support) Addresses: CachyOS#156, CachyOS#144
awlx
added a commit
to awlx/CachyOS-Welcome
that referenced
this pull request
Mar 25, 2026
Add DoH support to the DNS settings page using blocky as a local DNS proxy. When DoH is enabled, blocky is installed (blocky-bin from AUR), configured with the selected server's DoH URL, and started as a systemd service. NetworkManager is pointed to 127.0.0.1 for resolution. Changes: - Add DoH URL map for 14 DNS servers that support DNS over HTTPS - Add blocky config generation with DoT-encrypted bootstrap DNS when the server supports it, falling back to plaintext IPs otherwise - Add DoH checkbox to DNS settings GUI (mutually exclusive with DoT) - Add --doh flag to 'dns set' CLI subcommand (conflicts_with dot) - Add --doh and --doh-url flags to 'dns set-custom' for custom DoH servers, using the custom IPv4/IPv6 addresses and DoT hostname for bootstrap resolution - Add DoH URL input field to the custom DNS server form - Auto-install blocky-bin via paru with pkexec for GUI password prompt - Stop and disable blocky on DNS reset or when switching to DoT/plain - Show DoH support in 'dns list-servers' output - Add i18n strings for DoH to all 31 locales Built on top of CachyOS#196 (custom DNS server support). Note: DNS over QUIC (DoQ) can be added once blocky ships with 0xERR0R/blocky#2013 (DoQ upstream support) Addresses: CachyOS#156, CachyOS#144
awlx
added a commit
to awlx/CachyOS-Welcome
that referenced
this pull request
Mar 25, 2026
Add DoH support to the DNS settings page using blocky as a local DNS proxy. When DoH is enabled, blocky is installed (blocky-bin from AUR), configured with the selected server's DoH URL, and started as a systemd service. NetworkManager is pointed to 127.0.0.1 for resolution. Changes: - Add DoH URL map for 14 DNS servers that support DNS over HTTPS - Add blocky config generation with DoT-encrypted bootstrap DNS when the server supports it, falling back to plaintext IPs otherwise - Add DoH checkbox to DNS settings GUI (mutually exclusive with DoT) - Add --doh flag to 'dns set' CLI subcommand (conflicts_with dot) - Add --doh and --doh-url flags to 'dns set-custom' for custom DoH servers, using the custom IPv4/IPv6 addresses and DoT hostname for bootstrap resolution - Add DoH URL input field to the custom DNS server form - Auto-install blocky-bin via paru with pkexec for GUI password prompt - Stop and disable blocky on DNS reset or when switching to DoT/plain - Show DoH support in 'dns list-servers' output - Add i18n strings for DoH to all 31 locales Built on top of CachyOS#196 (custom DNS server support). Note: DNS over QUIC (DoQ) can be added once blocky ships with 0xERR0R/blocky#2013 (DoQ upstream support) Addresses: CachyOS#156, CachyOS#144
awlx
added a commit
to awlx/CachyOS-Welcome
that referenced
this pull request
Mar 25, 2026
Add DoH support to the DNS settings page using blocky as a local DNS proxy. When DoH is enabled, blocky is installed (blocky-bin from AUR), configured with the selected server's DoH URL, and started as a systemd service. NetworkManager is pointed to 127.0.0.1 for resolution. Changes: - Add DoH URL map for 14 DNS servers that support DNS over HTTPS - Add blocky config generation with DoT-encrypted bootstrap DNS when the server supports it, falling back to plaintext IPs otherwise - Add DoH checkbox to DNS settings GUI (mutually exclusive with DoT) - Add --doh flag to 'dns set' CLI subcommand (conflicts_with dot) - Add --doh and --doh-url flags to 'dns set-custom' for custom DoH servers, using the custom IPv4/IPv6 addresses and DoT hostname for bootstrap resolution - Add DoH URL input field to the custom DNS server form - Auto-install blocky-bin via paru with pkexec for GUI password prompt - Stop and disable blocky on DNS reset or when switching to DoT/plain - Show DoH support in 'dns list-servers' output - Add i18n strings for DoH to all 31 locales Built on top of CachyOS#196 (custom DNS server support). Note: DNS over QUIC (DoQ) can be added once blocky ships with 0xERR0R/blocky#2013 (DoQ upstream support) Addresses: CachyOS#156, CachyOS#144
awlx
added a commit
to awlx/CachyOS-Welcome
that referenced
this pull request
Mar 25, 2026
Add DoH support to the DNS settings page using blocky as a local DNS proxy. When DoH is enabled, blocky is installed (blocky-bin from AUR), configured with the selected server's DoH URL, and started as a systemd service. NetworkManager is pointed to 127.0.0.1 for resolution. Changes: - Add DoH URL map for 14 DNS servers that support DNS over HTTPS - Add blocky config generation with DoT-encrypted bootstrap DNS when the server supports it, falling back to plaintext IPs otherwise - Add DoH checkbox to DNS settings GUI (mutually exclusive with DoT) - Add --doh flag to 'dns set' CLI subcommand (conflicts_with dot) - Add --doh and --doh-url flags to 'dns set-custom' for custom DoH servers, using the custom IPv4/IPv6 addresses and DoT hostname for bootstrap resolution - Add DoH URL input field to the custom DNS server form - Auto-install blocky-bin via paru with pkexec for GUI password prompt - Stop and disable blocky on DNS reset or when switching to DoT/plain - Show DoH support in 'dns list-servers' output - Add i18n strings for DoH to all 31 locales Built on top of CachyOS#196 (custom DNS server support). Note: DNS over QUIC (DoQ) can be added once blocky ships with 0xERR0R/blocky#2013 (DoQ upstream support) Addresses: CachyOS#156, CachyOS#144
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a "Custom" option to the DNS server selection, allowing users to enter their own DNS server addresses and DoT hostname. This addresses use cases like NextDNS, Pi-hole, or any other custom resolver that isn't in the preset list.
What changed
Custom DNS server entry
address#hostnamenotation (e.g.45.90.28.220#xxxx.dns.nextdns.io)CLI support
dns set-customsubcommand:cachyos-hello dns set-custom -c "Starlink" --ipv4 "45.90.28.220" --dot --dot-hostname "xxxx.dns.nextdns.io"dns setalso passes DoT hostname for preset servers nowi18n
Testing
Tested on CachyOS with NetworkManager 1.52 and systemd-resolved:
cachyos-hello dns set -c "Starlink" -s cloudflare --dot— verifiedresolvectlshows1.1.1.1#cloudflare-dns.comcachyos-hello dns set-custom -c "Starlink" --ipv4 "45.90.28.220" --dot --dot-hostname "xxxx.dns.nextdns.io"— custom DNS works from CLICloses #144