ربما تزعجك الإعلانات المنبثقة عند قراءة مقال على موقع الويب. مع كل تلك الإعلانات، كيف يمكنك منعها؟ قم بتثبيت Pi-hole في Docker، واستخدم Pi-hole كمانع إعلانات شبكي وتحسين أداء الشبكة الخاصة بك.
في هذا البرنامج التعليمي، ستتعلم كيفية إعداد وتشغيل Pi-hole في حاوية Docker لمنع الإعلانات والمواقع الإلكترونية. هل تبدو مثيرة للإعجاب؟ تابع القراءة لمعرفة المزيد!
المتطلبات المسبقة
سيكون هذا البرنامج التعليمي عرضًا عمليًا. إذا كنت ترغب في متابعته، تأكد من أن لديك ما يلي:
- تم تثبيت Docker على Windows 10 (ولكن أي نظام تشغيل مدعوم سيعمل).
- A Windows 10 PC – This tutorial uses Windows 10 OS Build 19042.1165.
إنشاء حجمي تخزين دائميين في Docker
عند إعداد Pi-hole في حاوية Docker، ستحتاج في البداية إلى إنشاء حجم تخزين Docker لتخزين تطبيق Pi-hole وتكوين DNS.
افتح PowerShell كمسؤول، ثم قم بتشغيل الأوامر أدناه لـ Docker لإنشاء حجمين (volume create
) بأسماء pihole_app
و dns_config
. يمكنك أيضًا تغيير الأسماء حسب تفضيلك.
بعد ذلك، تحقق من أن حجمي Docker قد تم إنشاؤهما بنجاح عن طريق تشغيل الأمر التالي الذي يعرض جميع حجمي Docker المتاحة على جهازك.
أدناه، ترى حجمين تم إنشاؤهما حديثًا بأسماء pihole_app
و dns_config
.

تشغيل Pi-hole في حاوية Docker مع متغيرات البيئة
الآن بعد أن لديك حجمين دائمين متاحين، أنت جاهز لتشغيل حاوية Docker باستخدام صورة Docker الأساسية لـ Pi-hole. ولكن أولاً، ستحتاج إلى ملاحظة عنوان IP المحلي الخاص بك.
قم بتشغيل الأمر أدناه للحصول على عنوان IP المحلي الخاص بك. عنوان IP المحلي الخاص بك ضروري لتشغيل الأمر الواحد لـ Docker بشكل صحيح.
بعد ذلك، قم بتشغيل الأمر أدناه لسحب صورة القاعدة pihole/pihole
من Docker hub. استبدل القيم وفقًا للجدول أدناه كمرجع لك. الجدول أدناه يشرح كل راية من أغراض الأمر.
رايات أمر Pi-hole Docker
Command Flags | Definition |
—name=pihole | Names a Docker container as pihole. There will be an error if a container with the same name already exists on your machine |
-e TZ=Asia/Manila | Environment variable for time zone. Asia/Manila was used for this tutorial, but you can input anything that has the same format listed in on a GitHub gist. |
-e WEBPASSWORD=password | Sets a password for the Pi-hole interface. |
-e SERVERIP=YourIPAddressHere | Set your IP address for the Docker container. You will use this again later for making Pi-hole work. |
-v pihole_app:/etc/pihole | Mounts the volume pihole_app and use subdirectory /etc/pihole for storing the Pi-hole files |
-v dns_config:/etc/dnsmasq.d | Mounts the volume dns_config and use subdirectory /etc/dnsmasq.d for storing DNS configurations as required. |
p 81:80 -p 53:53/tcp -p 53:53/udp | Maps the ports of host machine to the ports of the Docker container (port 81 in host machine maps to port 80 of Docker container) |
—restart=unless-stopped | Sets a restart policy so the Docker container always restarts unless it is manually stopped by the user. |
pihole/pihole | Tells the docker run command to use the official pihole/pihole base image from Docker hub. |
بالأسفل، يمكنك رؤية الأمر الذي يقوم بسحب صورة الأساسية pihole/pihole
من Docker Hub. بمجرد أن يتم تنزيل صورة pihole/pihole
على جهازك، يستمر الأمر تلقائيًا ويتبع المعاملات التي قمت بتعيينها في الأمر.

بعد سحب صورة الأساسية pihole/pihole
، سترى إخراجًا مثل الذي بالأسفل، الذي يشير إلى أنه يمكنك تشغيل لوحة تحكم Pi-hole من الحاوية بالفعل.

الوصول إلى واجهة الويب للوحة تحكم Pi-hole
بمجرد تشغيل حاوية Docker التي أنشأتها، يمكنك الآن الوصول إلى لوحة تحكم Pi-hole. لوحة تحكم Pi-hole هي واجهة رسومية تسمح لك بتكوين الإعلانات التي تريد حظرها إما عبر القائمة السوداء الخاصة بك أو عبر القوائم السوداء التي يديرها المجتمع.
انتقل إلى http://localhost:81 على متصفحك حيث قمت بتعيين البورت 81
لجهاز الاستضافة مسبقًا للبورت 80
لحاوية Docker. بذلك، يقوم متصفح الويب بإعادة توجيه الصفحة إلى لوحة تحكم Pi-hole.
إذا قمت بتعيين بورت مختلف عند تشغيل الأمر السابق باستخدام
docker
، قم بتغيير البورت للوصول إلى لوحة تحكم Pi-hole. على سبيل المثال، http://localhost:n حيث ‘n’ يمثل رقم البورت.
الآن، قم بتسجيل الدخول إلى لوحة تحكم Pi-hole بكلمة المرور التي قمت بتعيينها باستخدام أمر docker
في قسم “تشغيل حاوية Pi-hole Docker بمتغيرات البيئة”. في هذا البرنامج التعليمي، كلمة المرور هي “password” (بدون اقتباس).

كما ترى أدناه ، لا يقوم حاوية Pi-hole بحظر الإعلانات بنشاط وهي في وضع الاستعداد في انتظار ما يسميه “الاستعلامات” أو طلبات الإعلانات للتقييم.

توجيه خادم DNS الرئيسي إلى عنوان IP الخاص بـ Pi-hole
مع تشغيل خادم Pi-hole ، كيف يمكنك بدء حظر الإعلانات على نظامك المحلي؟ تحتاج إلى إخبار نظامك المحلي بتوجيه جميع الطلبات إلى عنوان IP الخاص بـ Pi-hole وحظر أي إعلانات تتطابق. تابع القراءة لتعلم كيف!
1. انقر بزر الماوس الأيمن على أيقونة إعدادات الشبكة في علبة نظام Windows واختر افتح إعدادات الشبكة والإنترنت لرؤية قائمة جميع محولات الشبكة في جهازك.

2. بعد ذلك ، انقر بزر الماوس الأيمن على محول الشبكة الخاص بك واختر الخصائص. ستظهر نافذة إعدادات محول الشبكة.

3. حدد الإصدار 4 لبروتوكول الإنترنت (TCP/IPv4) من القائمة تحت علامة التبويب الشبكة ، ثم انقر فوق زر الخصائص.

4. قم بتكوين خصائص IPv4 على النحو التالي:
- حدد الخيار استخدام عنوان IP التالي لتعيين عنوان IP ثابت. تعيين عنوان IP الثابت لجهاز الاستضافة يتيح للأجهزة الأخرى الاتصال واستخدام منع الإعلانات. البوابة الافتراضية للموجه تختلف اعتمادًا على إعدادات مزود خدمة الإنترنت الخاص بك في بلدك.
- اختر الخيار استخدم عناوين خادم DNS التالية لتكوين خادم DNS الخاص بك، وأضف خادم DNS في حقل الخادم DNS المفضل. أدخل عنوان IP لخادم Docker الذي قمت بتعيينه من الأمر السابق
docker
تحت القسم “تشغيل حاوية Pi-hole Docker بمتغيرات البيئة”. - أضف خادم بديل مثل خادم Google 8.8.8.8 في الحقل الخادم DNS البديل، وانقر فوق موافق. يعمل الخادم DNS البديل كخادم DNS في حالة تعطل حاوية Pi-hole Docker لأي سبب من الأسباب. يمكنك إعطاء قيمة أخرى لخادم DNS البديل الذي تفضله.

تكوين DNS لجهاز واحد
في افتراض أن لديك هاتف ذكي أو أي جهاز آخر متصل بنفس الشبكة، يمكنك توجيه خادم DNS لذلك الجهاز لمطابقة عنوان IP للمضيف. في هذا البرنامج التعليمي، يتم توصيل هاتف ذكي بنفس الشبكة.
1. في إعدادات شبكة اللاسلكية للهاتف الذكي، انقر فوق يدوي وأدخل عنوان IP لجهاز المضيف. يمكنك أيضًا إضافة عناوين IP بديلة في حالة فشل Pi-hole.
واجهة إعدادات شبكة اللاسلكية على الهواتف الذكية تختلف من جهاز إلى آخر.

2. الآن قم بزيارة بعض المواقع التي تحتوي على إعلانات كثيرة في متصفح الويب الخاص بالهاتف الذكي.
لهذا المثال، تمت زيارة مواقع Daily Mail و New York Times مراراً وتكراراً لمدة 5-10 دقائق. يعرض لوحة تحكم متصفح الويب الحي على لوحة Pi-hole عدد الإعلانات المحظورة من الجهاز، كما هو موضح أدناه.
تمت إضافة الرسوم البيانية الشريطية مؤخرًا إلى أحدث إصدار من Pi-hole في وقت كتابة هذا النص. قد تحتوي الإصدارات القديمة على رسوم بيانية خطية بدلاً من ذلك.

تمكين حظر الشبكة المنزلية عبر إعدادات الموجه
بدلاً من تكوين خادم DNS على جهاز واحد، جرب تكوين خوادم DNS لجميع الأجهزة في إعدادات الموجه الخاص بك. اعتمادًا على نوع الموجه الخاص بك، قد يكون هناك أو لا يكون هناك ترتيب لاستخدام عنوان IP.
في هذا العرض التوضيحي، لم يسمح الموجه بالوصول إلى تغيير خوادم DNS و DHCP. لذا، لم يتم استكشاف الشبكة المنزلية بالتفصيل الكامل في هذا البرنامج التعليمي بسبب قيود الموجه.
في عرض إداري عينة، قد تتمكن من ترميز عنوان IP لخادم DNS بنفس الطريقة التي تم فيها تنفيذ ذلك في جهاز واحد. يستخدم هذا البرنامج التعليمي موجه Prolink PRS1841U-v2 مقفل على مزود الخدمة.
واجهة تكوين DNS تختلف من موجه إلى آخر، ولكن إعدادات تبدو مشابهة لتلك الموضحة أدناه.

يمكنك أيضًا تعطيل خادم DHCP في جهاز التوجيه ثم تمكين خادم DHCP في Pi-hole بدلاً من ذلك. يوضح نقاش عينة في مجتمع Pi-hole هذا بالتفصيل.
حجب المواقع عبر لوحة تحكم Pi-hole
يقوم التثبيت الافتراضي لـ Pi-hole بحجب حوالي 92,725 موقعًا على الويب افتراضيًا، ولكن يمكنك أيضًا إضافة المزيد من المواقع عبر قوائم الحظر من مطور Pi-hole وغيرها من القوائم المشتركة من قبل محبي Pi-hole.
١. احفظ المواقع التي تريد حجبها في ملف نصي باسمك المفضل. في هذا المثال، يتم تسمية الملف blocklist.txt.
٢. قم بتشغيل الأمر docker
أدناه لنسخ ملف blocklist.txt (cp blocklist.txt
) إلى حجم حاوية Docker في ملف باسم blacklist.txt. احتفظ بملف blacklist.txt على حجم الحاوية Docker بحيث يتم اكتشافه تلقائيًا بواسطة Pi-hole.
3. في النهاية، انتقل مرة أخرى إلى لوحة تحكم مسؤول Pi-hole. انقر فوق القائمة Tools في اللوحة الجانبية اليسرى ثم انقر على الرابط Update Gravity. وأخيرًا، انقر على Update لاسترجاع قائمة محدثة من عناوين URL لحجب Pi-hole.

A successful update will look like the one below.

تحديث قائمة حظر مواقع الويب عبر وحدة التحكم
ربما تفضل تشغيل أوامر وحدة التحكم بدلاً من لوحة تحكم Pi-hole. إذا كان الأمر كذلك، يمكنك تشغيل أمر Docker في PowerShell لحجب المواقع. قم بتشغيل أمر docker exec
أدناه لإنشاء جلسة تفاعلية في وحدة التحكم لحاوية Docker pihole_app
، مما يسمح بتشغيل الأوامر.
بمجرد فتح جلسة التحكم، قم بتشغيل الأمر أدناه لتحديث قائمة حظر Pi-hole لعناوين URL.
قم بتشغيل
pihole -g
بين الحين والآخر للحفاظ على تحديث مانع الإعلانات الخاص بك.
حجب المواقع عبر قوائم URL المحتفظ بها من قبل المجتمع
بعض عناوين URL مخصصة لتحديثها بانتظام من قبل مساهمينها، والبعض الآخر لا يفعل ذلك، لذا قد لا يعكس تحميل قائمة سوداء من قائمة قديمة أحدث التغييرات.
استفد من ميزة إدارة مجموعة Adlist في Pi-hole. على لوحة تحكم Pi-hole، انقر فوق Group Management → Adlists في اللوحة الجانبية اليسرى، ثم انقر على Add لاختيار قائمة العناوين URL التي ترغب في إضافتها في Pi-hole.

الاستنتاج
في هذا الدليل، تعلمت كيفية تنزيل صورة دوكر لـ Pi-Hole، واختبار واجهة ويب Pi-hole النشطة، واختبار جهاز خارجي للاتصال بـ Pi-hole. لقد تعلمت أيضًا كيفية حظر الإعلانات والمواقع، وقد رأيت لوحة تحكم Pi-hole وهي تقوم بحظرها.
مع هذه المعرفة، لماذا لا تستخدم أي جهاز مضيف لحظر الإعلانات للأجهزة الأخرى المتصلة في نفس الشبكة؟