طريقة عمل سيرفر DNS محلي داخل الجهاز
① تثبيت dnsmasq (سيرفر dns محلي)
sudo apt update && sudo apt install dnsmasq
② ملف الإعداد (يستمع على 5353 فقط) اعداد dns للمنفذ 5353
اولا: نفتح الملف بنانو :
sudo nano /etc/dnsmasq.conf
ثم نضيف البيانات هذه :
# لا ألمس المنفذ 53
port=5353
listen-address=127.0.0.1
bind-interfaces
# كاش 3 أيام
cache-size=10000
min-cache-ttl=3600
max-cache-ttl=259200
neg-ttl=259200
domain-needed
bogus-priv
# خوادم عليا
server=1.1.1.1
server=8.8.8.8
server=8.8.4.4
ثم نعمل خروج وحفظ : (ctrl+x) و (نختار نعم) ثم (ادخال لاعتماد نفس الاسم)
③ تشغيل الخدمة:
sudo systemctl enable --now dnsmasq
④ نُخبر الاتصال فقط (بدون تعديل نظامي) أن يستخدم المحلي مع المنفذ
يعني نغير اعدادات الشبكة المتصلة لكي تتصل بالسيرفر المحلي:
اولا نبحث عن اسم الشبكة المتصلة نجده تحت اسم NAME مثلا اتصالي وايفاي باسم “تلقائي Galaxy S10+ed3f”
ahmad@ahmad-sonic:~$ nmcli connection show
NAME UUID TYPE DEVICE
تلقائي Galaxy S10+ed3f 4fa745a9-1c77-4c71-87f3-ba0320bdfef4 wifi wlo1
lo 9e6223ed-5bdb-4f75-b827-8abb14a8b5b0 loopback lo
virbr0 2ebdea49-79c7-4201-a6bf-09288a8a4b1f bridge virbr0
اتصال سلكي 1 f9607e43-533c-3973-8da2-2b575056f012 ethernet --
اتصال سلكي 2 87713776-7a90-3d27-b7dc-86eb0640f6e1 ethernet --
تلقائي A26 الخاص بـ c4b45863-93f6-4acb-aa22-a459fe157df2 wifi --
يظهر اتصالي أمامه wifi وباسم: تلقائي Galaxy S10+ed3f ، وبما أنه فيه مسافات فلا يتعرف عليه الأمر بشكل صحيح ويلزم جعله داخل تنصيص ، الأن نقوم بضبط الاتصال ليستمع لسيرفر ال dns المحلي على المنفذ 5353 ونعمل الأوامر التالية سطر سطر :
nmcli connection modify "تلقائي Galaxy S10+ed3f" ipv4.dns "127.0.0.1#5353"
nmcli connection modify "تلقائي Galaxy S10+ed3f" ipv4.ignore-auto-dns yes
nmcli connection up "تلقائي Galaxy S10+ed3f"
⑤ الآن المفترض أنه يعمل ، نقوم باختباره بحيث نطلب مرتين ويكون مدة الأول فوق 10 ملي ثانية والثانية وما بعدها يكون 0 او 1 ملي ثانية دليل انه طلبها من داخل الجهاز واكتفى ، نكتب امر الاستفسار :
dig google.com
الآن يجيب في المرة الأولى بكلام كثير لكن يهمنا سرعة الرد في السطر :
;; Query time: 187 msec
نلاحظ المرة الثانية :
;; Query time: 0 msec
والثالثة :
;; Query time: 1 msec
هنا دليل على ان الطلب الأول ذهب يطلبه سيرفر ال dns المحلي من الانترنت واستغرق 187 ملي ثانية ، والطلبات التالية لم تستغرق إلا 0 أو 1 ملي ثانية دليل أن الرد اتى من ال dns المحلي .
وهنا سيبقى الاسم مخزن لمدة 3 ايام ويعاد طلبه بعدها ونحقق توفير للطلبات وتقليل لوقت الاستجابة .

