Jump to
systemd-resolved (most desktops)
- Open a terminal and check the service status:
If it is inactive, runsystemctl status systemd-resolved --no-pagersudo systemctl enable --now systemd-resolvedfirst. - Create a drop-in directory and configuration file pointing at Xeltor:
You can edit this file later with any text editor.sudo mkdir -p /etc/systemd/resolved.conf.d sudo tee /etc/systemd/resolved.conf.d/xeltor.conf <<'CFG' [Resolve] DNS=63.250.54.8 86.90.92.105 DNSOverTLS=yes DNSSEC=yes Domains=~. CFG - Make sure
/etc/resolv.confpoints to the systemd stub resolver so apps follow the encrypted path:sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf - Restart the service and confirm the encrypted upstreams are active:
The output should listsudo systemctl restart systemd-resolved resolvectl status | grep -A2 'DNS Servers'dot.xel-serv.comwithDNS over TLS: yes.
If you use VPN software that also adjusts systemd-resolved, place its settings in a separate drop-in (for example
10-vpn.conf) so split DNS continues to work. Removing /etc/systemd/resolved.conf.d/xeltor.conf and restoring your old resolv.conf returns you to the DNS supplied by your network until you reapply the secure profile.
NetworkManager CLI
- List saved connections and note the one you use (for example “Wired connection 1” or your Wi-Fi SSID):
nmcli connection show - Set the IPv4 DNS hostname and ignore DHCP-provided DNS servers:
sudo nmcli connection modify "$CONNECTION" ipv4.dns "dot.xel-serv.com" sudo nmcli connection modify "$CONNECTION" ipv4.ignore-auto-dns yes - If you also use IPv6, repeat the commands with
ipv6.dnsandipv6.ignore-auto-dns. - Bring the connection down and up so the new settings apply:
sudo nmcli connection down "$CONNECTION" sudo nmcli connection up "$CONNECTION" - Confirm the resolver:
You should seenmcli connection show "$CONNECTION" | grep dnsdot.xel-serv.com;resolvectl statusshould also list it withDNS over TLS: yes.
To undo the change, run
sudo nmcli connection modify "$CONNECTION" ipv4.ignore-auto-dns no ipv4.dns "" (and the IPv6 equivalent). That switches back to whatever DNS DHCP provides, which is usually unencrypted.
Stubby
- Install Stubby with your package manager (
sudo apt install stubby,sudo dnf install stubby, orsudo pacman -S stubby). - Back up the default configuration and edit the upstream servers:
Replace thesudo cp /etc/stubby/stubby.yml /etc/stubby/stubby.yml.backup sudo nano /etc/stubby/stubby.ymlupstream_recursive_serversblock with:
(any editor is fine).upstream_recursive_servers: - address_data: 63.250.54.8 tls_auth_name: dot.xel-serv.com tls_port: 853 - address_data: 86.90.92.105 tls_auth_name: dot.xel-serv.com tls_port: 853 - Enable and restart Stubby so it listens on
127.0.0.1:sudo systemctl enable --now stubby - Point your system resolver at Stubby (if not already done by systemd-resolved):
(if the file is missing, restart Stubby and checksudo ln -sf /run/stubby/stubby.resolv.conf /etc/resolv.confls /run/stubby) and verify withresolvectl status.
Rolling back the Stubby changes (
sudo mv /etc/stubby/stubby.yml.backup /etc/stubby/stubby.yml plus sudo systemctl disable --now stubby) and restoring /etc/resolv.conf makes the host use the network’s default resolver again.
dnscrypt-proxy
- Install dnscrypt-proxy from your distribution and copy the default config for reference:
sudo apt install dnscrypt-proxy # or dnf / pacman equivalent sudo cp /etc/dnscrypt-proxy/dnscrypt-proxy.toml /etc/dnscrypt-proxy/dnscrypt-proxy.toml.backup - Add Xeltor as a static DoT server:
Append this block to thesudo nano /etc/dnscrypt-proxy/dnscrypt-proxy.toml[static]section:[static.'xeltor-dot'] stamp = 'sdns://AgcAAAAAAAAAAA82My4yNTAuNTQuODo4NTMAZG90LnhlbC1zZXJ2LmNvbQ' - Replace
server_nameswith the new entry and restart the service:sudo sed -i "s/^server_names.*/server_names = ['xeltor-dot']/" /etc/dnscrypt-proxy/dnscrypt-proxy.toml sudo systemctl enable --now dnscrypt-proxy - Check the logs for a successful TLS handshake:
journalctl -u dnscrypt-proxy -n 20
Restoring the backup config and removing
static.'xeltor-dot' (or disabling dnscrypt-proxy) turns off the encrypted tunnel and returns you to the upstream DNS supplied by your network.
Verification
resolvectl statusshould listdot.xel-serv.comwithDNS over TLS: yes.dig ads.facebook.comshould returnNXDOMAIN.
Spring naar
systemd-resolved (meest gebruikte)
- Open een terminal en controleer de status:
Is de service uit? Activeer hem metsystemctl status systemd-resolved --no-pagersudo systemctl enable --now systemd-resolved. - Maak een drop-inmap en configuratie met de Xeltor-servers:
sudo mkdir -p /etc/systemd/resolved.conf.d sudo tee /etc/systemd/resolved.conf.d/xeltor.conf <<'CFG' [Resolve] DNS=63.250.54.8 86.90.92.105 DNSOverTLS=yes DNSSEC=yes Domains=~. CFG - Koppel
/etc/resolv.confaan de systemd-stub zodat alle apps de versleutelde resolver gebruiken:sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf - Herstart de dienst en controleer de output:
Je zousudo systemctl restart systemd-resolved resolvectl status | grep -A2 'DNS Servers'dot.xel-serv.commetDNS over TLS: yesmoeten zien.
Gebruik je VPN-software die ook systemd-resolved aanpast? Zet de VPN-instellingen in een apart drop-in (bijv.
10-vpn.conf) zodat split-DNS blijft werken. Verwijder je /etc/systemd/resolved.conf.d/xeltor.conf en herstel je resolv.conf, dan val je terug op de DNS van je netwerk tot je het profiel opnieuw toepast.
NetworkManager CLI
- Bekijk je verbindingen en noteer welke je gebruikt (bijvoorbeeld “Wired connection 1” of je Wi-Fi-SSID):
nmcli connection show - Stel de IPv4-DNS-hostnaam in en negeer DNS van DHCP:
sudo nmcli connection modify "$CONNECTION" ipv4.dns "dot.xel-serv.com" sudo nmcli connection modify "$CONNECTION" ipv4.ignore-auto-dns yes - Gebruik je IPv6, herhaal dan met
ipv6.dnsenipv6.ignore-auto-dns. - Zet de verbinding even uit en weer aan zodat de wijzigingen actief worden:
sudo nmcli connection down "$CONNECTION" sudo nmcli connection up "$CONNECTION" - Controleer de resolver:
Hier moetnmcli connection show "$CONNECTION" | grep dnsdot.xel-serv.comstaan;resolvectl statushoort hetzelfde te tonen metDNS over TLS: yes.
Terugdraaien? Met
sudo nmcli connection modify "$CONNECTION" ipv4.ignore-auto-dns no ipv4.dns "" (en IPv6 idem) gebruik je opnieuw de door DHCP geleverde DNS, meestal onversleuteld.
Stubby
- Installeer Stubby met je pakketbeheerder (
sudo apt install stubby,sudo dnf install stubbyofsudo pacman -S stubby). - Maak een back-up van de standaardconfiguratie en pas de upstreams aan:
Vervang hetsudo cp /etc/stubby/stubby.yml /etc/stubby/stubby.yml.backup sudo nano /etc/stubby/stubby.ymlupstream_recursive_servers-blok door:
(gebruik gerust een andere editor).upstream_recursive_servers: - address_data: 63.250.54.8 tls_auth_name: dot.xel-serv.com tls_port: 853 - address_data: 86.90.92.105 tls_auth_name: dot.xel-serv.com tls_port: 853 - Activeer Stubby zodat hij direct meedraait:
sudo systemctl enable --now stubby - Laat je systeem naar Stubby wijzen (als dat nog niet gebeurde door systemd-resolved):
(bestaat dit bestand nog niet, herstart Stubby en kijk metsudo ln -sf /run/stubby/stubby.resolv.conf /etc/resolv.confls /run/stubby) en controleer metresolvectl status.
Zet je de back-up terug (
sudo mv /etc/stubby/stubby.yml.backup /etc/stubby/stubby.yml), schakel je Stubby uit met sudo systemctl disable --now stubby en herstel je /etc/resolv.conf, dan gebruikt het systeem weer de standaard (vaak onversleutelde) DNS van je netwerk.
dnscrypt-proxy
- Installeer dnscrypt-proxy en maak een back-up van de standaardconfig:
sudo apt install dnscrypt-proxy sudo cp /etc/dnscrypt-proxy/dnscrypt-proxy.toml /etc/dnscrypt-proxy/dnscrypt-proxy.toml.backup - Voeg Xeltor toe als statische DoT-server:
Voeg ondersudo nano /etc/dnscrypt-proxy/dnscrypt-proxy.toml[static]het volgende blok toe:[static.'xeltor-dot'] stamp = 'sdns://AgcAAAAAAAAAAA82My4yNTAuNTQuODo4NTMAZG90LnhlbC1zZXJ2LmNvbQ' - Pas
server_namesaan en start de service opnieuw:sudo sed -i "s/^server_names.*/server_names = ['xeltor-dot']/" /etc/dnscrypt-proxy/dnscrypt-proxy.toml sudo systemctl enable --now dnscrypt-proxy - Controleer het logboek op een geslaagde TLS-handshake:
journalctl -u dnscrypt-proxy -n 20
Zet je de back-up terug, verwijder je
static.'xeltor-dot' en herstart of schakel je dnscrypt-proxy uit, dan gebruik je weer de (doorgaans onversleutelde) DNS van je netwerk.
Controleren
resolvectl statusmoetdot.xel-serv.comtonen metDNS over TLS: yes.dig ads.facebook.comhoortNXDOMAINterug te geven.