
WireHole es una combinación de WireGuard, Pi-hole y Unbound en un proyecto docker-compose con el objetivo de permitir a los usuarios crear rápida y fácilmente una VPN WireGuard de túnel completo o dividido gestionada personalmente, con capacidades de bloqueo de anuncios gracias a Pi-hole, y almacenamiento en caché de DNS, opciones adicionales de privacidad y proveedores ascendentes mediante Unbound.
WireHole es un proyecto de docker-compose que combina WireGuard, PiHole y Unbound para crear una VPN de túnel completo o dividido que es fácil de implementar y gestionar. Esta configuración permite una VPN con bloqueo de anuncios a través de PiHole y privacidad DNS mejorada y almacenamiento en caché mediante Unbound.
👤 Devin Stokes
¡Las contribuciones, problemas y solicitudes de funciones son bienvenidas! No dudes en consultar la página de issues.
¡Da una ⭐ si este proyecto te ayudó!
La imagen soporta múltiples arquitecturas como x86-64, y . La imagen selecciona automáticamente la imagen correcta para tu arquitectura.
arm64armhflinuxserver/wireguardLas arquitecturas soportadas por esta imagen son:
| Arquitectura | Etiqueta |
|---|---|
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
Para empezar a usar WireHole, clona el repositorio e inicia los contenedores:
#!/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
Recuerda establecer contraseñas seguras para WGUI_SESSION_SECRET, WGUI_PASSWORD y WEBPASSWORD en tu archivo .env.
El archivo .env contiene una serie de variables de entorno esenciales para configurar los servicios de WireHole dentro de los contenedores Docker. Aquí hay una explicación detallada de cada variable:
TIMEZONE: Establece la zona horaria para todos los servicios. Es importante para el registro y las operaciones basadas en el tiempo. Ejemplo: America/Los_Angeles.PUID y PGID: Estos aseguran que los servicios tengan los permisos correctos para acceder y modificar archivos en el sistema anfitrión. Deben coincidir con el ID de usuario y el ID de grupo del usuario anfitrión.UNBOUND_IPV4_ADDRESS: La dirección IP estática asignada a Unbound, asegurando que sea accesible por Pi-hole.PIHOLE_IPV4_ADDRESS: La dirección IP estática asignada a Pi-hole, permitiéndole servir solicitudes DNS para la red.WIREGUARD_SERVER_PORT: El puerto en el que el servidor WireGuard escuchará las conexiones.WIREGUARD_PEER_DNS: El servidor DNS que usarán los clientes WireGuard, que normalmente se establece en la dirección de Pi-hole.WIREGUARD_PEERS: Especifica el número de configuraciones de pares/clientes a generar para WireGuard.WGUI_SESSION_SECRET: Una clave secreta utilizada para cifrar los datos de sesión de WireGuard-UI. Debe establecerse en un valor seguro y aleatorio.WGUI_USERNAME y WGUI_PASSWORD: Credenciales para acceder a la interfaz de WireGuard-UI.WGUI_MANAGE_START: Cuando se establece en true, WireGuard-UI gestionará el inicio del servicio WireGuard.WGUI_MANAGE_RESTART: Cuando se establece en true, WireGuard-UI gestionará el reinicio del servicio WireGuard.WEBPASSWORD: La contraseña para acceder a la interfaz web de Pi-hole. Debe establecerse en un valor seguro para evitar accesos no autorizados.PIHOLE_DNS: La dirección IP del servidor Unbound utilizado por Pi-hole para resolver consultas DNS.Recuerda reemplazar cualquier valor predeterminado o de marcador de posición con valores seguros y únicos antes de implementar tus servicios.
Para una VPN de túnel dividido, configura AllowedIps de tu cliente WireGuard a 10.2.0.0/24, lo que enrutará solo el panel web y el tráfico DNS a través de la VPN.
Gestiona tu VPN WireGuard a través de WireGuard-UI en:
http://{YOUR_SERVER_IP}:5000
Inicia sesión con el WGUI_USERNAME y WGUI_PASSWORD que hayas configurado en tu archivo .env.
Conéctate a WireGuard y accede al panel de administración de Pi-hole en http://10.2.0.100/admin. La contraseña de inicio de sesión es la que se configuró como WEBPASSWORD en tu archivo .env.
Configura DDNS estableciendo WG_HOST en tu archivo .env con tu URL de DDNS.
wireguard:
environment:
- WG_HOST=my.ddns.net
Explica aquí todas las variables de entorno de tu archivo .env. (Consulta la sección anterior donde proporcionamos una tabla de explicaciones para cada variable).
Discute cualquier configuración adicional como secretos de Docker, ajustes de umask, identificadores de usuario/grupo, añadir clientes, modificar proveedores DNS y consideraciones de red. Asegúrate de actualizar cualquier instrucción para que coincida con la configuración actual.
Proporciona información sobre cómo acceder al shell mientras el contenedor está en ejecución, ver registros, actualizar contenedores y manejar preguntas frecuentes. Asegúrate de que todos los comandos y pasos estén actualizados para reflejar las versiones y prácticas actuales.
Agradecimientos a LinuxServer.io por su mantenimiento de la imagen Wireguard y otras contribuciones al proyecto.