Wie man DNS über HTTPS unter Linux konfiguriert
Diese Anleitung hilft Ihnen bei der Einrichtung und Konfiguration von DNS über HTTPS (DoH) auf Ihrem Linux-System und deckt mehrere Konfigurationsmethoden und Best Practices ab.
Voraussetzungen
- Linux-Betriebssystem
- Administratorrechte (root)
- Grundkenntnisse der Kommandozeile
- Stabile Netzwerkverbindung
systemd-resolved verwenden
Schritt 1: systemd-resolved-Version überprüfen
systemctl --version
systemd-resolve --version
Stellen Sie sicher, dass die Version 247 oder höher ist, da diese Versionen DoH unterstützen.
Schritt 2: resolved.conf konfigurieren
Bearbeiten Sie /etc/systemd/resolved.conf
:
[Resolve]
DNS=1.1.1.1 1.0.0.1
DNSOverTLS=yes
DNSSEC=yes
Cache=yes
DNSStubListener=yes
Für DoH fügen Sie folgende Konfiguration hinzu:
[Resolve]
DNS=https://cloudflare-dns.com/dns-query
https://dns.google/dns-query
DNSOverTLS=no
DNSSEC=yes
Cache=yes
DNSStubListener=yes
Schritt 3: Dienst neu starten
sudo systemctl restart systemd-resolved
sudo systemctl status systemd-resolved
NetworkManager verwenden
Schritt 1: NetworkManager-Version überprüfen
nmcli --version
Stellen Sie sicher, dass die Version DoH-Funktionalität unterstützt.
Schritt 2: Verbindung konfigurieren
Konfigurieren Sie DoH mit nmcli:
# Aktuelle Verbindungen anzeigen
nmcli connection show
# Bestimmte Verbindung ändern
sudo nmcli connection modify "Verbindungsname" ipv4.dns "1.1.1.1,1.0.0.1" ipv4.dns-over-tls yes
sudo nmcli connection modify "Verbindungsname" ipv6.dns "2606:4700:4700::1111,2606:4700:4700::1001" ipv6.dns-over-tls yes
Schritt 3: Änderungen anwenden
sudo nmcli connection up "Verbindungsname"
Eigenständige Clients verwenden
dnscrypt-proxy
- Installation
# Debian/Ubuntu
sudo apt install dnscrypt-proxy
# Fedora
sudo dnf install dnscrypt-proxy
# Arch Linux
sudo pacman -S dnscrypt-proxy
- Konfiguration
Bearbeiten Sie /etc/dnscrypt-proxy/dnscrypt-proxy.toml
:
server_names = ['cloudflare', 'google']
listen_addresses = ['127.0.0.1:53']
max_clients = 250
ipv4_servers = true
ipv6_servers = true
dnscrypt_servers = true
doh_servers = true
require_dnssec = true
require_nolog = true
require_nofilter = true
force_tcp = false
timeout = 2500
keepalive = 30
- Dienst starten
sudo systemctl enable dnscrypt-proxy
sudo systemctl start dnscrypt-proxy
sudo systemctl status dnscrypt-proxy
Stubby
- Installation
# Debian/Ubuntu
sudo apt install stubby
# Fedora
sudo dnf install stubby
# Arch Linux
sudo pacman -S stubby
- Konfiguration
Bearbeiten Sie /etc/stubby/stubby.yml
:
resolution_type: GETDNS_RESOLUTION_STUB
dns_transport_list:
- GETDNS_TRANSPORT_TLS
tls_authentication: GETDNS_AUTHENTICATION_REQUIRED
tls_query_padding_blocksize: 128
edns_client_subnet_private: 1
round_robin_upstreams: 1
idle_timeout: 10000
listen_addresses:
- 127.0.0.1@53
- 0::1@53
upstream_recursive_servers:
- address_data: 1.1.1.1
tls_auth_name: "cloudflare-dns.com"
- address_data: 1.0.0.1
tls_auth_name: "cloudflare-dns.com"
- Dienst starten
sudo systemctl enable stubby
sudo systemctl start stubby
sudo systemctl status stubby
Konfiguration überprüfen
Methode 1: dig verwenden
# DNS-Auflösung testen
dig @127.0.0.1 example.com
# DNSSEC überprüfen
dig @127.0.0.1 example.com +dnssec
# DoH-Server verifizieren
dig @127.0.0.1 whoami.cloudflare CH TXT
Methode 2: resolvectl verwenden
# Aktuelle DNS-Einstellungen anzeigen
resolvectl status
# DNS-Auflösung testen
resolvectl query example.com
# DNSSEC überprüfen
resolvectl query --dnssec example.com
Methode 3: Online-Test
- DNS-Leak-Test-Website besuchen
- Umfassenden Test durchführen
- DNS-Anfragen-Routing überprüfen
Fehlerbehebung
Häufige Probleme
-
Auflösungsfehler
- Netzwerkverbindung prüfen
- Konfigurationsdateien verifizieren
- Dienststatus überprüfen
- Systemprotokolle überprüfen
-
Leistungsprobleme
- Nächsten Server wählen
- Cache-Einstellungen optimieren
- Antwortzeit überwachen
- Systemressourcen prüfen
-
Kompatibilitätsprobleme
- Pakete aktualisieren
- Abhängigkeiten prüfen
- Systemanforderungen verifizieren
- Alternative Konfigurationen testen
Protokollanalyse
- Systemprotokolle
# systemd-resolved Protokolle anzeigen
journalctl -u systemd-resolved
# NetworkManager Protokolle prüfen
journalctl -u NetworkManager
# dnscrypt-proxy Protokolle anzeigen
journalctl -u dnscrypt-proxy
- Netzwerkdiagnose
# Netzwerkverbindung testen
ping 1.1.1.1
# DNS-Auflösung prüfen
nslookup example.com
# DNSSEC verifizieren
dig example.com +dnssec
Best Practices
-
Anbieterauswahl
- Datenschutzrichtlinien bewerten
- Serviceverfügbarkeit prüfen
- Geografische Lage berücksichtigen
- Verbindungsgeschwindigkeit testen
-
Sicherheitsempfehlungen
- Vertrauenswürdige Anbieter verwenden
- DNSSEC aktivieren
- Regelmäßige System-Updates
- Netzwerkaktivität überwachen
-
Leistungsoptimierung
- Nächste Server wählen
- Cache-Einstellungen optimieren
- Leistungsmetriken überwachen
- Regelmäßige Wartung
Unternehmensbereitstellung
Systemweite Konfiguration
-
Konfigurationsdateien erstellen
- systemd-resolved einrichten
- NetworkManager konfigurieren
- Client-Software bereitstellen
-
Bereitstellungsstrategie
- Konfigurationsmanagement verwenden
- Überwachung implementieren
- Wartungsfenster planen
-
Wartungsmanagement
- Regelmäßige Updates
- Leistungsüberwachung
- Problemverfolgung
- Backup-Verfahren
Nächste Schritte
- Serverliste - Verfügbare DoH-Anbieter durchsuchen
- Sicherheitsanleitung - Mehr über Sicherheitskonfiguration erfahren
- Leistungsoptimierung - DNS-Leistung verbessern
- FAQ - Weitere Hilfe erhalten