
Dokumente •
Englisch | 中文
Smartdns-rs? ist ein lokaler DNS -Server, der von C Smartdns im Verbreitung von DNS -Abfrageanforderungen von lokalen Clients akzeptiert, DNS -Abfrageergebnisse von mehreren vorgelagerten DNS -Servern erhalten und die schnellsten Zugriffsergebnisse an Clients zurückgibt. Vermeiden Sie die Verschmutzung der DNs und die Verbesserung der Geschwindigkeit des Netzwerkzugriffs, unterstützt die Hochleistungs-Anzeigenfilterung.
Mehrere vorgelagerte DNS -Server
Unterstützt die Konfiguration mehrerer vorgelagerter DNS -Server und gleichzeitig Abfrage. Die Abfrage wird nicht beeinflusst, auch wenn eine DNS -Serverausnahme vorliegt.
Geben Sie die schnellste IP -Adresse zurück
Unterstützt es, die schnellste Zugriffs -IP -Adresse aus der IP -Adressliste des Domänennamens zu finden und sie an den Client zurückzugeben, um DNS -Verschmutzung zu vermeiden und die Geschwindigkeit des Netzwerkzugriffs zu verbessern.
Unterstützung mehrerer Abfrageprotokolle
Unterstützt UDP-, TCP-, DOT-, DOQ-, DOH-, DOH3-Abfragen und -Dienst- und nicht-53-Portabfragen, wodurch die Verschmutzung der DNs effektiv vermieden und die Privatsphäre geschützt wird und Abfragen DNS über Socken5, HTTP-Proxy unterstützt.
Domänen -IP -Adressspezifikation
Unterstützt die Konfiguration der IP -Adresse einer bestimmten Domäne, um die Auswirkungen der Werbefilterung zu erzielen und böswillige Websites zu vermeiden.
DNS -Domain -Weiterleitung
Unterstützt DNS -Weiterleitung, IPSET und Nftables. Unterstützen Sie das Einstellen des Domänenergebnisses auf IPSET und NFTSET -SET, wenn die Geschwindigkeitsprüfung fehlschlägt.
Windows / MacOS / Linux-Mehrfach-Plattform-Unterstützung
Unterstützt die Installation als Service und läuft ihn beim Start.
Unterstützen Sie IPv4, IPv6 Dual Stack
Unterstützt IPv4, IPv6-Netzwerk, Support Query A, AAAA-Datensatz, IP-Auswahl von Dual-Stack und Filter IPv6 AAAA.
DNS64
Unterstützt DNS64 -Übersetzung.
Hohe Leistung, niedriger Ressourcenverbrauch
Tokio-basierter Multi-Thread-Asynchron-E/A-Modell; Caches -Abfrageergebnisse; Unterstützt den am meisten verwendeten Domainnamen abgelaufene Vorabfassungen, Abfrage '0' Millisekunden, ohne die Auswirkungen von DOH und DOT-Verschlüsselung zu beseitigen.
Hinweis: Die C -Version von SmartDNS ist sehr funktional, aber da sie nur Linux unterstützt, während MacOS und Windows nur über Docker oder WSL unterstützt werden können. Daher möchte ich eine Rust -Version von SmartDNs entwickeln, die das Kompilieren von Windows-, MacOS-, Linux- und Android Termux -Umgebungen zum Ausführen unterstützt und mit seiner Konfiguration kompatibel ist.
Es befindet sich noch in der Entwicklung. Verwenden Sie es bitte nicht in der Produktionsumgebung. Willkommen, um Feedback zu geben.
Weitere Informationen finden Sie in TODO für die Funktionsabdeckung
Nightly Builds finden Sie hier.
Macos
Wenn Sie das Gebräu installiert haben, können Sie den folgenden Befehl direkt verwenden, um zu installieren.
brew update
brew install smartdns HINWEIS: Anschluss von Port 53 erfordert die Root -Erlaubnis, so dass sudo erforderlich ist.
Der Befehl sudo smartdns service start für brew installed smartdns ist der gleiche wie sudo brew services start smartdns .
Wenn Sie kein brew installiert haben, laden Sie einfach das kompilierte Programmkompressionspaket herunter und installieren Sie es wie unten.
Windows / Linux
Gehen Sie hier, um das Paket herunterzuladen und zu dekomprimieren.
Holen Sie sich Hilfe
./smartdns helpLaufen Sie als Vordergrund und können Sie einfach den Laufstatus überprüfen
./smartdns run -c ./smartdns.conf -v-v ist aktiviert, um Debug -Protokolle zu drucken.Führen Sie als Hintergrundservice aus und führen Sie beim Start automatisch aus
Holen Sie sich Hilfe von Serviceverwaltungsbefehlen.
./smartdns service helpHinweis: Als Systemdienst installiert sind Administrator- / Root -Berechtigungen erforderlich.
Die Serviceverwaltung ist mit allen Systemen kompatibel, rufen Sie SC unter Windows auf. Rufen Sie launchctl oder brew on MacOS an. Rufen Sie Systemd oder OpenRc unter Linux an.
Das Folgende ist die einfachste Beispielkonfiguration
# Listen on local port 53
bind 127.0.0.1:53
# Configure bootstrap-dns, if not configured, call the system_conf,
# it is recommended to configure, so that it will be encrypted.
server https://1.1.1.1/dns-query -bootstrap-dns -exclude-default-group
server https://8.8.8.8/dns-query -bootstrap-dns -exclude-default-group
# Configure default upstream server
server https://cloudflare-dns.com/dns-query
server https://dns.quad9.net/dns-query
server https://dns.google/dns-query
# Configure the Office(Home) upstream server
server 192.168.1.1 -exclude-default-group -group office
# Domain names ending with ofc are forwarded to the office group for resolution
nameserver /ofc/office
# Set static IP for domain name
address /test.example.com/1.2.3.5
# Block Domains (Ad Blocking)
address /ads.example.com/#
# The following features are not yet supported in the [C SmartDNS](https://github.com/pymumu/smartdns) and are only applicable to SmartDNS-rs.
# Configure DoH3
server-h3 1.1.1.1
# Configure DoQ
server-quic unfiltered.adguard-dns.com
Weitere erweiterte Konfigurationen finden Sie hier und finden Sie in TODO für die Funktionsberichterstattung.
Angenommen, Sie haben Rost installiert, können Sie das Terminal öffnen und diese Befehle ausführen:
git clone https://github.com/mokeyish/smartdns-rs.git
cd smartdns-rs
# install https://github.com/casey/just
cargo install just
# build
just build --release
# print help
./target/release/smartdns --help
# run
sudo ./target/release/smartdns run -c ./etc/smartdns/smartdns.confFür die Cross-Compilation wird empfohlen, Kreuzung zu verwenden (erfordert Docker).
Diese Software wäre ohne:
Diese Software enthält Codes von https://github.com/hickory-dns/hickory-dns, die unter einem von lizenziert sind
Und andere Codes sind unter lizenziert unter
Sofern Sie nicht ausdrücklich etwas anderes angeben, ist ein Beitrag, der absichtlich zur Aufnahme in die Arbeit von Ihnen eingereicht wird, wie in der GPL-3.0-Lizenz definiert, ohne zusätzliche Bedingungen wie oben genannte lizenziert.