
WireHole هو مزيج من WireGuard و Pi-hole و Unbound في مشروع docker-compose بهدف تمكين المستخدمين من إنشاء VPN WireGuard مُدار شخصيًا بسرعة وسهولة، سواء بنفق كامل أو مجزأ، مع إمكانيات منع الإعلانات بفضل Pi-hole، وتخزين DNS المؤقت، وخيارات خصوصية إضافية، وموفري الوصلة الصاعدة عبر Unbound.
WireHole هو مشروع docker-compose يجمع بين WireGuard وPiHole وUnbound لإنشاء VPN كامل أو مقسم سهل النشر والإدارة. يتيح هذا الإعداد VPN مع حظر الإعلانات عبر PiHole وتحسين خصوصية DNS والتخزين المؤقت عبر Unbound.
👤 ديفين ستوكس
المساهمات، المشكلات، وطلبات الميزات مرحب بها! لا تتردد في زيارة صفحة المشكلات.
امنح ⭐ إذا كان هذا المشروع قد ساعدك!
تدعم الصورة بنى متعددة مثل x86-64 وarm64 وarmhf. تختار صورة linuxserver/wireguard تلقائيًا الصورة المناسبة لبنيتك.
البنى المدعومة بهذه الصورة هي:
| البنية | الوسم |
|---|---|
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
لبدء استخدام WireHole، استنسخ المستودع وابدأ الحاويات:
#!/bin/bash
# استنساخ مستودع WireHole من جيتهاب
git clone https://github.com/IAmStoxe/wirehole.git
# الانتقال إلى المستودع المُستنسخ
cd wirehole
# تحديث ملف .env بإعداداتك
cp .env.example .env
nano .env # أو استخدم أي محرر نصوص تختاره لتحرير ملف .env
# استبدال النائب الخاص بالـ IP العام في ملف docker-compose.yml
sed -i "s/REPLACE_ME_WITH_YOUR_PUBLIC_IP/$(curl -s ifconfig.me)/g" docker-compose.yml
# بدء حاويات دوكر
docker compose up
تذكر تعيين كلمات مرور آمنة لـ WGUI_SESSION_SECRET وWGUI_PASSWORD وWEBPASSWORD في ملف .env الخاص بك.
يحتوي ملف .env على سلسلة من المتغيرات البيئية الضرورية لتكوين خدمات WireHole داخل حاويات دوكر. إليك شرح مفصل لكل متغير:
TIMEZONE: يحدد المنطقة الزمنية لجميع الخدمات. مهم للتسجيل والعمليات الزمنية. مثال: America/Los_Angeles.PUID وPGID: يضمنان أن الخدمات لديها الصلاحيات الصحيحة للوصول إلى الملفات وتعديلها على النظام المضيف. يجب أن تتطابق مع معرف المستخدم ومعرف المجموعة للمستخدم المضيف.UNBOUND_IPV4_ADDRESS: عنوان IP الثابت المخصص لـ Unbound، مما يضمن إمكانية الوصول إليه من Pi-hole.PIHOLE_IPV4_ADDRESS: عنوان IP الثابت المخصص لـ Pi-hole، مما يسمح له بخدمة طلبات DNS للشبكة.WIREGUARD_SERVER_PORT: المنفذ الذي سيستمع عليه خادم WireGuard للاتصالات.WIREGUARD_PEER_DNS: خادم DNS الذي سيستخدمه عملاء WireGuard، والذي يُضبط عادةً على عنوان Pi-hole.WIREGUARD_PEERS: يحدد عدد تكوينات الأقران/العملاء التي سيتم إنشاؤها لـ WireGuard.WGUI_SESSION_SECRET: مفتاح سري يستخدم لتشفير بيانات الجلسة لواجهة WireGuard-UI. يجب تعيينه إلى قيمة آمنة وعشوائية.WGUI_USERNAME وWGUI_PASSWORD: بيانات الدخول للوصول إلى واجهة WireGuard-UI.WGUI_MANAGE_START: عند تعيينه إلى true، ستقوم واجهة WireGuard-UI بإدارة بدء خدمة WireGuard.WGUI_MANAGE_RESTART: عند تعيينه إلى true، ستقوم واجهة WireGuard-UI بإدارة إعادة تشغيل خدمة WireGuard.WEBPASSWORD: كلمة المرور للوصول إلى واجهة الويب الخاصة بـ Pi-hole. يجب تعيينها إلى قيمة آمنة لمنع الوصول غير المصرح به.PIHOLE_DNS: عنوان IP لخادم Unbound المستخدم من قبل Pi-hole لحل استعلامات DNS.تذكر استبدال أي قيم افتراضية أو نائبة بقيم آمنة وفريدة قبل نشر خدماتك.
لنفق VPN مقسم، قم بتكوين AllowedIps في عميل WireGuard الخاص بك إلى 10.2.0.0/24، والذي سيقوم بتوجيه حركة مرور لوحة الويب وDNS فقط عبر VPN.
قم بإدارة VPN الخاصة بك عبر WireGuard-UI على:
http://{YOUR_SERVER_IP}:5000
سجل الدخول باستخدام WGUI_USERNAME وWGUI_PASSWORD التي قمت بتعيينها في ملف .env الخاص بك.
اتصل بـ WireGuard وادخل إلى لوحة إدارة Pi-hole على http://10.2.0.100/admin. كلمة مرور الدخول هي تلك التي تم تعيينها كـ WEBPASSWORD في ملف .env الخاص بك.
قم بتكوين DDNS عن طريق تعيين WG_HOST في ملف .env الخاص بك إلى رابط DDNS الخاص بك.
wireguard:
environment:
- WG_HOST=my.ddns.net
اشرح جميع المتغيرات البيئية من ملف .env الخاص بك هنا. (راجع القسم السابق حيث قدمنا جدولًا لشرح كل متغير.)
ناقش أي إعدادات إضافية مثل أسرار دوكر، إعدادات umask، معرفات المستخدم/المجموعة، إضافة عملاء، تعديل موفري DNS، واعتبارات الشبكة. تأكد من تحديث أي تعليمات لتتوافق مع الإعداد الحالي.
قدم معلومات حول كيفية الوصول إلى القشرة أثناء تشغيل الحاوية، عرض السجلات، تحديث الحاويات، ومعالجة الأسئلة الشائعة. تأكد من تحديث جميع الأوامر والخطوات لتعكس الإصدارات والممارسات الحالية.
شكر خاص لـ LinuxServer.io على صيانتهم لصورة Wireguard والمساهمات الأخرى في المشروع.