
WireHoleは、WireGuard、Pi-hole、Unboundをdocker-composeプロジェクトで組み合わせたもので、ユーザーが個人管理のフルトンネルまたはスプリットトンネルのWireGuard VPNを迅速かつ簡単に作成できるようにすることを目的としています。Pi-holeによる広告ブロック機能、UnboundによるDNSキャッシュ、追加のプライバシーオプション、アップストリームプロバイダーを備えています。
WireHole は、WireGuard、PiHole、Unbound を組み合わせた docker-compose プロジェクトで、簡単にデプロイおよび管理できるフルまたはスプリットトンネル VPN を作成します。このセットアップにより、PiHole を介した広告ブロックと、Unbound による強化された DNS プライバシーおよびキャッシュを備えた VPN が可能になります。
👤 Devin Stokes
貢献、問題、機能リクエストを歓迎します! issues page をご確認ください。
このプロジェクトが役立ったら ⭐ をお願いします!
このイメージは x86-64、arm64、armhf などの複数のアーキテクチャをサポートしています。linuxserver/wireguard イメージは自動的にアーキテクチャに適したイメージを選択します。
このイメージでサポートされているアーキテクチャは次のとおりです:
| アーキテクチャ | タグ |
|---|---|
| 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 に感謝します。