
WireHole은 WireGuard, Pi-hole, Unbound를 docker-compose 프로젝트로 결합한 도구로, 사용자가 Pi-hole의 광고 차단 기능과 Unbound의 DNS 캐싱, 추가 개인정보 보호 옵션, 업스트림 제공자를 통해 광고 차단이 가능한 개인 관리형 전체 또는 분할 터널 WireGuard VPN을 빠르고 쉽게 생성할 수 있도록 설계되었습니다.
WireHole은 WireGuard, PiHole 및 Unbound를 결합하여 배포 및 관리가 쉬운 전체 또는 분할 터널 VPN을 생성하는 docker-compose 프로젝트입니다. 이 설정은 PiHole을 통한 광고 차단 및 Unbound를 통한 향상된 DNS 개인정보 보호 및 캐싱 기능을 갖춘 VPN을 제공합니다.
👤 Devin Stokes
기여, 이슈 및 기능 요청은 언제나 환영합니다! 이슈 페이지를 확인해보세요.
이 프로젝트가 도움이 되셨다면 ⭐을 눌러주세요!
이 이미지는 x86-64, arm64 및 armhf와 같은 여러 아키텍처를 지원합니다. linuxserver/wireguard 이미지는 사용자 아키텍처에 맞는 이미지를 자동으로 선택합니다.
이 이미지가 지원하는 아키텍처는 다음과 같습니다:
| Architecture | Tag |
|---|---|
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
WireHole을 사용하려면 리포지토리를 클론하고 컨테이너를 시작하세요:
#!/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
.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: WireGuard 클라이언트가 사용할 DNS 서버로, 일반적으로 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 시크릿, umask 설정, 사용자/그룹 식별자, 클라이언트 추가, DNS 공급자 수정, 네트워킹 고려사항과 같은 추가 설정에 대해 논의합니다. 현재 설정과 일치하도록 모든 지침을 업데이트하세요.
컨테이너가 실행되는 동안 셸에 액세스하는 방법, 로그 보기, 컨테이너 업데이트, 자주 묻는 질문 처리 방법에 대한 정보를 제공합니다. 모든 명령과 단계가 현재 버전 및 관행을 반영하도록 업데이트되었는지 확인하세요.
Wireguard 이미지 유지 관리 및 프로젝트에 대한 기타 기여에 대해 LinuxServer.io에 감사드립니다.