איך להגדיר 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.

יצירת שני כריות דוקר עמידות

בעת הגדרת Pi-hole בתוך תוכנית 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 באמצעות תמונת הבסיס של 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

דגלי פקודת Docker של Pi-hole

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

כאשר הקונטיינר שיצרת פועל, תוכל כעת לגשת ללוח המחוונים של Pi-hole. לוח המחוונים הוא ממשק גרפי שמאפשר לך להגדיר אילו מודעות לחסום, באמצעות הרשימה השחורה שלך או באמצעות רשימות שחורה מתוך הקהילה.

נווט אל http://localhost:81 בדפדפן שלך מאחר ושמפת בקודם יצרת פורט 81 של מכונת המארח לפורט 80 של הקונטיינר של Docker. בעקבות כך, דפדפן האינטרנט שלך מפנה אותך לדף של לוח המחוונים של Pi-hole.

אם הגדרת פורט שונה בזמן שהרצת את הפקודה הקודמת של docker, שנה את הפורט לגישה ללוח המחוונים של Pi-hole. לדוגמא, http://localhost:n, כאשר 'n' מייצג את מספר הפורט.

עכשיו, התחבר ללוח המחוונים של Pi-hole עם הסיסמה שהגדרת כשהרצת את פקודת docker בקטע "הפעלת קונטיינר Docker של Pi-hole עם משתני סביבה". למדריך זה, הסיסמה היא "password" (בלעדי ציטוטים).

Accessing the Pi-hole dashboard.

כפי שאתה רואה למטה, תיק ה-Pi-hole אינו חוסם פרסומות בצורה פעילה ונמצא במצב המתיר פעולה, מחכה למה שהוא קורא "שאילתות" או בקשות פרסומת להערכה.

Viewing Pi-hole dashboard Default Page.

כדי לכוון את שרת ה-DNS של המארח לכתובת ה-IP של Pi-hole

עם שרת Pi-hole רץ, איך תחל לחסום פרסומות במערכת המקומית שלך? עליך להודיע למערכת המקומית שלך להפנות את כל הבקשות לכתובת ה-IP של Pi-hole ולחסום כל פרסומות שתואמות. קרא הלאה כדי ללמוד איך!

1. לחץ ימנית על אייקון ההגדרות של הרשת בסטריי של מערכת החלונות ובחר פתח הגדרות רשת ואינטרנט כדי לראות את רשימת כל מתאםי הרשת במכונה שלך.

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 במקרה ששרת ה-Docker של Pi-hole נופל מסיבה מסוימת. באפשרותך להעניק ערך אחר לשרת 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

הפעלת חסימה ברשת הבית דרך הגדרות ה-Router

במקום להגדיר שרת DNS על מכשיר יחיד, כדאי לנסות להגדיר שרתי DNS עבור כל המכשירים בהגדרות ה-Router שלך. תלוי בסוג ה-Router שלך, ייתכן ויהיה אפשרות להשתמש בכתובת ה-IP.

לדוגמה, ה-Router בדמו לא איפשר גישה לשינוי שרתי DNS ו-DHCP. לכן, לא נעמיק ברשת הבית באופן מלא במהלך זה עקב הגבלות ה-Router.

בתצוגה כללית של מנהל, ייתכן שיהיה אפשרות לקודד את כתובת ה-IP של שרת ה-DNS באותו אופן שנעשה במכשיר יחיד. הדמו הזה משתמש ב-Router של Prolink PRS1841U-v2 שנעוץ לספק שירות רשת.

ממשק הקונפיגורציה של DNS ישתנה מ-Router ל-Router, אך ההגדרות יכולות להיראות דומות לכאלו שמוצגות למטה.

Manually setting a router DNS settings.

ניתן גם להשבית את שרת ה-DHCP בנתב ולהפעיל את שרת ה-DHCP ב-Pi-hole במקום. ב-דיון דוגמא בקהילת Pi-hole מוצג זאת בפרטים נוספים.

חסימת אתרים דרך לוח הבקרה של Pi-hole

ההתקנה ברירת המחדל של Pi-hole חוסמת באופן ברירת מחדל כ-92,725 אתרים, אך ניתן גם להוסיף עוד אתרים דרך רשימות שחור של Pi-hole ורשימות שמשתמשי Pi-hole משתפים.

1. שמור את האתרים שברצונך לחסום בקובץ טקסט בשם שאתה מעדיף. לדוגמה, הקובץ נקרא blocklist.txt.

2. הפעל את הפקודה של 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. לחצו על תפריט הכלים בפאנל השמאלי ואז על הקישור "עדכון כביכול" (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. אם כן, תוכלו להריץ פקודת דוקר ב-PowerShell כדי לחסום אתרי אינטרנט. הריצו את הפקודה docker exec למטה כדי ליצור משימת טרמינל אינטראקטיבית לקונטיינר ה-Docker pihole_app, שמאפשרת הרצת פקודות.

docker exec -it pihole_app /bin/bash

לאחר שהמשימה בטרמינל נפתחה, הריצו את הפקודה למטה כדי לעדכן את הרשימה השחורה של Pi-hole של כתובות URL.

pihole -g

הריצו מחדש את pihole -g מדי פעם כדי שחוסם הפרסומות שלכם יישאר מעודכן.

חסימת אתרים דרך רשימות החסימה של הקהילה

כמה מכתובות ה-URL המיועדות לעדכון באופן קבוע על ידי תורמיהן, וכמה לא, לכן העלאת רשימה שחורה מרשימה ישנה עשויה שלא לשקף את השינויים האחרונים.

השתמשו ביכולות ניהול קבוצת החסימה של Adlist של Pi-hole. בלוח הבקרה של Pi-hole, לחצו על ניהול קבוצה → רשימות חסימה בתפריט השמאלי, ואז לחצו על הוספה כדי לבחור ברשימת ה-URL שברצונכם להוסיף ל-Pi-hole.

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

סיכום

שיעור זה, למדת איך להוריד תמונת Docker של Pi-Hole, לבדוק את ממשק האינטרנט הפעיל של Pi-Hole, ולבדוק התקנה חיצונית המתחברת ל-Pi-Hole. למדת גם כיצד לחסום פרסומות ואתרים, וראית את לוח המחוונים של Pi-Hole בפעולה בעת חסימתם.

עם הידע הזה, למה לא להשתמש בכל מחשב מארח כדי לחסום פרסומות למכשירים מחוברים אחרים באותה רשת?

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