
وكيل 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 عادي).
راجع KEY_ADVANTAGES.md للمزايا الرئيسية مقارنة بالبدائل.
UDP/TCP القديم العادي (المنفذ 53)، وDNS المشفّر عبر TLS (DoT)، وDNS عبر HTTPS (DoH)، وDNS عبر QUIC (DoQ).
sdproxy أصلياً بتحليل ترويسات Alt-Svc ومعاملات SVCB/HTTPS ALPN لترقية تدفقات DoH القياسية بسلاسة إلى اتصالات HTTP/3 (QUIC) عالية الأداء أثناء التشغيل.يحمي تصفحك من الفحص العميق للحزم من قبل مزود خدمة الإنترنت عبر تشفير مؤشر اسم الخادم في TLS (SNI).
_dns.resolver.arpa SVCB/HTTPS) ونقاط نهاية HTTPS /.well-known/origin-svcb / /.well-known/ech.HTTPS/SVCB الخاصة بهم (والبدائل الاحتياطية L7 .well-known)، ويستخرج مفاتيح ECH الخاصة بهم، ويؤمّن مصافحة TLS بشكل مستقل تماماً.محرك استدلال تعلّم آلة أصلي بلا تخصيص ذاكرة (zero-allocation) للانحدار اللوجستي يعمل على المسار الساخن. يستخرج إنتروبيا شانون، وانحراف حروف العلة/الساكنة، وأنماط الأرقام اللاحقة، وسلاسل الحروف الساكنة لكشف وحجب النطاقات المولّدة خوارزمياً (DGA) التي تستخدمها شبكات البوتات والبرمجيات الخبيثة وبنية C2 فوراً.
eTLD+1) ضمن نافذة زمنية قابلة للتهيئة لاعتراض أنفاق DNS البطيئة والمنخفضة وتسريب سرّاق المعلومات.لا يقوم sdproxy بمجرد تمرير الاستعلامات بشكل أعمى؛ بل يقيّم المصادر الأعلى ديناميكياً.
max_secure_upstreams (افتراضياً 5) من الخوادم السليمة في مجموعة في وقت واحد. يفحص الحمولات بعمق (سلاسل CNAME، نقاط نهاية IP النهائية) مع دعم تفضيلات fastest وordered وconsolidate (مجموعة إجابات مدموجة)، ويُسقط أو يحجب الاستجابة إذا اختلفت المصادر الأعلى أو أعادت IP مسمّماً فارغاً.هل أجبت على شيء مؤخراً؟ قدّمه من الذاكرة المؤقتة. يستخدم sdproxy 32 شريحة ذاكرة مزروعة تشفيرياً مع استمرارية اختيارية على القرص عبر عمليات إعادة التشغيل. إذا انتهت صلاحية سجل بينما لا يزال شائعاً، يُطلق sdproxy جلباً مسبقاً في الخلفية حتى لا تلاحظ أجهزتك أبداً فقدان إصابة الذاكرة المؤقتة. يدعم بالكامل خدمة السجلات القديمة RFC 8767 وبدائل انقطاع serve_stale_infinite.
وجّهه إلى ملفات إيجار DHCP و/etc/hosts وسيجيب على عمليات البحث عن الأسماء المحلية (NAS الخاص بك، طابعتك، Raspberry Pi الخاص بك) دون إزعاج مُحلِّل أعلى أو تسريب استعلامات LAN إلى الأعلى. يعمل مع dnsmasq وISC DHCP وKea وodhcpd.
اربط هوية جهاز بمجموعة مُحلِّل أعلى مختلفة أو ملف أبوي.
CC:XX عبر IPinfo)، اسم العميل، TLS SNI (sni:)، مسارات HTTP DoH (path:)، ومنافذ المستمع (port:).force-and: true (مثلاً، الشبكة الفرعية AND منفذ المستمع).rcode: REFUSED، NXDOMAIN، BLOCK، DROP) مباشرة بقاعدة توجيه لحجر العميل فوراً.أنشئ ملفاً لكل طفل، وعيّن أجهزتهم، وهيئ:
group أو لكل device). يدعم ALLOW وBLOCK وFREE وLOG وUNLIMITED، وتجاوزات نافذة UNTRIGGER المؤقتة.واجهة اختيارية محمية بكلمة مرور في المتصفح (HTTP/HTTPS، أو متعددة الإرسال على منفذ DoH 443) للعمليات الحية.
يُسقط أي استجابة من المصدر الأعلى تحتوي على عناوين IP خاصة أو bogon (RFC1918، loopbacks، link-local، ULAs) لمنع تزوير الطلبات من جانب الخادم (SSRF) وهجمات محور المتصفح.
git clone https://github.com/cbuijs/sdproxy
cd sdproxy
go build -o sdproxy .
./sdproxy --config config.yaml
يتطلب Go 1.26+. بدون 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 في هذا المستودع كل خيار على حدة بشكل مضمّن - هذا الملف هو الدليل. انسخه، واحذف ما لا تحتاجه، وعدّل الباقي.