2025年05月13日作成
広告ブロックもできるローカルDNSサーバ
1.AdGuardとは
2.AdGuardのインストールとセットアップ
3.53番ポートを利用可能にする
4.複数のAdGuard HOMEを同期させる
1.AdGuardとは
AdGuardとは広告ブロックソフトウェアの製品群です。
その中でも、AdGuard HOMEというセルフホスト型のDNSサーバがあるのでこれを導入しようと思います。
できることとしては、基本的なDNSキャッシサーバ機能以外に、カスタムレコードの追加(Aレコード、AAAAレコード、CNAMEレコードのみ)や広告ブロック、
アダルトコンテンツのブロック等があります。
AdGuard HOME紹介ページ:
https://adguard.com/ja/adguard-home/overview.html
2.AdGuardのインストールとセットアップ
下記コマンドを実行する。
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
これでインストールは完了。
次に以下のアドレスへブラウザでアクセスする。
・http://”サーバアドレス”:3000
セットアップ画面が出てきますので、指示に従って進めていく。
なお、Ubuntu等に導入する場合は途中で53番ポートが既に使われているとエラーが出てくる。
この場合は、以下の手順を実施する。
3.53番ポートを利用可能にする
Ubuntu等ではsystemd-resolvedなどのサービスがすでに53番ポートを使用しており、セットアップが完了できないことがある。
まずは、以下のコマンドで実行中のサービスを確認する。
$sudo lsof -i :53
ここでsystemd-resolved以外に、起動中のものがあれば各自で対応方法を確認の上ポートを変えるかサービスを止める必要があります。
今回は、systemd-resolvedを止める方法を書いておきます。
以下のコマンドを実行して設定をおいておくディレクトリを作成する。
$sudo mkdir /etc/systemd/resolved.conf.d
以下のコマンドで設定ファイルを作成する。
$sudo vi /etc/systemd/resolved.conf.d/adguardhome.conf
#以下の内容を設定ファイルに書き込む
[Resolve]
DNS=127.0.0.1
DNSStubListener=no
既存の設定ファイルを作成した設定ファイルのリンクに置き換え、systemd-resolvedを再起動する。
$sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
$sudo systemctl reload-or-restart systemd-resolved
4.複数のAdGuard HOMEを同期させる
複数拠点にAdGuard HOMEを導入する等で、複数のサーバを建てることがある。
この時の設定内容やカスタムレコードの同期をするツールを紹介する。
・adguardhome-sync:
https://github.com/bakito/adguardhome-sync/releases/
今回は執筆時点での最新版であるv0.7.5を導入するものとして導入手順を紹介する。
まずは以下のコマンドを実行する。
$ mkdir adguardhome-sync && cd adguardhome-sync
$ wget https://github.com/bakito/adguardhome-sync/releases/download/v0.7.5/adguardhome-sync_0.7.5_linux_386.tar.gz
$ tar zxvf adguardhome-sync_0.7.5_linux_386.tar.gz
続いて環境変数を設定する。
$vi ~/.bash_profile
#以下の内容を書き込む
export LOG_LEVEL=info
export ORIGIN_URL=http://同期元のアドレス
export ORIGIN_USERNAME=同期元で設定したユーザー名
export ORIGIN_PASSWORD=同期元で設定したパスワード
export REPLICA1_URL=http://同期先のアドレス
export REPLICA1_USERNAME=同期先で設定したユーザー名
export REPLICA1_PASSWORD=同期先で設定したパスワード
設定後に設定ファイルを読み込む。
$source ~/bash_profile
初回の動機を実行する。
$~/adguardhome-sync/adguardhome-sync run
Cronに登録して定期実行するようにする。
$crontab -e
#以下の内容を追記
export LOG_LEVEL=info
export ORIGIN_URL=http://同期元のアドレス
export ORIGIN_USERNAME=同期元で設定したユーザー名
export ORIGIN_PASSWORD=同期元で設定したパスワード
export REPLICA1_URL=http://同期先のアドレス
export REPLICA1_USERNAME=同期先で設定したユーザー名
export REPLICA1_PASSWORD=同期先で設定したパスワード
30 12 * * * /home/user/adguardhome-sync run
<前へ戻る
《参考ページ》
・ritaiz - UbuntuにAdGuard Homeをインストールするhttps://www.ritaiz.com/articles/steps-to-install-adguard-home-on-ubuntu
・Qiita - AdGuard Homeで広告ブロック&お手軽内部ネットワーク用DNSを作ろう(ついでに冗長化)
https://qiita.com/katori_m/items/02aef27024b848b160a4