Lokale DNS-Zuordnung
Chute unterstützt lokal angepasste DNS-Zuordnungen. Es entspricht /etc/hosts, jedoch mit leistungsfähigeren Funktionen, einschließlich Wildcard, Alias und Zuweisung von DNS-Servern.
[Host]
abc.com = 1.2.3.4
*.dev = 6.7.8.9
foo.com = bar.com
bar.com = server:8.8.8.8
Hinweis: Die hier beschriebenen Zuordnungszeilen werden auch in einem
[DNS]-Abschnitt akzeptiert, neben den DNS-Server-Optionen. Siehe DNS-Abschnitt. Die Shadowrocket-Formssid:(DNS pro Netzwerk) ist die Ausnahme: Sie wird nur in[Host]erkannt, und in[DNS]wird sie als Zuordnung für einen Namen gelesen, der nie vorkommt.
Eine Zuordnung darf mehrere Adressen auflisten, IPv4 und IPv6 gemischt: dns.google = 8.8.8.8, 8.8.4.4, 2001:4860:4860::8888. Eine A-Abfrage wird mit den IPv4-Adressen beantwortet, eine AAAA-Abfrage mit den IPv6-Adressen. Eine Liste, die etwas anderes als Adressen enthält, ist ein Konfigurationsfehler. Ein Name, der nur auf Adressen einer Familie abgebildet ist, erhält auf eine Abfrage der anderen Familie eine leere Antwort (NODATA); die Upstream-Server werden nicht gefragt. Ein Name kann auch zwei Zeilen haben, eine für seine IPv4- und eine für seine IPv6-Adressen. Eine Zuordnung, die ein Neuladen der Konfiguration oder ein Modul hinzufügt, gilt sofort. Eine NXDOMAIN-Antwort des Upstream-Servers wird nicht zwischengespeichert, wenn der Name durch eine [Host]-Zuordnung oder einen Alias abgedeckt ist; die Zuordnung oder der Alias hat Vorrang.
Wildcard
Sie können das Präfix * verwenden, um alle Subdomains per Wildcard abzugleichen. Bitte beachten Sie, dass Chute einen einfachen String-Abgleich verwendet. Beispielsweise passt *google.com auf google.com, foo.google.com und bargoogle.com. Und *.google.com passt nicht auf google.com.
[Host]
*.dev = 6.7.8.9
Alias
Dies entspricht einem CNAME-Eintrag.
[Host]
foo.com = bar.com
Eine A- oder AAAA-Abfrage für den Alias-Namen wird mit den Adressen des Ziels beantwortet, sodass der Client dem Alias nicht selbst folgen muss. Hat das Ziel keine Adresse der abgefragten Familie, ist die Antwort leer statt ein Eintrag der anderen Familie. Chute löst das Ziel beim Laden der Regel auf; ist es noch nicht aufgelöst, wird der CNAME-Eintrag zurückgegeben und das Ziel für die nächste Abfrage aufgelöst.
Zuweisung eines DNS-Servers
Sie können einer oder mehreren Domains einen bestimmten DNS-Server zuweisen.
[Host]
bar.com = server:8.8.8.8
server: akzeptiert auch eine DoH-URL, sodass den Domains direkt ein bestimmter DoH-Endpunkt zugewiesen werden kann.
[Host]
*.example.com = server:https://doh.example/dns-query
server: akzeptiert eine durch Kommas getrennte Liste von Servern. Jeder verwendbare Eintrag bleibt erhalten, alle werden gleichzeitig gefragt, und die erste Antwort gewinnt. Ein Eintrag kann eine IP-Adresse mit optionalem Port (8.8.8.8:5353, [2001:db8::1]:5353), system, syslib (force-syslib ist dasselbe) oder eine DoH-URL sein. Eine IP-Adresse oder eine DoH-URL darf mit dem Suffix #proxy enden; system und syslib werden mit einer Warnung verworfen, wenn sie damit geschrieben sind, denn der System-Resolver lässt sich nicht über eine Richtlinie schicken. Ein tcp://IP[:port]-Eintrag fragt diesen Server über DNS über TCP.
[Host]
bar.com = server:8.8.8.8, 8.8.4.4
Sie können einer oder mehreren Domains den System-DNS-Server zuweisen. Chute verwendet ausschließlich die System-DNS-Konfiguration, um diese Domains abzufragen.
[Host]
devs = server:system
Da Chute über eine eigene DNS-Client-Implementierung verfügt, können einige Hostnamen möglicherweise nicht aufgelöst werden. Sie können server:syslib verwenden, um die Auflösung vom System durchführen zu lassen.
[Host]
Macbook = server:syslib
Zuweisung eines DoH-Dienstes
Sie können einer oder mehreren Domains einen bestimmten DoH-Dienst zuweisen.
[Host]
bar.com = doh:cloudflare
Standardmäßig werden A- und AAAA-Anfragen für Hostnamen mit dem Suffix .local vom System aufgelöst. Anfragen anderer Typen — PTR, SRV, TXT — gehen an die konfigurierten Upstream-Server.
Zuweisung eines DoT-Dienstes
Sie können einer oder mehreren Domains einen bestimmten DoT-Dienst (DNS-over-TLS) zuweisen.
[Host]
bar.com = dot:dns.google
Ein dot:-Eintrag kann das Suffix #proxy nicht tragen.
Zuweisung eines DoQ-Dienstes
Sie können einer oder mehreren Domains einen bestimmten DoQ-Dienst (DNS-over-QUIC) zuweisen.
[Host]
bar.com = doq:dns.adguard.com
Der Eintrag darf mit dem Suffix #proxy enden, etwa bar.com = doq:dns.adguard.com#proxy=HK, damit die Anfrage über diese Richtlinie läuft. Der Name der Richtlinie bleibt genau so erhalten, wie er geschrieben ist.
Zuweisung eines DoH3-Dienstes
Sie können einer oder mehreren Domains einen bestimmten DoH3-Dienst (DNS-over-HTTP/3) zuweisen.
[Host]
bar.com = doh3:https://dns.google/dns-query
Wie ein DoQ-Eintrag darf er mit dem Suffix #proxy enden.
Regelsatz-Schlüssel
Der Schlüssel darf statt eines Domainmusters ein Regelsatz sein:
[Host]
RULE-SET:https://example.com/cn-domains.list = server:223.5.5.5
RULE-SET:MyProvider = server:https://doh.pub/dns-query
DOMAIN-SET:https://example.com/ad-hosts.txt = 0.0.0.0
RULE-SET:<Quelle> nimmt eine URL oder den Namen eines Regel-Providers; DOMAIN-SET:<Quelle> nimmt eine URL. Nur die Domainregeln des Satzes zählen — IP- und andere Regeltypen werden ignoriert. Der Satz wird genauso heruntergeladen und aktualisiert, als würde ihn eine [Rule]-Zeile verwenden, und jede Domain, die er trifft, erhält den Wert auf der rechten Seite. Die integrierten Sätze SYSTEM und LAN können hier nicht verwendet werden.
DNS-Skript
[Host]
*.corp.example = script:CorpResolver
script:<Name> übergibt die Auflösung passender Domains an das Skript vom Typ type=dns mit diesem Namen — sowohl für Anfragen der Apps als auch für Chutes eigene Auflösungen. Liefert das Skript keine Adresse oder gibt es kein aktiviertes dns-Skript mit diesem Namen, wird die Domain normal aufgelöst.
DNS pro Netzwerk (Shadowrocket)
[Host]
ssid:Home WiFi = server:192.168.1.1
Shadowrockets ssid:<Netzwerkname> = server:<Server> wird als DNS-Überschreibung in [SSID Setting] für dieses WLAN gelesen: Solange das Gerät darin eingebucht ist, ersetzen diese Server die normalen Resolver des Hauptpools. Der Netzwerkname darf Leerzeichen enthalten. Hier zählen nur normale Resolver — eine Adresse mit optionalem Port, system oder syslib; eine DoH-URL, die server: an anderer Stelle in [Host] annimmt, wird mit einem Hinweis verworfen.
Hosts-Datei des Systems
[General]
read-etc-hosts = false
Unter macOS und Android liest Chute außerdem die Hosts-Datei des Systems, /etc/hosts, und fügt ihre Einträge dieser Tabelle vor den [Host]-Zeilen hinzu; steht ein Name in beiden, gewinnt also die Adresse aus der Hosts-Datei. read-etc-hosts in [General] schaltet das und ist standardmäßig aktiv; setzen Sie es auf false, um die Datei auszulassen. Chute iOS und tvOS lesen nie eine Hosts-Datei.
Kombinierte Nutzung
Alle Funktionen können zusammen verwendet werden. Zum Beispiel:
[Host]
*.dev = foo.com
*.bar.com = server:system
Macbook = server:syslib
*.foo.com = doh:cloudflare
*.local = dot:dns.google
api.internal = doq:dns.adguard.com
Diese Seite ist eine Übersetzung der englischen Version. Bei Abweichungen ist die englische Version maßgeblich.