
ネットワーク全体で広告とトラッカーをブロックするDNSサーバー
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="doc/adguard_home_darkmode.svg">
<img alt="AdGuard Home" src="https://raw.githubusercontent.com/adguardteam/adguardhome/HEAD/doc/adguard_home_lightmode.svg" width="300px">
</picture>
</p>
<h3 align="center">あなたとあなたのデバイスのためのプライバシー保護センター</h3>
<p align="center">
無料でオープンソースな、ネットワーク全体で広告とトラッカーをブロックする強力なDNSサーバーです。
</p>
<p align="center">
<a href="https://adguard.com/">AdGuard.com</a> |
<a href="https://github.com/AdguardTeam/AdGuardHome/wiki">Wiki</a> |
<a href="https://reddit.com/r/Adguard">Reddit</a> |
<a href="https://twitter.com/AdGuard">Twitter</a> |
<a href="https://t.me/adguard_en">Telegram</a>
<br/><br/>
<a href="https://codecov.io/github/AdguardTeam/AdGuardHome?branch=master">
<img src="https://img.shields.io/codecov/c/github/AdguardTeam/AdGuardHome/master.svg" alt="Code Coverage"/>
</a>
<a href="https://goreportcard.com/report/AdguardTeam/AdGuardHome">
<img src="https://goreportcard.com/badge/github.com/AdguardTeam/AdGuardHome" alt="Go Report Card"/>
</a>
<a href="https://hub.docker.com/r/adguard/adguardhome">
<img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/adguard/adguardhome.svg?maxAge=604800"/>
</a>
<br/>
<a href="https://github.com/AdguardTeam/AdGuardHome/releases">
<img src="https://img.shields.io/github/release/AdguardTeam/AdGuardHome/all.svg" alt="Latest release"/>
</a>
<a href="https://snapcraft.io/adguard-home">
<img alt="adguard-home" src="https://snapcraft.io/adguard-home/badge.svg"/>
</a>
</p>
<br/>
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/50912/75b58bd07af3852625f8a4c6dfbf07c7f281e120d337633eeb4c2e811c1ed179/82936e9a5e4a5b2b650ca95d6f19299c2e9342465d4e6d5be3928c763f4766ef-display-v1.webp" width="800"/>
</p>
<hr/>
AdGuard Homeは、広告とトラッキングをブロックするネットワーク全体向けのソフトウェアです。セットアップ後は、家庭内のすべてのデバイスをカバーし、そのためにクライアント側のソフトウェアは一切必要ありません。
これは、トラッキングドメインを“ブラックホール”にリダイレクトするDNSサーバーとして動作し、デバイスがそれらのサーバーに接続するのを防ぎます。このソフトウェアは、当社のパブリック[AdGuard DNS]サーバーで使用しているソフトウェアに基づいており、両者は多くのコードを共有しています。
[AdGuard DNS]: https://adguard-dns.io/
- [はじめに](#getting-started)
- [自動インストール (Linux/Unix/MacOS/FreeBSD/OpenBSD)](#automated-install-linux-and-mac)
- [代替方法](#alternative-methods)
- [ガイド](#guides)
- [API](#api)
- [AdGuard Homeと他のソリューションの比較](#comparison)
- [パブリックAdGuard DNSサーバーとはどう違うのか?](#comparison-adguard-dns)
- [AdGuard HomeはPi-Holeとどう違うのか](#comparison-pi-hole)
- [AdGuard Homeは従来の広告ブロッカーとどう違うのか](#comparison-adblock)
- [既知の制限](#comparison-limitations)
- [ソースからビルドする方法](#how-to-build)
- [前提条件](#prerequisites)
- [ビルド](#building)
- [貢献](#contributing)
- [不安定版をテストする](#test-unstable-versions)
- [問題の報告](#reporting-issues)
- [翻訳の支援](#translate)
- [その他](#help-other)
- [AdGuard Homeを使用するプロジェクト](#uses)
- [謝辞](#acknowledgments)
- [プライバシー](#privacy)
## <a href="#getting-started" id="getting-started" name="getting-started">はじめに</a>
### <a href="#automated-install-linux-and-mac" id="automated-install-linux-and-mac" name="automated-install-linux-and-mac">自動インストール (Linux/Unix/MacOS/FreeBSD/OpenBSD)</a>
`curl`を使ってインストールするには、次のコマンドを実行します:```sh
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
```
`wget` でインストールするには、次のコマンドを実行します:```sh
wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
```
`fetch` でインストールするには、次のコマンドを実行してください:```sh
fetch -o - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
```
このスクリプトは以下のオプションも受け付けます:
- `-c <channel>` 指定したチャンネルを使用;
- `-r` AdGuard Home を再インストール;
- `-u` AdGuard Home をアンインストール;
- `-v` 詳細な出力。
`-r` と `-u` オプションは相互に排他的です。
### <a href="#alternative-methods" id="alternative-methods" name="alternative-methods">代替方法</a>
#### <a href="#manual-installation" id="manual-installation" name="manual-installation">手動インストール</a>
AdGuard Home を手動でインストールする方法と、デバイスがそれを使用するように設定する方法については、当社の Wiki の **[Getting Started][wiki-start]** 記事をお読みください。
#### <a href="#docker" id="docker" name="docker">Docker</a>
公式の Docker イメージは [Docker Hub] で利用できます。
#### <a href="#snap-store" id="snap-store" name="snap-store">Snap Store</a>
**Linux** をお使いの場合、AdGuard Home を安全かつ簡単にインストールする方法があります: [Snap Store] から入手してください。
[Docker Hub]: https://hub.docker.com/r/adguard/adguardhome
[Snap Store]: https://snapcraft.io/adguard-home
[wiki-start]: https://adguard-dns.io/kb/adguard-home/getting-started/
### <a href="#guides" id="guides" name="guides">ガイド</a>
当社の [Wiki][wiki] を参照してください。
[wiki]: https://github.com/AdguardTeam/AdGuardHome/wiki
### <a href="#api" id="api" name="api">API</a>
AdGuard Home と統合したい場合は、[REST API][openapi] を使用できます。または、この [Python クライアント][pyclient] を使用することもできます。これは [AdGuard Home Assistant インテグレーション][assistant-integration] の構築に使用できます。
[assistant-integration]: https://www.home-assistant.io/integrations/adguard/
[openapi]: https://github.com/AdguardTeam/AdGuardHome/tree/master/openapi
[pyclient]: https://pypi.org/project/adguardhome/
## <a href="#comparison" id="comparison" name="comparison">AdGuard Home と他のソリューションの比較</a>
### <a href="#comparison-adguard-dns" id="comparison-adguard-dns" name="comparison-adguard-dns">これはパブリック AdGuard DNS サーバーとどう違うのですか?</a>
自分専用の AdGuard Home サーバーを実行すると、パブリック DNS サーバーを使用するよりもはるかに多くのことができます。まったく異なるレベルです。ご自身で確かめてください:
- サーバーがブロックおよび許可する内容を正確に選択します。
- ネットワークアクティビティを監視します。
- 独自のカスタムフィルタリングルールを追加します。
- **最も重要なのは、自分専用のサーバーであり、制御できるのはあなただけであるということです。**
### <a href="#comparison-pi-hole" id="comparison-pi-hole" name="comparison-pi-hole">AdGuard Home は Pi-Hole とどう違うのか</a>
現時点では、AdGuard Home には Pi-Hole と共通する点が多くあります。どちらもいわゆる “DNS sinkholing” 方式を使用して広告とトラッカーをブロックし、ブロックする内容をカスタマイズできます。
> [!NOTE]
> 私たちはここで止まるつもりはありません。DNS シンクホーリングは悪い出発点ではありませんが、これはほんの始まりにすぎません。
AdGuard Home は、追加のソフトウェアをインストールして設定する必要なく、多くの機能をすぐに利用できます。カジュアルなユーザーでも最小限の労力でセットアップできるほどシンプルであることを目指しています。
> [!NOTE]
> リストされている機能の一部は、追加のソフトウェアをインストールしたり、SSH ターミナルを手動で使用して Pi-Hole を構成するユーティリティの 1 つを再設定したりすることで Pi-Hole に追加できます。ただし、当社の意見では、これは Pi-Hole の機能として正当にカウントすることはできません。
| 機能 | AdGuard Home | Pi-Hole |
|-------------------------------------------------------------------------|-------------------|-----------------------------------------------------------|
| 広告とトラッカーのブロック | ✅ | ✅ |
| ブロックリストのカスタマイズ | ✅ | ✅ |
| 内蔵 DHCP サーバー | ✅ | ✅ |
| 管理インターフェース用 HTTPS | ✅ | ある程度可能ですが、lighttpd を手動で設定する必要があります |
| 暗号化された DNS アップストリームサーバー (DNS-over-HTTPS、DNS-over-TLS、DNSCrypt) | ✅ | ❌ (追加のソフトウェアが必要) |
| クロスプラットフォーム | ✅ | ❌ (ネイティブではなく、Docker 経由のみ) |
| DNS-over-HTTPS または DNS-over-TLS サーバーとして実行 | ✅ | ❌ (追加のソフトウェアが必要) |
| フィッシングおよびマルウェアドメインのブロック | ✅ | ❌ (非デフォルトのブロックリストが必要) |
| ペアレンタルコントロール (アダルトドメインのブロック) | ✅ | ❌ (非デフォルトのブロックリストが必要) |
| 検索エンジンでセーフサーチを強制 | ✅ | ❌ |
| クライアント (デバイス) ごとの設定 | ✅ | ✅ |
| アクセス設定 (AGH DNS を使用できるユーザーを選択) | ✅ | ❌ |
| [root 権限なしでの実行][wiki-noroot] | ✅ | ❌ |
[wiki-noroot]: https://adguard-dns.io/kb/adguard-home/getting-started/
### <a href="#comparison-adblock" id="comparison-adblock" name="comparison-adblock">AdGuard Home は従来の広告ブロッカーとどう違うのか</a>
場合によります。
DNS シンクホーリングは広告の大部分をブロックできますが、従来の広告ブロッカーが持つ柔軟性とパワーには欠けています。この方法の違いについての良い印象を得るには、AdGuard for Android (従来の広告ブロッカー) と hosts レベルの広告ブロッカー (その機能は DNS ベースのブロッカーとほぼ同じ) を比較した[この記事][blog-adaway]を読んでください。このレベルの保護は一部のユーザーにとって十分です。
さらに、DNS ベースのブロッカーを使用すると、従来の広告ブロッカーをインストールできない SmartTV、スマートスピーカー、その他の種類の IoT デバイスなどで、広告、トラッキング、アナリティクスリクエストをブロックするのに役立ちます。
### <a href="#comparison-limitations" id="comparison-limitations" name="comparison-limitations">既知の制限</a>
DNS レベルのブロッカーではブロックできないものの例をいくつか示します:
- YouTube、Twitch の広告;
- Facebook、Twitter、Instagram のスポンサー投稿。
基本的に、コンテンツとドメインを共有する広告は DNS レベルのブロッカーではブロックできません。
将来的にこれを処理できる可能性はあるのでしょうか? DNS だけでは決して十分ではありません。唯一の選択肢は、スタンドアロンの AdGuard アプリケーションで行っているようなコンテンツブロッキングプロキシを使用することです。私たちは将来的にこの機能サポートを AdGuard Home に[導入する予定][issue-1228]です。残念ながら、この場合でも、それだけでは不十分なケースや、かなり複雑な設定が必要になるケースが依然として存在します。
[blog-adaway]: https://adguard.com/blog/adguard-vs-adaway-dns66.html
[issue-1228]: https://github.com/AdguardTeam/AdGuardHome/issues/1228
## <a href="#how-to-build" id="how-to-build" name="how-to-build">ソースからビルドする方法</a>
### <a href="#prerequisites" id="prerequisites" name="prerequisites">前提条件</a>
開発環境を準備するには `make init` を実行します。
AdGuard Home をビルドするには以下が必要です:
- [Go](https://golang.org/dl/) v1.25 以降;
- [Node.js](https://nodejs.org/en/download/) v24.10.0 以降;
- [npm](https://www.npmjs.com/) v10.8 以降;
### <a href="#building" id="building" name="building">ビルド</a>
ターミナルを開いて次のコマンドを実行します:```sh
git clone https://github.com/AdguardTeam/AdGuardHome
cd AdGuardHome
make
```
> [!WARNING]
> 現時点では非標準の `-j` フラグはサポートされていないため、`make -j 4` でビルドしたり、`MAKEFLAGS` に例えば `-j 4` を含めたりすると、ビルドが失敗する可能性があります。もし `MAKEFLAGS` がそのように設定されていて、変更したくない場合は、`make -j 1` を実行することで上書きできます。
[`Makefile`][src-makefile] を確認して、他のコマンドについて学んでください。
#### <a href="#building-cross" id="building-cross" name="building-cross">異なるプラットフォーム向けのビルド</a>
AdGuard Home は、Go がサポートしている任意の OS/ARCH 向けにビルドできます。これを行うには、`make` を実行する際に `GOOS` と `GOARCH` 環境変数をマクロとして指定します。
例:```sh
env GOOS='linux' GOARCH='arm64' make
```
または:```sh
make GOOS='linux' GOARCH='arm64'
```
#### <a href="#preparing-releases" id="preparing-releases" name="preparing-releases">リリースの準備</a>
リリースビルドを準備するには [`snapcraft`] が必要です。インストールしたら、次のコマンドを実行してください:```sh
make build-release CHANNEL='...' VERSION='...'
```
[`build-release` ターゲットのドキュメント][targ-release] を参照してください。
#### <a href="#docker-image" id="docker-image" name="docker-image">Docker イメージ</a>
`make build-docker` を実行すると、Docker イメージをローカルでビルドできます(DockerHub に公開しているものと同じものです)。公式イメージのビルドには [Docker Buildx][buildx] を使用していることに注意してください。
これらのビルドを使用する前に、準備が必要な場合があります:
- (Linux のみ) Qemu をインストール: ```sh
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes --credential yes
```
- ビルダーを準備します: ```sh
docker buildx create --name buildx-builder --driver docker-container --use
```
See the [`build-docker` ターゲットのドキュメント][targ-docker]を参照してください。
#### <a href="#debugging-the-frontend" id="debugging-the-frontend" name="debugging-the-frontend">フロントエンドのデバッグ</a>
本番バージョンを毎回再コンパイルせずにフロントエンドをデバッグする必要がある場合、例えばフォーム上でラベルがどのように見えるかを確認する場合などは、開発環境でフロントエンドのビルドを実行できます。
1. 別のターミナルで、次を実行します: ```sh
( cd ./client/ && env NODE_ENV='development' npm run watch )
```
2. `--local-frontend` フラグを指定して `AdGuardHome` バイナリを実行します。これにより、AdGuard Home は組み込みのフロントエンドファイルを無視し、`./build/` ディレクトリ内のファイルを使用するようになります。
3. これで、`./client/` ディレクトリに加えた変更は再コンパイルされ、Web UI で利用できるようになります。実際に再コンパイルされたバージョンが反映されるよう、ブラウザのキャッシュを無効にしてください。
[`snapcraft`]: https://snapcraft.io/
[buildx]: https://docs.docker.com/buildx/working-with-buildx/
[src-makefile]: https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/Makefile
[targ-docker]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-dockersh-build-a-multi-architecture-docker-image
[targ-release]: https://github.com/AdguardTeam/AdGuardHome/tree/master/scripts#build-dockersh-build-a-multi-architecture-docker-image
#### <a href="#e2e-frontend-tests" id="e2e-frontend-tests" name="e2e-frontend-tests">エンドツーエンド(E2E)フロントエンドテスト</a>
AdGuard Home は E2E テストに [Playwright](https://playwright.dev) を使用しています。テストは `tests/e2e` にあります。
**テストの実行:**
- `npm run test:e2e` – すべてのテストを実行(ヘッドレス)。
- `npm run test:e2e:interactive` – テストを対話的に実行。
- `npm run test:e2e:debug` – デバッグモードでテストを実行。
- `npm run test:e2e:codegen` – 新しいテストコードを生成。
**セットアップ:**
1. `npm install` を実行して依存関係をインストールします。
2. `npx playwright install` を実行して必要なブラウザをセットアップします。
> **警告:** Playwright はテスト用に独自のブラウザバイナリをダウンロードしてインストールします。これはお使いのシステムにインストールされているブラウザとは異なる場合があります。
## <a href="#contributing" id="contributing" name="contributing">コントリビューション</a>
このリポジトリをフォークして変更を加え、[プルリクエストを送信][pr] していただいて構いません。ただし、[コードガイドライン][guide] に従ってください。
なお、プログラムの UI 部分とバックエンド部分の両方に同時にコントリビュートしていただく必要はありません。理想的には、最初にバックエンド部分(設定、API、機能自体)を実装します。UI 部分は後日、別のプルリクエストで別の人が実装することができます。
[guide]: https://github.com/AdguardTeam/CodeGuidelines/
[pr]: https://github.com/AdguardTeam/AdGuardHome/pulls
### <a href="#test-unstable-versions" id="test-unstable-versions" name="test-unstable-versions">不安定版のテスト</a>
次の 2 つのアップデートチャンネルを使用できます:
- `beta`: AdGuard Home のベータ版。比較的安定したバージョンで、通常は 2 週間ごとまたはそれ以上の頻度でリリースされます。
- `edge`: 開発ブランチからの最新版の AdGuard Home。新しいアップデートが毎日このチャンネルにプッシュされます。
不安定版をインストールするには、次の 3 つのオプションがあります:
1. [Snap Store]: `beta` チャンネルと `edge` チャンネルを探します。
2. [Docker Hub]: `beta` タグと `edge` タグを探します。
3. スタンドアロンビルド。自動インストールスクリプトを使用するか、[Wiki][wiki-platf] で利用可能なビルドを探します。
ベータ版をインストールするスクリプト: ```sh
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c beta
```
エッジ版をインストールするスクリプト: ```sh
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -c edge
```
[wiki-platf]: https://github.com/AdguardTeam/AdGuardHome/wiki/Platforms
### <a href="#reporting-issues" id="reporting-issues" name="reporting-issues">問題を報告する</a>
問題が発生した場合や提案がある場合は、[このページ][iss] にアクセスし、“New issue” ボタンをクリックしてください。issue フォームの指示に注意深く従い、最初に重複を検索することを忘れないでください。
[iss]: https://github.com/AdguardTeam/AdGuardHome/issues
### <a href="#translate" id="translate" name="translate">翻訳を手伝う</a>
AdGuard Home の翻訳に協力したい場合は、[ナレッジベース][kb-trans]で AdGuard 製品の翻訳について詳しく学んでください。[CrowdIn の AdGuardHome プロジェクト][crowdin]に貢献することもできます。
[crowdin]: https://crowdin.com/project/adguard-applications/en#/adguard-home
[kb-trans]: https://kb.adguard.com/en/general/adguard-translations
### <a href="#help-other" id="help-other" name="help-other">その他</a>
もう一つの貢献方法は、[issue を探す][iss-help]ときに `help wanted` とマークされているかを確認し、その issue が対応可能かどうかを尋ね、バグを修正したり機能を実装したりする PR を送信することです。
[iss-help]: https://github.com/AdguardTeam/AdGuardHome/issues?q=is:issue+is:open+label:%22help+wanted%22
## <a href="#uses" id="uses" name="uses">AdGuard Home を使用しているプロジェクト</a>
これらのプロジェクトは AdGuard とは関係なく、サードパーティの開発者やファンによって作られていることに注意してください。
- [AdGuard Home Remote](https://apps.apple.com/app/apple-store/id1543143740): [Joost](https://rocketscience-it.nl/) による iOS アプリ。
- [Python ライブラリ](https://github.com/frenck/python-adguardhome)([@frenck](https://github.com/frenck) による)。
- [Home Assistant アドオン](https://github.com/hassio-addons/addon-adguard-home)([@frenck](https://github.com/frenck) による)。
- [OpenWrt LUCI アプリ](https://github.com/kongfl888/luci-app-adguardhome)([@kongfl888](https://github.com/kongfl888) による。元は [@rufengsuixing](https://github.com/rufengsuixing) による)。
- [AdGuardHome sync](https://github.com/bakito/adguardhome-sync)([@bakito](https://github.com/bakito) による)。
- [AdGuard Home インスタンス向けのターミナルベースのリアルタイムトラフィック監視と統計](https://github.com/Lissy93/AdGuardian-Term)([@Lissy93](https://github.com/Lissy93) による)
- [GLInet ルーター上の AdGuard Home](https://forum.gl-inet.com/t/adguardhome-on-gl-routers/10664)([Gl-Inet](https://gl-inet.com/) による)。
- [Cloudron アプリ](https://git.cloudron.io/cloudron/adguard-home-app)([@gramakri](https://github.com/gramakri) による)。
- [Asuswrt-Merlin-AdGuardHome-Installer](https://github.com/jumpsmm7/Asuswrt-Merlin-AdGuardHome-Installer)([@jumpsmm7](https://github.com/jumpsmm7) による。別名 [@SomeWhereOverTheRainBow](https://www.snbforums.com/members/somewhereovertherainbow.64179/))。
- [Node.js ライブラリ](https://github.com/Andrea055/AdguardHomeAPI)([@Andrea055](https://github.com/Andrea055/) による)。
- [ブラウザ拡張機能](https://github.com/satheshshiva/Adguard-Home-Browser-Ext)([@satheshshiva](https://github.com/satheshshiva/) による)。
- [AdGuard Home 用 Zabbix テンプレート](https://github.com/diasdmhub/AdGuard_Home_Zabbix_Template)([@diasdmhub](https://github.com/diasdmhub) による)。
- [Chocolatey パッケージ](https://community.chocolatey.org/packages/adguardhome/)([niks255](https://community.chocolatey.org/profiles/niks255) による)。
- [ZimaOS App Store への掲載](https://www.zimaspace.com/zimaos/app-store/app/org.icewhale.adguardhome)([CasaOS Team](https://casaos.zimaspace.com/) による)。
## <a href="#acknowledgments" id="acknowledgments" name="acknowledgments">謝辞</a>
このソフトウェアは、以下なしでは実現し得ませんでした:
- [Go](https://golang.org/dl/) とそのライブラリ:
- [gcache](https://github.com/bluele/gcache)
- [miekg's dns](https://github.com/miekg/dns)
- [go-yaml](https://github.com/go-yaml/yaml)
- [service](https://godoc.org/github.com/kardianos/service)
- [dnsproxy](https://github.com/AdguardTeam/dnsproxy)
- [urlfilter](https://github.com/AdguardTeam/urlfilter)
- [Node.js](https://nodejs.org/) とそのライブラリ:
- [React.js](https://reactjs.org)
- [Tabler](https://github.com/tabler/tabler)
- その他多数の Node.js パッケージ。
- [whotracks.me データ](https://github.com/cliqz-oss/whotracks.me)
[CoreDNS] が以前ここで言及されていたのを見たことがあるかもしれませんが、AdGuard Home ではもう使用していません。
使用中のすべての Node.js パッケージの完全なリストについては、[`client/package.json`][src-packagejson] ファイルをご覧ください。
[CoreDNS]: https://coredns.io
[src-packagejson]: https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/client/package.json
## <a href="#privacy" id="privacy" name="privacy">プライバシー</a>
私たちの主な考え方は、データを管理するのはあなた自身であるべきだということです。したがって、AdGuard Home が使用統計を収集せず、設定しない限りウェブサービスを使用しないのは当然のことです。AdGuard Home が*理論上送信し得る*すべての情報を含む[完全なプライバシーポリシー][privacy]もご覧ください。
[privacy]: https://adguard.com/en/privacy/home.html