
وكيل DNS بسيط وسريع بميزات ليست بهذه البساطة. يركز على إعادة توجيه DNS الموجّه والتصفية والرقابة الأبوية.
وكيل DNS يمنحك تحكماً حقيقياً في شبكتك المنزلية.
أمضيت سنوات كمستشار في "حلبة" الشبكات والأمن "الكبيرة". كان/لا يزال أمن DNS عملي اليومي، ولكنه أيضاً هواية مفضلة للتلاعب بها. لأن لدي أطفال الآن، وأحتاج أن أكون والداً مسؤولاً، توليت على عاتقي مسؤولية تصفية الإنترنت الشرير الكبير لهم. لذلك بنيت sdproxy (وكيل DNS البسيط). إنه يجلب حمايات/أساليب/دقة المؤسسات/الكبيرة إلى مستوى الشبكة المنزلية (نوعاً ما).
الوكيل مكتوب بلغة Go ويُترجم إلى ملف تنفيذي خفيف لأجهزة التوجيه الرخيصة. لا توجد إطلاقاً اشتراكات سحابية أو رسوم شهرية. يتحدث كل نكهات DNS ويتضمن تحكماً تكيفياً في القبول للبقاء مستقراً. إنه مجرد دقة خفيفة (نوعاً ما)، شرسة، مهندسة هولندياً لغرفة المعيشة. فقط أنت، ملف تنفيذي واحد وملف yaml.
وتذكر... إنه دائماً DNS!
ملاحظة: ملف full_reference_config.yaml دائماً أكثر تحديثاً من هذا README. عند الشك، تحقق هناك.
DNS هو دليل هاتف الإنترنت - كل جهاز على شبكتك يبحث عن اسم قبل أن يتصل بأي مكان.
sdproxy يجلس في منتصف ذلك، على جهاز التوجيه الخاص بك، ويتيح لك تحديد ما يحدث بعد ذلك: تخزينه مؤقتاً، حظره، توجيهه إلى مُحلِّل مختلف، تطبيق نماذج أمنية متقدمة بالتعلم الآلي، أو فرض حدود زمنية لكل طفل. لا اشتراك سحابي، لا رسوم شهرية، لا خدمة خارجية تتعطل.
إنه مكتوب بلغة Go، يُترجم إلى ملف تنفيذي واحد، وخفيف بما يكفي للعمل على أجهزة توجيه منزلية رخيصة (OpenWrt على TP-Link أو GL.iNet أو NetGear، pfSense، OPNsense أو مجرد صندوق Linux عادي).
انظر للمزايا الرئيسية مقابل البدائل هنا.
UDP/TCP القديم العادي (المنفذ 53)، DNS المشفر عبر TLS (DoT)، DNS عبر HTTPS (DoH)، وDNS عبر QUIC (DoQ).
sdproxy أصلياً بتحليل ترويسات Alt-Svc ويرقّي بسلاسة تدفقات DoH القياسية إلى اتصالات HTTP/3 (QUIC) عالية الأداء أثناء التشغيل.يحمي تصفحك من الفحص العميق للحزم من قبل مزود خدمة الإنترنت عبر تشفير مؤشر اسم خادم TLS (SNI).
HTTPS/SVCB الخاصة بهم، يستخرج مفاتيح ECH الخاصة بهم، ويؤمّن مصافحة TLS بشكل مستقل تماماً.محرك استدلال ML للانحدار اللوجستي أصلي، بدون تخصيص ذاكرة، يعمل على المسار الساخن. يستخرج إنتروبيا شانون، انحراف حروف العلة/الحروف الساكنة، وسلاسل n-gram للكشف الفوري عن النطاقات المولدة خوارزمياً (DGA) المستخدمة من قبل شبكات البوتات والبرمجيات الخبيثة وبنية C2 وحظرها.
يتتبع التنميط الأساسي الحجمي المتوسط المتحرك الأسي (EMA) المُنعَّم بألفا للبيانات المنقولة لكل عميل أو لكل شبكة فرعية. يكتشف الانفجارات المفاجئة والشاذة للبيانات الخارجة من الشبكة عبر المنفذ 53 ويضع العميل في صندوق عقوبات عالي الأداء.
لا يقوم sdproxy بإعادة توجيه الاستعلامات بشكل أعمى فحسب؛ بل يقيّم المصادر العلوية ديناميكياً.
هل تمت الإجابة على شيء مؤخراً؟ قدّمه من الذاكرة المؤقتة. يستخدم sdproxy 32 جزءاً من الذاكرة بدون أقفال، مزروعاً تشفيرياً. إذا انتهت صلاحية سجل بينما لا يزال شائعاً، يُشغّل sdproxy جلباً مسبقاً في الخلفية حتى لا تلاحظ أجهزتك أبداً فقدان الذاكرة المؤقتة. يدعم بالكامل خدمة السجلات القديمة RFC 8767.
وجّهه إلى ملفات إيجار DHCP و/etc/hosts وسيجيب على استعلامات الأسماء المحلية (NAS الخاص بك، طابعتك، Raspberry Pi الخاص بك) دون إزعاج مُحلِّل علوي. يعمل مع dnsmasq وISC DHCP وKea وodhcpd.
اربط هوية الجهاز بمجموعة مُحلِّل علوي مختلفة أو ملف أبوي.
RCODE: REFUSED، NXDOMAIN) مباشرة بقاعدة توجيه للحجر الفوري على العميل.أنشئ ملفاً شخصياً لكل طفل، عيّن أجهزتهم، واضبط:
واجهة مستخدم اختيارية محمية بكلمة مرور في المتصفح للعمليات المباشرة.
يُسقط أي استجابة علوية تحتوي على عناوين IP خاصة أو bogon (RFC1918، loopbacks، ULAs) ويعيد NXDOMAIN لمنع تزوير الطلبات من جانب الخادم (SSRF) وهجمات محور المتصفح.
git clone https://github.com/cbuijs/sdproxy
cd sdproxy
go build -o sdproxy .
./sdproxy --config config.yaml
يتطلب Go 1.25+. لا CGo، لا مكتبات خارجية.
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 .
تُزيل أعلام -s -w رموز التصحيح - توفر 30-40% من حجم الملف التنفيذي، وهو أمر مهم على وحدات التخزين الوميضية الصغيرة.
كل شيء يعيش في ملف YAML واحد. يوثّق full_reference_config.yaml في هذا المستودع كل خيار على حدة بشكل مضمّن - هذا الملف هو الدليل. انسخه، احذف ما لا تحتاجه، واضبط الباقي.
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