
WireHole ist eine Kombination aus WireGuard, Pi-hole und Unbound in einem docker-compose-Projekt, das es Benutzern ermöglicht, schnell und einfach einen persönlich verwalteten Full- oder Split-Tunnel-WireGuard-VPN mit Werbeblockierungsfunktionen dank Pi-hole sowie DNS-Caching, zusätzlichen Datenschutzoptionen und Upstream-Anbietern über Unbound zu erstellen.
WireHole ist ein docker-compose-Projekt, das WireGuard, PiHole und Unbound kombiniert, um ein Voll- oder Split-Tunnel-VPN zu erstellen, das einfach bereitzustellen und zu verwalten ist. Dieses Setup ermöglicht ein VPN mit Werbeblockierung über PiHole und verbesserter DNS-Privatsphäre und Caching durch Unbound.
👤 Devin Stokes
Beiträge, Probleme und Funktionswünsche sind willkommen! Schauen Sie gerne auf der Seite mit den Issues vorbei.
Gib einen ⭐, wenn dir dieses Projekt geholfen hat!
Das Image unterstützt mehrere Architekturen wie x86-64, arm64 und armhf. Das Image linuxserver/wireguard wählt automatisch das richtige Image für Ihre Architektur aus.
Die von diesem Image unterstützten Architekturen sind:
| Architektur | Tag |
|---|---|
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
Um WireHole zu verwenden, klonen Sie das Repository und starten Sie die Container:
#!/bin/bash
# Clone the WireHole repository from GitHub
git clone https://github.com/IAmStoxe/wirehole.git
# Change directory to the cloned repository
cd wirehole
# Update the .env file with your configuration
cp .env.example .env
nano .env # Or use any text editor of your choice to edit the .env file
# Replace the public IP placeholder in the docker-compose.yml
sed -i "s/REPLACE_ME_WITH_YOUR_PUBLIC_IP/$(curl -s ifconfig.me)/g" docker-compose.yml
# Start the Docker containers
docker compose up
Denken Sie daran, sichere Passwörter für WGUI_SESSION_SECRET, WGUI_PASSWORD und WEBPASSWORD in Ihrer .env-Datei festzulegen.
Die .env-Datei enthält eine Reihe von Umgebungsvariablen, die für die Konfiguration der WireHole-Dienste in den Docker-Containern wesentlich sind. Hier ist eine detaillierte Erklärung jeder Variable:
TIMEZONE: Legt die Zeitzone für alle Dienste fest. Sie ist wichtig für Protokollierung und zeitbasierte Vorgänge. Beispiel: America/Los_Angeles.PUID und PGID: Diese stellen sicher, dass die Dienste die richtigen Berechtigungen haben, um auf Dateien des Host-Systems zuzugreifen und diese zu ändern. Sie sollten mit der Benutzer-ID und Gruppen-ID des Host-Benutzers übereinstimmen.UNBOUND_IPV4_ADDRESS: Die statische IP-Adresse, die Unbound zugewiesen wird, um sicherzustellen, dass es von Pi-hole erreichbar ist.PIHOLE_IPV4_ADDRESS: Die statische IP-Adresse, die Pi-hole zugewiesen wird, damit es DNS-Anfragen für das Netzwerk bedienen kann.WIREGUARD_SERVER_PORT: Der Port, auf dem der WireGuard-Server auf Verbindungen lauscht.WIREGUARD_PEER_DNS: Der DNS-Server, den WireGuard-Clients verwenden werden, der normalerweise auf die Adresse von Pi-hole gesetzt ist.WIREGUARD_PEERS: Gibt die Anzahl der Peer/Client-Konfigurationen an, die für WireGuard generiert werden sollen.WGUI_SESSION_SECRET: Ein geheimer Schlüssel, der zum Verschlüsseln von Sitzungsdaten für WireGuard-UI verwendet wird. Dieser sollte auf einen sicheren, zufälligen Wert gesetzt werden.WGUI_USERNAME und WGUI_PASSWORD: Anmeldedaten für den Zugriff auf die WireGuard-UI-Oberfläche.WGUI_MANAGE_START: Wenn auf true gesetzt, verwaltet WireGuard-UI das Starten des WireGuard-Dienstes.WGUI_MANAGE_RESTART: Wenn auf true gesetzt, verwaltet WireGuard-UI das Neustarten des WireGuard-Dienstes.WEBPASSWORD: Das Passwort für den Zugriff auf die Pi-hole-Weboberfläche. Es sollte auf einen sicheren Wert gesetzt werden, um unbefugten Zugriff zu verhindern.PIHOLE_DNS: Die IP-Adresse des Unbound-Servers, die von Pi-hole zur Auflösung von DNS-Anfragen verwendet wird.Denken Sie daran, alle Standard- oder Platzhalterwerte durch sichere, eindeutige Werte zu ersetzen, bevor Sie Ihre Dienste bereitstellen.
Konfigurieren Sie für ein Split-Tunnel-VPN die AllowedIps Ihres WireGuard-Clients auf 10.2.0.0/24, wodurch nur der Web-Panel- und DNS-Verkehr über das VPN geleitet wird.
Verwalten Sie Ihr WireGuard-VPN über die WireGuard-UI unter:
http://{YOUR_SERVER_IP}:5000
Melden Sie sich mit dem WGUI_USERNAME und WGUI_PASSWORD an, die Sie in Ihrer .env-Datei festgelegt haben.
Verbinden Sie sich mit WireGuard und greifen Sie auf das Pi-hole-Admin-Panel unter http://10.2.0.100/admin zu. Das Anmeldepasswort ist das, das als WEBPASSWORD in Ihrer .env-Datei festgelegt wurde.
Konfigurieren Sie DDNS, indem Sie WG_HOST in Ihrer .env-Datei auf Ihre DDNS-URL setzen.
wireguard:
environment:
- WG_HOST=my.ddns.net
Erklären Sie hier alle Umgebungsvariablen aus Ihrer .env-Datei. (Siehe vorherigen Abschnitt, in dem wir eine Tabelle mit Erklärungen für jede Variable bereitgestellt haben.)
Besprechen Sie alle zusätzlichen Einstellungen wie Docker-Secrets, Umask-Einstellungen, Benutzer-/Gruppenkennungen, Hinzufügen von Clients, Ändern von DNS-Anbietern und Netzwerküberlegungen. Stellen Sie sicher, dass alle Anweisungen aktualisiert werden, um dem aktuellen Setup zu entsprechen.
Geben Sie Informationen darüber, wie Sie auf die Shell zugreifen, während der Container läuft, Logs anzeigen, Container aktualisieren und häufig gestellte Fragen behandeln. Stellen Sie sicher, dass alle Befehle und Schritte aktualisiert sind, um die aktuellen Versionen und Praktiken widerzuspiegeln.
Dank an LinuxServer.io für die Wartung des Wireguard-Images und andere Beiträge zum Projekt.