
WireHole, WireGuard, Pi-hole और Unbound का एक संयोजन है जो एक docker-compose प्रोजेक्ट में है, जिसका उद्देश्य उपयोगकर्ताओं को Pi-hole की बदौलत विज्ञापन अवरोधन क्षमताओं के साथ, और Unbound के माध्यम से DNS कैशिंग, अतिरिक्त गोपनीयता विकल्पों और अपस्ट्रीम प्रदाताओं के साथ एक व्यक्तिगत रूप से प्रबंधित पूर्ण या स्प्लिट-टनल WireGuard VPN को जल्दी और आसानी से बनाने में सक्षम बनाना है।
WireHole एक docker-compose प्रोजेक्ट है जो WireGuard, PiHole और Unbound को जोड़ता है ताकि एक पूर्ण या स्प्लिट-टनल VPN बनाया जा सके जिसे तैनात करना और प्रबंधित करना आसान हो। यह सेटअप PiHole के माध्यम से विज्ञापन-अवरोधन और Unbound के माध्यम से बेहतर DNS गोपनीयता और कैशिंग के साथ एक VPN की अनुमति देता है।
👤 Devin Stokes
योगदान, समस्याएँ और फीचर अनुरोधों का स्वागत है! issues page देखने के लिए स्वतंत्र महसूस करें।
यदि इस प्रोजेक्ट ने आपकी मदद की है तो ⭐ दें!
यह इमेज कई आर्किटेक्चर जैसे x86-64, arm64, और armhf का समर्थन करती है। linuxserver/wireguard इमेज आपके आर्किटेक्चर के लिए स्वचालित रूप से सही इमेज चुनती है।
इस इमेज द्वारा समर्थित आर्किटेक्चर हैं:
| Architecture | Tag |
|---|---|
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
WireHole का उपयोग शुरू करने के लिए, रिपॉजिटरी को क्लोन करें और कंटेनर शुरू करें:
#!/bin/bash
# GitHub से WireHole रिपॉजिटरी क्लोन करें
git clone https://github.com/IAmStoxe/wirehole.git
# क्लोन की गई रिपॉजिटरी में डायरेक्टरी बदलें
cd wirehole
# अपनी कॉन्फ़िगरेशन के साथ .env फ़ाइल अपडेट करें
cp .env.example .env
nano .env # .env फ़ाइल संपादित करने के लिए अपनी पसंद का कोई भी टेक्स्ट एडिटर उपयोग करें
# docker-compose.yml में सार्वजनिक IP प्लेसहोल्डर को बदलें
sed -i "s/REPLACE_ME_WITH_YOUR_PUBLIC_IP/$(curl -s ifconfig.me)/g" docker-compose.yml
# Docker कंटेनर शुरू करें
docker compose up
अपनी .env फ़ाइल में WGUI_SESSION_SECRET, WGUI_PASSWORD, और WEBPASSWORD के लिए सुरक्षित पासवर्ड सेट करना याद रखें।
.env फ़ाइल में कई पर्यावरण चर होते हैं जो कि Docker कंटेनरों के भीतर WireHole सेवाओं को कॉन्फ़िगर करने के लिए आवश्यक हैं। यहाँ प्रत्येक चर का विस्तृत विवरण दिया गया है:
TIMEZONE: सभी सेवाओं के लिए समय क्षेत्र सेट करता है। लॉगिंग और समय-आधारित संचालन के लिए महत्वपूर्ण है। उदाहरण: America/Los_Angeles.PUID और PGID: ये सुनिश्चित करते हैं कि सेवाओं के पास होस्ट सिस्टम पर फ़ाइलों तक पहुँचने और संशोधित करने के लिए सही अनुमतियाँ हों। ये होस्ट उपयोगकर्ता की उपयोगकर्ता ID और समूह ID से मेल खाने चाहिए।UNBOUND_IPV4_ADDRESS: Unbound को निर्दिष्ट स्थिर IP पता, यह सुनिश्चित करता है कि यह Pi-hole के लिए पहुँच योग्य है।PIHOLE_IPV4_ADDRESS: Pi-hole को निर्दिष्ट स्थिर IP पता, जो नेटवर्क के लिए 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: Pi-hole द्वारा DNS प्रश्नों को हल करने के लिए उपयोग किए जाने वाले Unbound सर्वर का IP पता।अपनी सेवाओं को तैनात करने से पहले किसी भी डिफ़ॉल्ट या प्लेसहोल्डर मान को सुरक्षित, अद्वितीय मानों से बदलना याद रखें।
स्प्लिट-टनल VPN के लिए, अपने WireGuard क्लाइंट AllowedIps को 10.2.0.0/24 पर कॉन्फ़िगर करें, जो केवल वेब पैनल और DNS ट्रैफ़िक को VPN के माध्यम से रूट करेगा।
WireGuard-UI के माध्यम से अपने WireGuard VPN को प्रबंधित करें:
http://{YOUR_SERVER_IP}:5000
अपनी .env फ़ाइल में सेट किए गए WGUI_USERNAME और WGUI_PASSWORD से लॉग इन करें।
WireGuard से कनेक्ट करें और http://10.2.0.100/admin पर Pi-hole एडमिन पैनल तक पहुँचें। लॉगिन पासवर्ड वही है जो आपकी .env फ़ाइल में WEBPASSWORD के रूप में सेट किया गया है।
अपनी .env फ़ाइल में WG_HOST को अपने DDNS URL पर सेट करके DDNS कॉन्फ़िगर करें।
wireguard:
environment:
- WG_HOST=my.ddns.net
अपनी .env फ़ाइल के सभी पर्यावरण चरों को यहाँ समझाएँ। (पिछले अनुभाग को देखें जहाँ हमने प्रत्येक चर के लिए स्पष्टीकरण की एक तालिका प्रदान की है।)
यहाँ किसी भी अतिरिक्त सेटिंग्स जैसे Docker secrets, umask सेटिंग्स, उपयोगकर्ता/समूह पहचानकर्ता, क्लाइंट जोड़ना, DNS प्रदाताओं को संशोधित करना, और नेटवर्किंग विचारों पर चर्चा करें। सुनिश्चित करें कि किसी भी निर्देश को वर्तमान सेटअप से मेल खाने के लिए अपडेट किया गया है।
जानकारी प्रदान करें कि कंटेनर चलने के दौरान शेल तक कैसे पहुँचें, लॉग कैसे देखें, कंटेनर कैसे अपडेट करें, और अक्सर पूछे जाने वाले प्रश्नों को कैसे संभालें। सुनिश्चित करें कि सभी कमांड और चरण वर्तमान संस्करणों और प्रथाओं को दर्शाने के लिए अपडेट किए गए हैं।
LinuxServer.io को उनके Wireguard इमेज के रखरखाव और प्रोजेक्ट में अन्य योगदानों के लिए श्रेय।