كيفية إعداد Pihole في حاوية Docker

ربما تزعجك الإعلانات المنبثقة عند قراءة مقال على موقع الويب. مع كل تلك الإعلانات، كيف يمكنك منعها؟ قم بتثبيت 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 volume create pihole_app
docker volume create dns_config

بعد ذلك، تحقق من أن حجمي Docker قد تم إنشاؤهما بنجاح عن طريق تشغيل الأمر التالي الذي يعرض جميع حجمي Docker المتاحة على جهازك.

docker volume ls

أدناه، ترى حجمين تم إنشاؤهما حديثًا بأسماء pihole_app و dns_config.

Creating two Docker Volumes for the Pi-hole Configurations.

تشغيل Pi-hole في حاوية Docker مع متغيرات البيئة

الآن بعد أن لديك حجمين دائمين متاحين، أنت جاهز لتشغيل حاوية Docker باستخدام صورة Docker الأساسية لـ Pi-hole. ولكن أولاً، ستحتاج إلى ملاحظة عنوان IP المحلي الخاص بك.

قم بتشغيل الأمر أدناه للحصول على عنوان IP المحلي الخاص بك. عنوان IP المحلي الخاص بك ضروري لتشغيل الأمر الواحد لـ Docker بشكل صحيح.

ipconfig /all

بعد ذلك، قم بتشغيل الأمر أدناه لسحب صورة القاعدة pihole/pihole من Docker hub. استبدل القيم وفقًا للجدول أدناه كمرجع لك. الجدول أدناه يشرح كل راية من أغراض الأمر.

docker run --name=pihole -e TZ=Asia/Manila -e WEBPASSWORD=password -e SERVERIP=YourIPAddressHere -v pihole_app:/etc/pihole -v dns_config:/etc/dnsmasq.d -p 81:80 -p 53:53/tcp -p 53:53/udp --restart=unless-stopped pihole/pihole

رايات أمر 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 على جهازك، يستمر الأمر تلقائيًا ويتبع المعاملات التي قمت بتعيينها في الأمر.

Downloading pihole/pihole image.

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

Seeing the Pi-hole Docker Container Running Properly.

الوصول إلى واجهة الويب للوحة تحكم 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” (بدون اقتباس).

Accessing the Pi-hole dashboard.

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

Viewing Pi-hole dashboard Default Page.

توجيه خادم DNS الرئيسي إلى عنوان IP الخاص بـ Pi-hole

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

1. انقر بزر الماوس الأيمن على أيقونة إعدادات الشبكة في علبة نظام Windows واختر افتح إعدادات الشبكة والإنترنت لرؤية قائمة جميع محولات الشبكة في جهازك.

Accessing Network & Internet Settings

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

Accessing Network Adapter Properties.

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

Accessing IPv4 Properties.

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 البديل الذي تفضله.
Configuring IPv4 Properties

تكوين DNS لجهاز واحد

في افتراض أن لديك هاتف ذكي أو أي جهاز آخر متصل بنفس الشبكة، يمكنك توجيه خادم DNS لذلك الجهاز لمطابقة عنوان IP للمضيف. في هذا البرنامج التعليمي، يتم توصيل هاتف ذكي بنفس الشبكة.

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

واجهة إعدادات شبكة اللاسلكية على الهواتف الذكية تختلف من جهاز إلى آخر.

Configuring DNS server on smartphone

2. الآن قم بزيارة بعض المواقع التي تحتوي على إعلانات كثيرة في متصفح الويب الخاص بالهاتف الذكي.

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

تمت إضافة الرسوم البيانية الشريطية مؤخرًا إلى أحدث إصدار من Pi-hole في وقت كتابة هذا النص. قد تحتوي الإصدارات القديمة على رسوم بيانية خطية بدلاً من ذلك.

Running Docker Pi-hole in Action with a Smartphone Usage for 5-10 Minutes

تمكين حظر الشبكة المنزلية عبر إعدادات الموجه

بدلاً من تكوين خادم DNS على جهاز واحد، جرب تكوين خوادم DNS لجميع الأجهزة في إعدادات الموجه الخاص بك. اعتمادًا على نوع الموجه الخاص بك، قد يكون هناك أو لا يكون هناك ترتيب لاستخدام عنوان IP.

في هذا العرض التوضيحي، لم يسمح الموجه بالوصول إلى تغيير خوادم DNS و DHCP. لذا، لم يتم استكشاف الشبكة المنزلية بالتفصيل الكامل في هذا البرنامج التعليمي بسبب قيود الموجه.

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

واجهة تكوين DNS تختلف من موجه إلى آخر، ولكن إعدادات تبدو مشابهة لتلك الموضحة أدناه.

Manually setting a router DNS settings.

يمكنك أيضًا تعطيل خادم 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.

docker cp blocklist.txt d70:/etc/pihole/blacklist.txt

3. في النهاية، انتقل مرة أخرى إلى لوحة تحكم مسؤول Pi-hole. انقر فوق القائمة Tools في اللوحة الجانبية اليسرى ثم انقر على الرابط Update Gravity. وأخيرًا، انقر على Update لاسترجاع قائمة محدثة من عناوين URL لحجب Pi-hole.

Showing Update Gravity on Pi-hole UI after Copying Additional Website Blacklists on Text File

A successful update will look like the one below.

Showing Display of Update Gravity Success

تحديث قائمة حظر مواقع الويب عبر وحدة التحكم

ربما تفضل تشغيل أوامر وحدة التحكم بدلاً من لوحة تحكم Pi-hole. إذا كان الأمر كذلك، يمكنك تشغيل أمر Docker في PowerShell لحجب المواقع. قم بتشغيل أمر docker exec أدناه لإنشاء جلسة تفاعلية في وحدة التحكم لحاوية Docker pihole_app، مما يسمح بتشغيل الأوامر.

docker exec -it pihole_app /bin/bash

بمجرد فتح جلسة التحكم، قم بتشغيل الأمر أدناه لتحديث قائمة حظر Pi-hole لعناوين URL.

pihole -g

قم بتشغيل pihole -g بين الحين والآخر للحفاظ على تحديث مانع الإعلانات الخاص بك.

حجب المواقع عبر قوائم URL المحتفظ بها من قبل المجتمع

بعض عناوين URL مخصصة لتحديثها بانتظام من قبل مساهمينها، والبعض الآخر لا يفعل ذلك، لذا قد لا يعكس تحميل قائمة سوداء من قائمة قديمة أحدث التغييرات.

استفد من ميزة إدارة مجموعة Adlist في Pi-hole. على لوحة تحكم Pi-hole، انقر فوق Group ManagementAdlists في اللوحة الجانبية اليسرى، ثم انقر على Add لاختيار قائمة العناوين URL التي ترغب في إضافتها في Pi-hole.

Adding a Community-Maintained Blacklists of URLs for Pi-hole to Block

الاستنتاج

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

مع هذه المعرفة، لماذا لا تستخدم أي جهاز مضيف لحظر الإعلانات للأجهزة الأخرى المتصلة في نفس الشبكة؟

Source:
https://adamtheautomator.com/pi-hole-in-docker/