
DNS-Proxy, der einfach und schnell ist, mit nicht ganz so einfachen Funktionen. Fokussiert auf geroutete DNS-Weiterleitung, Filterung und Kindersicherung.
Ein DNS-Proxy, der Ihnen echte Kontrolle über Ihr Heimnetzwerk gibt.
Ich war jahrelang als Berater in der „großen" Netzwerk- und Sicherheits-„Arena" tätig. DNS-Sicherheit war/ist meine tägliche Arbeit, aber auch ein Lieblingshobby zum Basteln. Weil ich jetzt Kinder habe und ein verantwortungsvoller Elternteil sein muss, habe ich es auf mich genommen, das große böse Internet für sie zu filtern. Also habe ich sdproxy (Simple DNS Proxy) gebaut. Es bringt Enterprise-/Big-Boy-Schutzmechanismen/-Methoden/-Präzision auf die Ebene des Heimnetzwerks (so ungefähr).
Der Proxy ist in Go geschrieben und kompiliert zu einer schlanken Binärdatei für günstige Router. Es gibt KEINE Cloud-Abonnements oder monatlichen Gebühren. Er spricht jede DNS-Variante und enthält adaptive Admission Control, um stabil zu bleiben. Er ist einfach schlank (so ungefähr), gemein, niederländisch-engineerte Präzision für das Wohnzimmer. Nur Sie, eine ausführbare Datei und eine YAML-Datei.
Und denken Sie daran... Es ist immer DNS!
Hinweis: Die full_reference_config.yaml ist immer aktueller als dieses README. Im Zweifelsfall dort nachsehen.
DNS ist das Telefonbuch des Internets – jedes Gerät in Ihrem Netzwerk schlägt einen Namen nach, bevor es sich irgendwo verbindet.
sdproxy sitzt in der Mitte davon, auf Ihrem Router, und lässt Sie entscheiden, was als Nächstes passiert: cachen, blockieren, an einen anderen Resolver weiterleiten, fortgeschrittene ML-Sicherheitsmodelle anwenden oder Zeitlimits pro Kind durchsetzen. Kein Cloud-Abonnement, keine monatlichen Gebühren, kein externer Dienst, der ausfällt.
Es ist in Go geschrieben, kompiliert zu einer einzigen Binärdatei und ist schlank genug, um auf günstigen Heimroutern zu laufen (OpenWrt auf einem TP-Link, GL.iNet oder NetGear, pfSense, OPNsense oder einfach eine normale Linux-Box).
Die wichtigsten Vorteile gegenüber Alternativen finden Sie hier.
Gutes altes UDP/TCP (Port 53), verschlüsseltes DNS-over-TLS (DoT), DNS-over-HTTPS (DoH) und DNS-over-QUIC (DoQ).
sdproxy parst nativ Alt-Svc-Header und stuft Standard-DoH-Streams nahtlos auf hochperformante HTTP/3-(QUIC)-Verbindungen hoch.Schützt Ihr Surfen vor Deep-Packet-Inspection durch den ISP, indem die TLS Server Name Indication (SNI) verschlüsselt wird.
HTTPS/SVCB-Records ab, extrahiert deren ECH-Schlüssel und sichert den TLS-Handshake vollständig autonom ab.Eine native, allokationsfreie Logistic-Regression-ML-Inferenz-Engine läuft auf dem Hot Path. Sie extrahiert Shannon-Entropie, Vokal-/Konsonanten-Verzerrung und n-Gramm-Ketten, um Algorithmically Generated Domains (DGA), die von Botnets, Malware und C2-Infrastruktur verwendet werden, sofort zu erkennen und zu blockieren.
Volumetrische Baseline-Profilerstellung verfolgt den Alpha-Smoothed Exponential Moving Average (EMA) der pro Client oder pro Subnetz übertragenen Daten. Sie erkennt plötzliche, anomale Datenausbrüche, die das Netzwerk über Port 53 verlassen, und schickt den Client in eine hochperformante Penalty Box.
sdproxy leitet Abfragen nicht einfach blind weiter; es bewertet Upstreams dynamisch.
Kürzlich etwas beantwortet? Aus dem Cache ausliefern. sdproxy nutzt 32 kryptografisch geseedete, lock-freie Speicher-Shards. Wenn ein Record abläuft, während er noch populär ist, löst sdproxy ein Hintergrund-Prefetch aus, damit Ihre Geräte einen Cache-Miss nie bemerken. Es unterstützt vollständig RFC 8767 Stale-Serving.
Richten Sie es auf Ihre DHCP-Lease-Dateien und /etc/hosts, und es beantwortet lokale Namensauflösungen (Ihr NAS, Ihr Drucker, Ihr Pi), ohne einen Upstream-Resolver zu belästigen. Funktioniert mit dnsmasq, ISC DHCP, Kea und odhcpd.
Ordnen Sie die Identität eines Geräts einer anderen Upstream-Resolver-Gruppe oder einem Elternprofil zu.
RCODE: REFUSED, NXDOMAIN) direkt an eine Routing-Regel für sofortige Client-Quarantäne.Richten Sie ein Profil pro Kind ein, weisen Sie dessen Geräte zu und konfigurieren Sie:
Optionale, passwortgeschützte browserbasierte UI für den Live-Betrieb.
Verwirft jede Upstream-Antwort, die private oder Bogon-IPs (RFC1918, Loopbacks, ULAs) enthält, und gibt NXDOMAIN zurück, um Server-Side Request Forgery (SSRF) und Browser-Pivoting-Angriffe zu verhindern.
git clone https://github.com/cbuijs/sdproxy
cd sdproxy
go build -o sdproxy .
./sdproxy --config config.yaml
Erfordert Go 1.25+. Kein CGo, keine externen Bibliotheken.
server:
listen_udp: ["0.0.0.0:53"]
cache:
enabled: true
size: 1024
upstreams:
default:
- "udp://1.1.1.1:53"
- "udp://9.9.9.9:53"
# OpenWrt MIPS (TP-Link, Netgear, etc.)
GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -ldflags="-s -w" -o sdproxy .
# OpenWrt ARM (Linksys, Asus, etc.)
GOOS=linux GOARCH=arm GOARM=7 go build -ldflags="-s -w" -o sdproxy .
# OpenWrt x86_64
GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o sdproxy .
Die Flags -s -w entfernen Debug-Symbole – spart 30-40 % Binärgröße, was bei kleinem Flash-Speicher wichtig ist.
Alles lebt in einer YAML-Datei. Die full_reference_config.yaml in diesem Repo dokumentiert jede einzelne Option inline – diese Datei ist das Handbuch. Kopieren Sie sie, entfernen Sie, was Sie nicht brauchen, und passen Sie den Rest an.
2026/05/01 14:23:01 [DNS] [DoH3+ECH] 192.168.1.42 (alice-iphone) -> google.com A | ROUTE: kids | UPSTREAM: doh3://cloudflare-dns.com | OK
2026/05/01 14:23:02 [DNS] [UDP] 192.168.1.42 (alice-iphone) -> google.com A | ROUTE: kids | CACHE HIT
2026/05/01 14:23:05 [DNS] [DoQ] 192.168.1.10 -> nas.lan A | LOCAL IDENTITY
2026/05/01 14:23:10 [DNS] [UDP] 192.168.1.42 (alice-iphone) -> dga-domain-xzq1.com A | DGA INTERCEPT (Score: 98.2) | NXDOMAIN