Home تقنية Armadillo – خادم DNS في Gleam لاستخدام Homelab | itg-ar.com

Armadillo – خادم DNS في Gleam لاستخدام Homelab | itg-ar.com

4
0
Armadillo – خادم DNS في Gleam لاستخدام Homelab
| itg-ar.com

Armadillo – خادم DNS في Gleam لاستخدام Homelab

خادم DNS مستضاف ذاتيًا للاستخدام المنزلي، مكتوب بلغة Gleam. armadillo.showcase.mp4 قم بتكوينه مرة واحدة على جهاز التوجيه الخاص بك حيث يقوم محلل DNS وكل جهاز على الشبكة بحل النطاقات المحلية الخاصة بك تلقائيًا. عند وصول استعلام DNS، يقوم الخادم بفحص مخزن السجلات المحلي الخاص به أولاً. في حالة وجود سجل مطابق، فإنه يستجيب على الفور باستخدام عنوان IP الذي تم تكوينه. إذا لم يتطابق أي سجل، فسيتم إعادة توجيه الاستعلام إلى محلل أولي قابل للتكوين، ويتم تخزين الاستجابة مؤقتًا بواسطة TTL، وإعادتها إلى العميل. يتم تخزين السجلات المحلية في ملف منطقة DNS ويتم تحميلها في “خدمات الاختبارات التربوية” عند بدء التشغيل. يمر كل حل الاستعلام في وقت التشغيل عبر خدمة الاختبارات التربوية (ETS) فقط، ولا تتم قراءة ملف المنطقة مطلقًا أثناء معالجة الاستعلام. متوفر على ghcr.io/vshakitskiy/armadillo:latest. المتغير الافتراضي الوصف DNS_PORT 53 منفذ يستمع خادم DNS على DNS_UPSTREAM 8.8.8.8 محلل المنبع للنطاقات غير المعروفة DNS_TTL 300 افتراضي TTL لسجلات المنطقة في ثوانٍ DNS_SOA_MINIMUM 3600 SOA الحد الأدنى TTL للتخزين المؤقت السلبي في ثوانٍ API_PORT 3000 منفذ لواجهة مستخدم الويب وREST API API_SECRET_KEY_BASE مفتاح عشوائي سر يستخدم للتوقيع ملفات تعريف الارتباط للجلسة ZONE_FILE /data/local.zone المسار إلى ملف منطقة DNS قم بتحميل وحدة تخزين إلى /data للاستمرار في ملف المنطقة عبر عمليات إعادة التشغيل. يتم إنشاء ملف المنطقة تلقائيًا إذا لم يكن موجودًا. يمكن العثور على أدلة النشر في الدليل/ الأمثلة. Podman — خدمة systemd عبر Podman Quadlet مع Caddy كوكيل عكسي. Docker Compose — تطبيق متعدد الحاويات مع Caddy كوكيل عكسي. يقبل الخادم أي سلسلة مجال. ومع ذلك، تجنب .local. إنه محجوز لـ mDNS/Bonjour (RFC 6762) ولن ترسل أجهزة Apple استعلامات .local إلى خادم DNS أحادي البث. يعد .lan أو .internal من البدائل الشائعة. سأكون سعيدًا بتلقي أي مساهمات وتعليقات. نرحب بالقضايا أو طلبات السحب! يحتوي المشروع على ثلاث حزم: يقوم الخادم بتشغيل محلل DNS وواجهة برمجة تطبيقات HTTP، والعميل هو واجهة مستخدم الويب، ويحتوي المشترك على وحدات يستخدمها كليهما. يتم تطوير كل حزمة بشكل مستقل، وتشغيل gleam run في الخادم/ وgleam run -m Lustre/dev في Client/. لإدارة متغيرات البيئة محليًا أثناء التطوير، يوصى باستخدام direnv. للربط بالمنفذ 53 محليًا بدون sudo، قم بتشغيل setcap على BEAM الثنائي: # ابحث عن الملف الثنائي: $(what erl) -noshell -eval ‘io:format(“~s~n”,(os:find_executable(“beam.smp”))),halt().’ # > /path/to/beam.smp sudo setcap cap_net_bind_service=+ep /path/to/beam.smp ملاحظات شخصية إذا واجهت مشكلات DNS مع VPN مرة أخرى. عند تشغيل VPN مثل vless في وضع الوكيل أو tun، من المهم جدًا التأكد من أن VPN تحل النطاقات عبر DNS الصحيح. بافتراض أن IP الخاص بجهاز التوجيه 192.168.1.1 هو المكان الذي تم فيه تكوين خادم DNS: أضف جهاز التوجيه كخادم DNS وقم بتوجيه عناوين IP لشبكة LAN مباشرةً للأشعة السينية: قم بوضع علامة على خادم DNS المحلي وقم بتوجيه عناوين IP الخاصة من خلاله لمربع الغناء:


تم النشر: 2026-06-28 07:00:00

مصدر: github.com