باستخدام برج المراقبة؟ راجع الملاحظة على برج المراقبة في أسفل هذا الملف التمهيدي
اعتبارًا من 2023.01
، إذا كان لديك أي تعديلات على lighttpd عبر ملف external.conf
، فيجب الآن تعيين هذا الملف إلى /etc/lighttpd/conf-enabled/whateverfile.conf
بدلاً من ذلك
نظرًا لوجود مشكلة معروفة في Docker وlibseccomp <2.5، قد تواجه مشكلات في تشغيل 2022.04
والإصدارات الأحدث على الأنظمة المضيفة التي تحتوي على إصدار أقدم من libseccomp2
(مثل Debian/Raspbian Buster أو Ubuntu 20.04، وربما CentOS 7).
التوصية الأولى هي ترقية نظام التشغيل المضيف لديك، والذي سيتضمن إصدارًا أكثر حداثة (وثابتًا) من libseccomp
.
إذا لم تتمكن مطلقًا من القيام بذلك، فقد أبلغ بعض المستخدمين عن نجاحهم في تحديث libseccomp2
عبر backports على debian، أو ما شابه ذلك عبر التحديثات على Ubuntu. يمكنك تجربة هذا الحل البديل على مسؤوليتك الخاصة (ملاحظة، قد تجد أيضًا أنك بحاجة إلى أحدث إصدار docker.io
(مزيد من التفاصيل هنا)
أبلغ بعض المستخدمين عن مشكلات في استخدام العلامة --privileged
في 2022.04
وما فوق. TL;DR، لا تستخدم هذا الوضع، وكن صريحًا مع الأحرف الكبيرة المسموح بها (إذا لزم الأمر) بدلاً من ذلك
# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services :
pihole :
container_name : pihole
image : pihole/pihole:latest
# For DHCP it is recommended to remove these ports and instead add: network_mode: "host"
ports :
- " 53:53/tcp "
- " 53:53/udp "
- " 67:67/udp " # Only required if you are using Pi-hole as your DHCP server
- " 80:80/tcp "
environment :
TZ : ' America/Chicago '
# WEBPASSWORD: 'set a secure password here or it will be random'
# Volumes store your data between container upgrades
volumes :
- ' ./etc-pihole:/etc/pihole '
- ' ./etc-dnsmasq.d:/etc/dnsmasq.d '
# https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
cap_add :
- NET_ADMIN # Required if you are using Pi-hole as your DHCP server, else not needed
restart : unless-stopped
docker compose up -d
لإنشاء pi-hole وبدء تشغيله (قد يكون بناء الجملة عبارة docker-compose
على الأنظمة القديمة)bridge
الافتراضي لـ Docker. (ويمكن تحقيق ذلك أيضًا عن طريق تعيين متغير البيئة DNSMASQ_LISTENING
على all
)فيما يلي برنامج نصي مكافئ لتشغيل عامل الإرساء.
مشروع Docker لإنشاء حاوية x86 وARM خفيفة الوزن مع وظيفة Pi-hole.
تستخدم هذه الحاوية منفذين شائعين، المنفذ 53 والمنفذ 80، لذلك قد تتعارض مع منافذ التطبيقات الموجودة . إذا لم يكن لديك أي خدمات أو حاويات إرساء أخرى تستخدم المنفذ 53/80 (إذا كان لديك، فاستمر في القراءة أدناه للحصول على مثال وكيل عكسي)، فإن الحد الأدنى من الوسائط المطلوبة لتشغيل هذه الحاوية موجود في البرنامج النصي docker_run.sh
إذا كنت تستخدم توزيعة تعتمد على Red Hat مع سياسة SELinux Enforcing، أضف :z
للتوافق مع المجلدات كما يلي:
-v "$(pwd)/etc-pihole:/etc/pihole:z"
-v "$(pwd)/etc-dnsmasq.d:/etc/dnsmasq.d:z"
يوصى باستخدام وحدات التخزين لاستمرار البيانات عبر عمليات إعادة إنشاء الحاوية لتحديث الصور. قد لا تعمل متغيرات بحث IP مع الجميع، برجاء مراجعة قيمها ورموز IP وIPv6 الخاصة بها إذا لزم الأمر.
يمكنك تخصيص مكان تخزين البيانات الدائمة عن طريق تعيين متغير البيئة PIHOLE_BASE
عند استدعاء docker_run.sh
(على سبيل المثال، PIHOLE_BASE=/opt/pihole-storage ./docker_run.sh
). إذا لم يتم تعيين PIHOLE_BASE
، فسيتم تخزين الملفات في الدليل الحالي عند استدعاء البرنامج النصي.
تحديثات قائمة الإعلانات التلقائية - منذ الإصدار 3.0+، يتم دمج cron
في الحاوية وسيحصل على أحدث الإصدارات من قوائمك ويمسح سجلاتك. قم بتعيين متغير بيئة TZ الخاص بك للتأكد من مزامنة دوران سجل منتصف الليل مع منتصف الليل في منطقتك الزمنية.
هناك عدة طرق مختلفة لتشغيل DHCP من داخل حاوية Docker Pi-hole الخاصة بك، ولكنها أكثر تقدمًا قليلاً وحجم واحد لا يناسب الجميع. تتم تغطية أوضاع الشبكة المتعددة لـ DHCP وDocker بالتفصيل على موقع المستندات الخاص بنا: Docker DHCP وأوضاع الشبكة
هناك متغيرات بيئة أخرى إذا كنت تريد تخصيص أشياء مختلفة داخل حاوية عامل الإرساء:
عامل | تقصير | قيمة | وصف |
---|---|---|---|
TZ | التوقيت العالمي | <Timezone> | قم بتعيين منطقتك الزمنية للتأكد من تدوير السجلات عند منتصف الليل المحلي بدلاً من منتصف الليل بالتوقيت العالمي المنسق. |
WEBPASSWORD | عشوائي | <Admin password> | http://pi.hole/admin كلمة المرور. قم بتشغيل docker logs pihole | grep random للعثور على تمريرك العشوائي. |
FTLCONF_LOCAL_IPV4 | غير محدد | <Host's IP> | قم بالتعيين على عنوان IP الخاص بالشبكة المحلية الخاصة بخادمك، والذي تستخدمه أوضاع كتلة الويب. |
عامل | تقصير | قيمة | وصف |
---|---|---|---|
PIHOLE_DNS_ | 8.8.8.8;8.8.4.4 | عناوين IP المحددة بـ ; | خادم (خوادم) DNS الأولية لـ Pi-hole لإعادة توجيه الاستعلامات إليها، مفصولة بفاصلة منقوطة (يدعم المنافذ غير القياسية مع #[port number] ) على سبيل المثال 127.0.0.1#5053;8.8.8.8;8.8.4.4 (يدعم أسماء وروابط خدمة Docker بدلاً من عناوين IP) على سبيل المثال upstream0;upstream1 حيث upstream0 و upstream1 هي أسماء الخدمة أو روابط لخدمات عامل الإرساءملاحظة: وجود متغير البيئة هذا يفترض أن هذا هو الإدارة الوحيدة لنظام DNS الأساسي. ستتم الكتابة فوق DNS المنبع الذي تمت إضافته عبر واجهة الويب عند إعادة تشغيل/إعادة إنشاء الحاوية |
DNSSEC | false | <"true"|"false"> | تمكين دعم DNSSEC |
DNS_BOGUS_PRIV | true | <"true"|"false"> | لا تقم مطلقًا بإعادة توجيه عمليات البحث العكسي للنطاقات الخاصة |
DNS_FQDN_REQUIRED | true | <"true"|"false"> | لا تقم مطلقًا بإعادة توجيه أسماء النطاقات غير FQDN |
REV_SERVER | false | <"true"|"false"> | تمكين إعادة التوجيه المشروط لـ DNS لتحليل اسم الجهاز |
REV_SERVER_DOMAIN | غير محدد | مجال الشبكة | إذا تم تمكين إعادة التوجيه الشرطي، فقم بتعيين مجال جهاز توجيه الشبكة المحلية |
REV_SERVER_TARGET | غير محدد | IP لجهاز التوجيه | إذا تم تمكين إعادة التوجيه المشروط، فقم بتعيين IP لجهاز توجيه الشبكة المحلية |
REV_SERVER_CIDR | غير محدد | عكس DNS | إذا تم تمكين إعادة التوجيه المشروط، فقم بتعيين منطقة DNS العكسية (على سبيل المثال 192.168.0.0/24 ) |
DHCP_ACTIVE | false | <"true"|"false"> | تمكين خادم DHCP. يمكن تكوين عقود إيجار DHCP الثابتة باستخدام /etc/dnsmasq.d/04-pihole-static-dhcp.conf |
DHCP_START | غير محدد | <Start IP> | بداية نطاق عناوين IP التي سيتم توزيعها بواسطة خادم DHCP (إلزامي في حالة تمكين خادم DHCP). |
DHCP_END | غير محدد | <End IP> | نهاية نطاق عناوين IP التي سيتم توزيعها بواسطة خادم DHCP (إلزامي في حالة تمكين خادم DHCP). |
DHCP_ROUTER | غير محدد | <Router's IP> | عنوان IP لجهاز التوجيه (البوابة) الذي يتم إرساله بواسطة خادم DHCP (إلزامي في حالة تمكين خادم DHCP). |
DHCP_LEASETIME | 24 | <hours> | مدة تأجير DHCP بالساعات. |
PIHOLE_DOMAIN | lan | <domain> | اسم المجال الذي أرسله خادم DHCP. |
DHCP_IPv6 | false | <"true"|"false"> | تمكين دعم IPv6 لخادم DHCP (SLAAC + RA). |
DHCP_rapid_commit | false | <"true"|"false"> | تمكين الالتزام السريع بـ DHCPv4 (تعيين العنوان السريع). |
VIRTUAL_HOST | ${HOSTNAME} | <Custom Hostname> | ما هو "المضيف الظاهري" لخادم الويب الخاص بك، الوصول إلى المسؤول من خلال اسم المضيف/IP هذا يسمح لك بإجراء تغييرات على القائمة البيضاء/القوائم السوداء بالإضافة إلى عنوان "http://pi.hole/admin/" الافتراضي |
IPv6 | true | <"true"|"false"> | للحصول على توافق unraid، قم بإزالة كافة تكوينات IPv6 من خدمات DNS/الويب عندما تكون خاطئة. |
TEMPERATUREUNIT | c | <c|k|f> | اضبط وحدة درجة الحرارة المفضلة على c : درجة مئوية، k : كلفن، أو وحدات f . |
WEBUIBOXEDLAYOUT | boxed | <boxed|traditional> | استخدم التخطيط المعبأ (مفيد عند العمل على الشاشات الكبيرة) |
QUERY_LOGGING | true | <"true"|"false"> | تمكين تسجيل الاستعلام أم لا. |
WEBTHEME | default-light | <"default-dark"|"default-darker"|"default-light"|"default-auto"|"high-contrast"|"high-contrast-dark"|"lcars"> | موضوع واجهة المستخدم للاستخدام. |
WEBPASSWORD_FILE | غير محدد | <Docker secret path> | قم بتعيين كلمة مرور المسؤول باستخدام أسرار Docker. إذا تم تعيين WEBPASSWORD ، فسيتم تجاهل WEBPASSWORD_FILE . إذا كان WEBPASSWORD فارغًا، وتم تعيين WEBPASSWORD_FILE على مسار ملف صالح قابل للقراءة، فسيتم تعيين WEBPASSWORD على محتويات WEBPASSWORD_FILE . |
عامل | تقصير | قيمة | وصف |
---|---|---|---|
INTERFACE | غير محدد | <NIC> | يعمل الإعداد الافتراضي بشكل جيد مع مثالنا الأساسي لأوامر تشغيل عامل الإرساء. إذا كنت تحاول استخدام DHCP مع وضع --net host ، فقد يتعين عليك تخصيص هذا أو DNSMASQ_LISTENING. |
DNSMASQ_LISTENING | غير محدد | <local|all|single> | عمليات الاستماع local على جميع الشبكات الفرعية المحلية، تسمح all بالاستماع على الشبكات الفرعية الأصلية للإنترنت بالإضافة إلى عمليات الاستماع المحلية single فقط على الواجهة المحددة. |
WEB_PORT | غير محدد | <PORT> | سيؤدي هذا إلى كسر وظيفة "صفحة الويب المحظورة" في Pi-hole، إلا أنه قد يساعد في الإعدادات المتقدمة مثل تلك التي تقوم بتشغيل Synology أو وسيطة --net=host docker. يشرح هذا الدليل كيفية استعادة الوظائف المحظورة لصفحة الويب باستخدام قاعدة DNAT لجهاز توجيه Linux: طريقة التثبيت البديلة Synology |
WEB_BIND_ADDR | غير محدد | <IP> | عنوان ربط Lighttpd. إذا تُرك lighttpd بدون ضبط، فسيتم ربطه بكل واجهة، باستثناء عند التشغيل في وضع شبكة المضيف حيث سيستخدم FTLCONF_LOCAL_IPV4 بدلاً من ذلك. |
SKIPGRAVITYONBOOT | غير محدد | <unset|1> | استخدم هذا الخيار لتخطي تحديث قاعدة بيانات Gravity عند تشغيل الحاوية. افتراضيًا، لم يتم تعيين متغير البيئة هذا، لذا سيتم تحديث قاعدة بيانات Gravity عند بدء تشغيل الحاوية. سيؤدي تعيين متغير البيئة هذا إلى 1 (أو أي شيء) إلى عدم تحديث قاعدة بيانات Gravity عند بدء تشغيل الحاوية. |
CORS_HOSTS | غير محدد | <FQDNs delimited by ,> | قائمة النطاقات/المجالات الفرعية المسموح بها لـ CORS. أحرف البدل غير مدعومة. على سبيل المثال: CORS_HOSTS: domain.com,home.domain.com,www.domain.com . |
CUSTOM_CACHE_SIZE | 10000 | رقم | قم بتعيين حجم ذاكرة التخزين المؤقت لـ dnsmasq. مفيد لزيادة حجم ذاكرة التخزين المؤقت الافتراضية أو لتعيينه على 0. لاحظ أنه عندما يكون DNSSEC "صحيح"، فسيتم تجاهل هذا الإعداد. |
FTL_CMD | no-daemon | no-daemon -- <dnsmasq option> | قم بتخصيص الخيارات التي يبدأ بها dnsmasq. على سبيل المثال no-daemon -- --dns-forward-max 300 لزيادة الحد الأقصى. عدد استعلامات DNS المتزامنة في إعدادات التحميل العالي. |
FTLCONF_[SETTING] | غير محدد | حسب الوثائق | قم بتخصيص pihole-FTL.conf بالإعدادات الموضحة في صفحة تكوين FTLDNS. على سبيل المثال، لتخصيص LOCAL_IPV4، تأكد من أن لديك مجموعة متغيرات البيئة FTLCONF_LOCAL_IPV4 . |
عامل | تقصير | قيمة | وصف |
---|---|---|---|
DNSMASQ_USER | غير محدد | <pihole|root> | يسمح بتغيير المستخدم الذي يعمل به FTLDNS. الافتراضي: pihole ، بعض الأنظمة مثل Synology NAS قد تطلب منك تغيير هذا إلى root (انظر #963) |
PIHOLE_UID | 999 | رقم | يتجاوز معرف مستخدم pihole الافتراضي للصورة لمطابقة معرف المستخدم المضيف هام : يجب ألا يكون المعرف قيد الاستخدام بالفعل داخل الحاوية! |
PIHOLE_GID | 999 | رقم | يتجاوز معرف مجموعة pihole الافتراضي للصورة ليطابق معرف المجموعة المضيفة هام : يجب ألا يكون المعرف قيد الاستخدام بالفعل داخل الحاوية! |
WEB_UID | 33 | رقم | يتجاوز معرف مستخدم بيانات www الافتراضي للصورة لمطابقة معرف المستخدم المضيف هام : يجب ألا يكون المعرف قيد الاستخدام بالفعل داخل الحاوية! (تأكد من أنه مختلف عن PIHOLE_UID إذا كنت تستخدمه أيضًا) |
WEB_GID | 33 | رقم | يتجاوز معرف مجموعة البيانات www الافتراضي للصورة ليطابق معرف المجموعة المضيفة هام : يجب ألا يكون المعرف قيد الاستخدام بالفعل داخل الحاوية! (تأكد من أنه مختلف عن PIHOLE_GID إذا كنت تستخدمه أيضًا) |
WEBLOGS_STDOUT | 0 | 0|1 | 0 سجلات للملفات المحددة، 1 إعادة توجيه الوصول وسجلات الأخطاء إلى stdout |
في حين أن هذه قد لا تزال تعمل، فمن المحتمل أن تتم إزالتها في إصدار مستقبلي. حيثما أمكن، تتم الإشارة إلى أسماء المتغيرات البديلة. يرجى مراجعة الجدول أعلاه لاستخدام المتغيرات البديلة
بيئة عامل الميناء فار. | وصف | تم استبداله بـ |
---|---|---|
CONDITIONAL_FORWARDING | تمكين إعادة التوجيه المشروط لـ DNS لتحليل اسم الجهاز | REV_SERVER |
CONDITIONAL_FORWARDING_IP | إذا تم تمكين إعادة التوجيه المشروط، فقم بتعيين IP لجهاز توجيه الشبكة المحلية | REV_SERVER_TARGET |
CONDITIONAL_FORWARDING_DOMAIN | إذا تم تمكين إعادة التوجيه الشرطي، فقم بتعيين مجال جهاز توجيه الشبكة المحلية | REV_SERVER_DOMAIN |
CONDITIONAL_FORWARDING_REVERSE | إذا تم تمكين إعادة التوجيه المشروط، فقم بتعيين DNS العكسي لجهاز توجيه الشبكة المحلية (على سبيل المثال 0.168.192.in-addr.arpa ) | REV_SERVER_CIDR |
DNS1 | مزود DNS الأساسي، الافتراضي هو Google DNS | PIHOLE_DNS_ |
DNS2 | مزود DNS الثانوي، الافتراضي هو google DNS، no إذا كان يجب استخدام DNS واحد فقط | PIHOLE_DNS_ |
ServerIP | قم بالتعيين على عنوان IP لشبكة LAN الخاصة بخادمك، والذي تستخدمه أوضاع حظر الويب وعنوان ربط lighttpd | FTLCONF_LOCAL_IPV4 |
ServerIPv6 | إذا كان لديك شبكة v6 مضبوطة على شبكة LAN IPv6 الخاصة بخادمك لحظر إعلانات IPv6 بالكامل | FTLCONF_LOCAL_IPV6 |
FTLCONF_REPLY_ADDR4 | قم بالتعيين على عنوان IP لشبكة الاتصال المحلية الخاصة بخادمك، والذي تستخدمه أوضاع حظر الويب وعنوان ربط lighttpd | FTLCONF_LOCAL_IPV4 |
FTLCONF_REPLY_ADDR6 | إذا كان لديك شبكة v6 مضبوطة على شبكة LAN IPv6 الخاصة بخادمك لحظر إعلانات IPv6 بالكامل | FTLCONF_LOCAL_IPV6 |
لاستخدام هذه المتغيرات env في تنسيق تشغيل عامل الإرساء، مثل: -e DNS1=1.1.1.1
فيما يلي ملخص للوسائط الأخرى لتشغيل docker-compose/docker.
حجج عامل الميناء | وصف |
---|---|
-p <port>:<port> مستحسن | المنافذ المراد كشفها (53، 80، 67)، الحد الأدنى من المنافذ المطلوبة لخدمات Pi-holes HTTP وDNS |
--restart=unless-stopped مُستَحسَن | (إعادة) تشغيل Pi-hole تلقائيًا عند التمهيد أو في حالة حدوث عطل |
-v $(pwd)/etc-pihole:/etc/pihole مُستَحسَن | تساعد وحدات التخزين الخاصة بتكوينات Pi-hole على استمرار التغييرات عبر تحديثات صورة عامل الإرساء |
-v $(pwd)/etc-dnsmasq.d:/etc/dnsmasq.d مُستَحسَن | تساعد وحدات تخزين تكوينات dnsmasq في استمرار التغييرات عبر تحديثات صور عامل الإرساء |
--net=host خياري | بديل للوسائط -p <port>:<port> (لا يمكن استخدامها في نفس الوقت مع -p) إذا لم تقم بتشغيل أي تطبيق ويب آخر. يعمل DHCP بشكل أفضل مع --net=host، وإلا يجب أن يدعم جهاز التوجيه الخاص بك إعدادات dhcp-relay. |
--cap-add=NET_ADMIN مُستَحسَن | الإمكانات المضافة بشكل شائع لـ DHCP، راجع ملاحظة حول القدرات أدناه للتعرف على الإمكانات الأخرى. |
--dns=127.0.0.1 خياري | قم بتعيين إعدادات حل الحاوية الخاصة بك على المضيف المحلي حتى يتمكن من حل أسماء مضيفات DHCP من DNSMasq الخاص بـ Pi-hole، وقد يصلح أخطاء الدقة عند إعادة تشغيل الحاوية. |
--dns=1.1.1.1 خياري | يقوم بتعيين خادم نسخ احتياطي من اختيارك في حالة مواجهة DNSMasq لمشاكل في البدء |
--env-file .env خياري | ملف لتخزين متغيرات البيئة لاستبدال عامل الإرساء -e key=value . هنا للراحة |
docker exec -it pihole_container_name pihole -a -p
- ثم أدخل كلمة المرور الخاصة بك في الموجه-p 8080:80
إذا كنت تستخدم وضع الحظر الافتراضي. إذا كنت تستخدم وضع حظر IP القديم، فلا ينبغي عليك إعادة تعيين هذا المنفذ.DEFAULT_HOST
في nginxproxy/nginx-proxy وتحتاج إلى تعيين VIRTUAL_HOST
المطابق لحاوية Pi-hole. يرجى قراءة الملف التمهيدي nginxproxy/nginx-proxy للحصول على مزيد من المعلومات إذا كانت لديك مشكلة.bridge
وضع الشبكة الافتراضي الخاص بـ Docker بعزل الحاوية عن شبكة المضيف. يعد هذا إعدادًا أكثر أمانًا، ولكنه يتطلب تعيين خيار Pi-hole DNS لسلوك الاستماع للواجهة على "الاستماع على جميع الواجهات، السماح لجميع الأصول". تشتمل الإصدارات الحديثة من Ubuntu (17.10+) وFedora (33+) على systemd-resolved
الذي تم تكوينه افتراضيًا لتنفيذ محلل DNS للتخزين المؤقت. سيؤدي هذا إلى منع pi-hole من الاستماع على المنفذ 53. يجب تعطيل محلل كعب الروتين باستخدام: sudo sed -r -i.orig 's/#?DNSStubListener=yes/DNSStubListener=no/g' /etc/systemd/resolved.conf
لن يؤدي هذا إلى تغيير إعدادات خادم الأسماء، التي تشير إلى محلل كعب الروتين وبالتالي تمنع تحليل DNS. قم بتغيير الرابط الرمزي /etc/resolv.conf
للإشارة إلى /run/systemd/resolve/resolv.conf
، والذي يتم تحديثه تلقائيًا ليتبع netplan
الخاص بالنظام: sudo sh -c 'rm /etc/resolv.conf && ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf'
بعد إجراء هذه التغييرات، يجب عليك إعادة تشغيل systemd-resolved باستخدام systemctl restart systemd-resolved
بمجرد تثبيت pi-hole، ستحتاج إلى تهيئة عملائك لاستخدامه (انظر هنا). إذا استخدمت الرابط الرمزي أعلاه، فسيستخدم مضيف عامل الإرساء إما كل ما يتم تقديمه بواسطة DHCP، أو أي إعداد ثابت قمت بتكوينه. إذا كنت تريد تعيين خوادم أسماء مضيف عامل الإرساء بشكل صريح، فيمكنك تحرير netplan (خطط) netplan الموجودة في /etc/netplan
، ثم تشغيل sudo netplan apply
. مثال على خطة الشبكة:
network :
ethernets :
ens160 :
dhcp4 : true
dhcp4-overrides :
use-dns : false
nameservers :
addresses : [127.0.0.1]
version : 2
لاحظ أنه من الممكن أيضًا تعطيل systemd-resolved
بالكامل. ومع ذلك، قد يتسبب هذا في حدوث مشكلات في تحليل الاسم في الشبكات الافتراضية الخاصة (راجع تقرير الأخطاء). كما أنه يعطل وظيفة netplan حيث يتم استخدام systemd-resolved كعارض افتراضي (انظر man netplan
). إذا اخترت تعطيل الخدمة، فستحتاج إلى تعيين خوادم الأسماء يدويًا، على سبيل المثال عن طريق إنشاء /etc/resolv.conf
جديد.
سيحتاج مستخدمو إصدارات Ubuntu الأقدم (حوالي 17.04) إلى تعطيل dnsmasq.
قام @Rikj000 بإنتاج دليل لمساعدة المستخدمين في تثبيت Pi-hole على Dokku
يتم شرح علامات عامل الإرساء الأساسية في الجدول التالي. انقر هنا لرؤية القائمة الكاملة للعلامات. راجع ملاحظات إصدار GitHub للاطلاع على الإصدار المحدد من Pi-hole Core وWeb وFTL المضمن في الإصدار.
لا تتعلق الإصدارات المستندة إلى التاريخ (بما في ذلك إصدارات "التصحيح" المتزايدة) بأي نوع من رقم الإصدار الدلالي، بل يتم استخدام التاريخ للتمييز بين الإصدار الجديد والإصدار القديم، لا أكثر. ستحتوي ملاحظات الإصدار دائمًا على التفاصيل الكاملة للتغييرات في الحاوية، بما في ذلك التغييرات في مكونات Pi-hole الأساسية
علامة | وصف |
---|---|
latest | دائما أحدث إصدار |
2022.04.0 | الإصدار على أساس التاريخ |
2022.04.1 | الإصدار الثاني في شهر معين |
dev | مشابه latest ، ولكن لفرع التطوير (يتم دفعه أحيانًا) |
*beta | الإصدارات التجريبية المبكرة للإصدارات القادمة - ها هي التنانين |
nightly | مثل dev ولكن يتم دفعهم كل ليلة ويتم سحبهم من أحدث فروع development لمكونات Pi-hole الأساسية (Pi-hole، web، FTL) |
تنطبق قدرات تخصيص Pi-hole القياسية على عامل الإرساء هذا، ولكن مع تعديلات عامل الإرساء مثل استخدام وحدات تخزين عامل الإرساء لتعيين تكوينات الملفات المخزنة للمضيف عبر الإعدادات الافتراضية للحاوية. ومع ذلك، يجب تجنب تركيب ملفات التكوين هذه للقراءة فقط. تعتبر وحدات التخزين مهمة أيضًا لاستمرار التكوين في حالة قيامك بإزالة حاوية Pi-hole والتي تعد نمطًا نموذجيًا لترقية عامل الإرساء.
لا تحاول ترقية ( pihole -up
) أو إعادة التكوين ( pihole -r
). سيتم إصدار صور جديدة للترقيات، والترقية عن طريق استبدال الحاوية القديمة بصورة حديثة تمت ترقيتها هي "طريقة عامل الإرساء". حاويات الإرساء طويلة العمر ليست طريقة الإرساء لأنها تهدف إلى أن تكون محمولة وقابلة للتكرار، فلماذا لا يتم إعادة إنشائها كثيرًا! فقط لإثبات أنك تستطيع.
docker pull pihole/pihole
docker rm -f pihole
docker run <args> pihole/pihole
( <args>
هي وحدات تخزين التشغيل المفضلة لديك وenv vars)لماذا يعتبر هذا النمط من الترقية جيدًا؟ لعدة أسباب: يبدأ الجميع من نفس الصورة الأساسية التي تم اختبارها للتأكد من نجاحها. ليس هناك حاجة إلى القلق بشأن الترقية من A إلى B، أو B إلى C، أو A إلى C عند طرح التحديثات، فهذا يقلل من التعقيد، ويسمح ببساطة "ببداية جديدة" في كل مرة مع الحفاظ على التخصيصات مع وحدات التخزين. في الأساس أنا أشجع مبادئ خادم Phoenix للحاويات الخاصة بك.
لإعادة تكوين Pi-hole، ستحتاج إما إلى استخدام متغيرات بيئة الحاوية الموجودة أو إذا لم يكن هناك متغير لما تحتاجه، فاستخدم أوامر واجهة مستخدم الويب أو واجهة سطر الأوامر (CLI).
فيما يلي بعض صفحات الويكي ذات الصلة من وثائق Pi-hole. يمكن استخدام واجهة الويب أو أدوات سطر الأوامر لتنفيذ التغييرات على pihole.
نقوم بتثبيت جميع أدوات pihole المساعدة بحيث تعمل أوامر pihole المضمنة عبر docker exec <container> <command>
كما يلي:
docker exec pihole_container_name pihole updateGravity
docker exec pihole_container_name pihole -w spclient.wg.spotify.com
docker exec pihole_container_name pihole -wild example.com
يمكن تخصيص خادم الويب وخدمة DNS داخل الحاوية إذا لزم الأمر. سيتم تحميل أي ملفات تكوين قمت بتثبيتها على /etc/dnsmasq.d/
بواسطة dnsmasq عند بدء تشغيل الحاوية أو إعادة تشغيلها أو إذا كنت بحاجة إلى تعديل تكوين Pi-hole، فهي موجودة في /etc/dnsmasq.d/01-pihole.conf
. تقوم البرامج النصية لبدء عامل الإرساء بإجراء اختبار التكوين قبل البدء، لذا ستخبرك بأي أخطاء في سجل عامل الإرساء.
وبالمثل بالنسبة لخادم الويب، يمكنك تخصيص التكوينات في /etc/lighttpd
طالما أن خدمة نظام الإرساء الخاصة بك تبدأ تلقائيًا عند التمهيد وتقوم بتشغيل الحاوية الخاصة بك باستخدام --restart=unless-stopped
فيجب أن تبدأ حاويتك دائمًا عند التمهيد وإعادة التشغيل عند حدوث أعطال. إذا كنت تفضل تشغيل حاوية الإرساء كخدمة systemd بدلاً من ذلك، فأضف الملف pihole.service إلى "/etc/systemd/system"؛ قم بتخصيص اسم الحاوية الخاصة بك وقم بإزالة --restart=unless-stopped
من تشغيل عامل الإرساء الخاص بك. ثم بعد إنشاء حاوية عامل الإرساء باستخدام أمر docker run أعلاه، يمكنك التحكم فيها باستخدام "systemctl start pihole" أو "systemctl stop pihole" (بدلاً من docker start
/ docker stop
). يمكنك أيضًا تمكينه لبدء التشغيل تلقائيًا عند التمهيد باستخدام "systemctl Enable pihole" (على عكس --restart=unless-stopped
والتأكد من بدء تشغيل خدمة الإرساء تلقائيًا عند التمهيد).
ملاحظة: بعد التشغيل الأولي، قد تحتاج إلى إيقاف حاوية عامل الإرساء يدويًا باستخدام "فتحة إيقاف عامل الإرساء" قبل أن يتمكن systemctl من بدء التحكم في الحاوية.
تتوقع DNSMasq / FTLDNS أن تتوفر الإمكانيات التالية:
CAP_NET_BIND_SERVICE
: يسمح بربط FTLDNS بمآخذ توصيل TCP/UDP أقل من 1024 (خاصة خدمة DNS على المنفذ 53)CAP_NET_RAW
: استخدام مآخذ التوصيل الأولية ومآخذ الحزمة (اللازمة لمعالجة طلبات DHCPv6 والتحقق من أن عنوان IP ليس قيد الاستخدام قبل تأجيره)CAP_NET_ADMIN
: تعديل جداول التوجيه والعمليات الأخرى المتعلقة بالشبكة (على وجه الخصوص، إدخال إدخال في جدول الجوار للرد على طلبات DHCP باستخدام حزم البث الأحادي)CAP_SYS_NICE
: تحدد FTL نفسها كعملية مهمة للحصول على المزيد من وقت المعالجة إذا كان الأخير منخفضًاCAP_CHOWN
: نحتاج إلى أن نكون قادرين على تغيير ملكية ملفات السجل وقواعد البيانات في حالة بدء FTL كمستخدم مختلف عن pihole
تمنح هذه الصورة هذه الإمكانات تلقائيًا، إذا كانت متوفرة، لعملية FTLDNS، حتى عند تشغيلها كغير جذر.
افتراضيًا، لا يتضمن عامل الإرساء إمكانية NET_ADMIN
للحاويات غير المميزة، ويوصى بإضافته بشكل صريح إلى الحاوية باستخدام --cap-add=NET_ADMIN
.
ومع ذلك، إذا لم تكن إعلانات موجه DHCP وIPv6 قيد الاستخدام، فمن الآمن تخطيها. بالنسبة لمعظم الأشخاص المصابين بجنون العظمة، يجب أن يكون من الممكن أيضًا إسقاط إمكانية NET_RAW
بشكل صريح لمنع FTLDNS من الحصول عليها تلقائيًا.
لقد لاحظنا أن الكثير من الأشخاص يستخدمون برج المراقبة لتحديث حاويات Pi-hole الخاصة بهم. لنفس السبب الذي يجعلنا لا نقدم ميزة التحديث التلقائي عند التثبيت المعدني، لا ينبغي أن يكون لديك نظام يقوم تلقائيًا بتحديث حاوية Pi-hole الخاصة بك. خصوصا غير المراقب. بقدر ما نحاول التأكد من عدم حدوث أي خطأ، أحيانًا تسوء الأمور - وتحتاج إلى تخصيص وقت لسحب إصدار الحاوية الذي ترغب في تشغيله وتحديثه يدويًا . يجب أن تتم عملية الترقية على النحو التالي:
تعد Pi-hole جزءًا لا يتجزأ من شبكتك، فلا تدعها تسقط بسبب التحديث غير المراقب في منتصف الليل.
يرجى الإبلاغ عن المشكلات في مشروع GitHub عندما تشك في وجود شيء متعلق بعامل الإرساء. من الأفضل الإجابة على الأسئلة المتعلقة بـ Pi-hole أو عامل الإرساء العام في منتديات المستخدمين الخاصة بنا.