OpenWRTでAdguard Homeを利用② (Adguardhome-sync)

この記事は約8分で読めます。

Adguard Homeのインストール①(on OpenWRT)

OpenWRT上でのAdgurardのインストールは簡単。初期設定などについては公式HPを確認しておきます。

[OpenWrt Wiki] AdGuard Home

Luciで、System→Softwareからインストールします。以下の画面です。

インストール後に設定を行います。

Network→DHCP and DNSの「Device and Port」タブにてdnsmasqのportを変更します。(54)

「Resolv and Hosts Files」タブでは、/tmp/resolv.conf.d/resolv.conf.auto fileを読まないように無効にします。

続いて、ブラウザで、AdguardHomeサーバのport3000番で初期設定を行います。

http://[IPアドレス]:3000/

※初期設定は、一度だけ実行できます。もし、再度やり直したい場合は、設定完了後に作成されている「/etc/Adguardhome.yaml」を削除すると再度初期設定することができます。

以下のように設定します。

手順待ち受けインターフェイスポート
2/5管理用ウェブインターフェイス192.168.10.118080
2/5DNSサーバ192.168.10.1153
入力内容
3/5user管理者ユーザー名
3/5passwordパスワード
3/5confirm passwordパスワードの確認

上記を入力すれば、後は確認画面なので確認して設定を完了します。初期設定は一度しかできないので、終了後の編集は、/etc/Adguardhome.yamlを編集して行います。

Adguard Homeのインストール② (on Proxmox)

adguardhome-syncについては、同期元のAdguardが必要なので、Proxmox上にAdguardHomeを構築しておきます。

AlpineLinuxで構築するので、事前にそのisoイメージをダウンロードしておきます。それをProxmox上にアップロードします。(事前にダウンロードせず、URLからダウンロードでも可)

下記はちょっとバージョンが古いですが実際は、最新版を使用します。

以下の通り仮想マシンを作成します。

上記のとおりにproxmox上にAlpine Linuxの環境をインストールし、初期設定を行います。

setup-alpine コマンドでインストーラを開始します。

# setup-alpine

インストーラーに従い、以下を設定。

1キーボードレイアウトjp / jpキーボードレイアウトとロケール
2ホスト名alp-adgh
3ネットワークeht0にIP、Netmask、Gateway始めはDHCPでも可
(/etc/network/interfacesに設定されるので後で編集可)
4DNSサーバ192.168.10.7任意のDNSサーバ
5rootパスワード任意のパスワード
6タイムゾーンJapan / Tokyo
7HTTP/FTPプロキシnone
8ミラーf一番早いのを検索して設定してくれる
9ユーザー設定user一般ユーザの作成
10NTPでてこないかも
11SSHopensshsshで接続できるようにするため
12ディスクの使用sda利用可能なディスクが表示されているはず
13ディスクモードsys

※ここで、固定IPにしていたことを忘れていて、デフォルトゲートウェイのIP(メインルータのIP)が変わった際にハマったので一応メモを残しておきます。

Adguard Homeのインストール

Adguard Homeをインストールします。公式からインストールスクリプトが公開されているのでそれを利用します。curlを事前にインストールしておきます。

# apk update
# apk add --upgrade curl
# curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

インストール後はブラウザで上記のOpenWRT上のAdguardHomeと同様にport3000を指定して初期設定を行います。

http://[IPアドレス]:3000/

adguardhome-syncのインストール

次に、adguardhome-syncをインストールします。

アーキテクチャの確認
alp-adgh:~# uname -m
x86_64

x86_64だったため、以下のURLからlinux版amd64をダウンロードします。

Releases · bakito/adguardhome-sync
🛡️ Synchronize AdGuard Home config to replicas. Contribute to bakito/adguardhome-sync development by creating an account...

以下で解凍します。

alp-adgh:~# tar -zxvf adguardhome-sync_0.8.1_windows_amd64.tar.gz

いつも忘れるので、オプションもメモしておきます

オプション意味
zgzip形式を指定
x圧縮ファイルを展開
v処理中のファイルを出力する
f圧縮ファイルの名前

同期の実行

以下、githubに記載の通り、環境変数をexportして、一度だけ実行(run once)して同期できるか確認します。(クッキーは使用していません)

export LOG_LEVEL=info
export ORIGIN_URL=https://192.168.10.7:3000export ORIGIN_USERNAME=xxxx
export ORIGIN_PASSWORD=password
# export ORIGIN_COOKIE=Origin-Cookie-Name=CCCOOOKKKIIIEEE

export REPLICA1_URL=http://192.168.10.11export REPLICA1_USERNAME=username
export REPLICA1_PASSWORD=password
# export REPLICA_COOKIE=Replica-Cookie-Name=CCCOOOKKKIIIEE
# run once
adguardhome-sync run

エラーが発生したら対処します。(エラーメッセージをみながら原因を探ります。)

crontabの設定

今は、同期を手動で実行しているので、まだ設定していませんが、クーロンを回して自動化もできます。

マニュアル的には以下なので、実際に設定して確認できれば補足していきます。

# run as daemon
adguardhome-sync run --cron "0 */2 * * *"