
WireHole è una combinazione di WireGuard, Pi-hole e Unbound in un progetto docker-compose con l'intento di permettere agli utenti di creare rapidamente e facilmente una VPN WireGuard a tunnel completo o suddiviso gestita personalmente, con funzionalità di blocco degli annunci grazie a Pi-hole, nonché caching DNS, opzioni aggiuntive per la privacy e provider upstream tramite Unbound.
WireHole è un progetto docker-compose che combina WireGuard, PiHole e Unbound per creare una VPN a tunnel completo o suddiviso, facile da implementare e gestire. Questa configurazione permette di ottenere una VPN con blocco pubblicitario tramite PiHole e una maggiore privacy DNS e caching attraverso Unbound.
👤 Devin Stokes
Contributi, segnalazioni di problemi e richieste di funzionalità sono benvenuti! Sentiti libero di consultare la pagina delle issues.
Dai una ⭐ se questo progetto ti ha aiutato!
L'immagine supporta molteplici architetture come x86-64, arm64 e armhf. L'immagine linuxserver/wireguard seleziona automaticamente l'immagine corretta per la tua architettura.
Le architetture supportate da questa immagine sono:
| Architecture | Tag |
|---|---|
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
Per iniziare a utilizzare WireHole, clona il repository e avvia i 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
Ricorda di impostare password sicure per WGUI_SESSION_SECRET, WGUI_PASSWORD e WEBPASSWORD nel tuo file .env.
Il file .env contiene una serie di variabili d'ambiente essenziali per configurare i servizi WireHole all'interno dei container Docker. Ecco una spiegazione dettagliata di ogni variabile:
TIMEZONE: Imposta il fuso orario per tutti i servizi. È importante per il logging e le operazioni basate sul tempo. Esempio: America/Los_Angeles.PUID e PGID: Questi assicurano che i servizi abbiano i permessi corretti per accedere e modificare i file sul sistema host. Dovrebbero corrispondere all'ID utente e all'ID gruppo dell'utente host.UNBOUND_IPV4_ADDRESS: L'indirizzo IP statico assegnato a Unbound, garantendo che sia raggiungibile da Pi-hole.PIHOLE_IPV4_ADDRESS: L'indirizzo IP statico assegnato a Pi-hole, permettendogli di servire le richieste DNS per la rete.WIREGUARD_SERVER_PORT: La porta su cui il server WireGuard ascolterà le connessioni.WIREGUARD_PEER_DNS: Il server DNS che i client WireGuard utilizzeranno, tipicamente impostato sull'indirizzo di Pi-hole.WIREGUARD_PEERS: Specifica il numero di configurazioni peer/client da generare per WireGuard.WGUI_SESSION_SECRET: Una chiave segreta utilizzata per crittografare i dati di sessione per WireGuard-UI. Dovrebbe essere impostata su un valore sicuro e casuale.WGUI_USERNAME e WGUI_PASSWORD: Credenziali per accedere all'interfaccia WireGuard-UI.WGUI_MANAGE_START: Quando impostato su true, WireGuard-UI gestirà l'avvio del servizio WireGuard.WGUI_MANAGE_RESTART: Quando impostato su true, WireGuard-UI gestirà il riavvio del servizio WireGuard.WEBPASSWORD: La password per accedere all'interfaccia web di Pi-hole. Dovrebbe essere impostata su un valore sicuro per prevenire accessi non autorizzati.PIHOLE_DNS: L'indirizzo IP del server Unbound utilizzato da Pi-hole per risolvere le query DNS.Ricorda di sostituire qualsiasi valore predefinito o segnaposto con valori sicuri e univoci prima di distribuire i tuoi servizi.
Per una VPN a tunnel suddiviso, configura il tuo client WireGuard AllowedIps su 10.2.0.0/24, che instraderà solo il traffico del pannello web e DNS attraverso la VPN.
Gestisci la tua VPN WireGuard tramite WireGuard-UI all'indirizzo:
http://{YOUR_SERVER_IP}:5000
Accedi con il WGUI_USERNAME e la WGUI_PASSWORD che hai impostato nel tuo file .env.
Connettiti a WireGuard e accedi al pannello di amministrazione di Pi-hole all'indirizzo http://10.2.0.100/admin. La password di accesso è quella impostata come WEBPASSWORD nel tuo file .env.
Configura il DDNS impostando WG_HOST nel tuo file .env con il tuo URL DDNS.
wireguard:
environment:
- WG_HOST=my.ddns.net
Spiega qui tutte le variabili d'ambiente del tuo file .env. (Fai riferimento alla sezione precedente dove abbiamo fornito una tabella di spiegazioni per ogni variabile.)
Discuti eventuali impostazioni aggiuntive come i segreti Docker, le impostazioni umask, gli identificatori utente/gruppo, l'aggiunta di client, la modifica dei provider DNS e le considerazioni di rete. Assicurati di aggiornare le istruzioni per corrispondere alla configurazione attuale.
Fornisci informazioni su come accedere alla shell mentre il container è in esecuzione, visualizzare i log, aggiornare i container e gestire le domande frequenti. Assicurati che tutti i comandi e i passaggi siano aggiornati per riflettere le versioni e le pratiche correnti.
Un ringraziamento a LinuxServer.io per la manutenzione dell'immagine Wireguard e altri contributi al progetto.