自宅サーバにAdGuard Homeをインストールした

興味本位というか軽いノリで、自宅サーバのUbuntuに広告ブロック用DNSサーバのAdGuard Homeをインストールしたときのメモ。

GitHub - AdguardTeam/AdGuardHome: Network-wide ads & trackers blocking DNS server
Network-wideads&trackersblockingDNSserver.ContributetoAdguardTeam/AdGuardHomedevelopmentbycreatinganaccountonGitHub.

インストールにあたって、類似のPi-holeと少し迷ったけど、デフォルトで日本語化されてる点でAdGuardを選んだ。

インストール

更新の手軽さを考えてsnapでインストール。

sudo snap install adguard-home

ブラウザを起動して「http://localhost:3000」にアクセス。

始めましょう。

管理用ウェブインタフェースのポート(80)が既存サービスと競合してたので、3000に変更。DNSサーバのポート(53)はそのまま。

ただ、このとき「bind: address already in use」というDNSポート競合(うちの場合はsystemd-resolvedとの競合だった)のエラーメッセージが表示されたので、リンク先の手順に従って以下のコマンドを実行する。

sudo mkdir -p /etc/systemd/resolved.conf.d
sudo nano /etc/systemd/resolved.conf.d/adguardhome.conf
sudo mv /etc/resolv.conf /etc/resolv.conf.backup
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl reload-or-restart systemd-resolved

adguardhome.confの編集内容は以下を参照。

[Resolve]
DNS=127.0.0.1
DNSStubListener=no

これでエラーが解消されるはずなので、次に進む。

ユーザ名とパスワードを入力して次へ。

機器やOSの種類別のDNS設定手順が紹介されてるので、好みの設定を行う。うちはWi-FiルータのプライマリDNSに自宅サーバ(DNSサーバ)のIPアドレスを設定した。あと、自宅サーバ自体のDNSは127.0.0.1に設定。

終わった。あっけない。

カスタマイズ

基本デフォルトの設定で運用してるけど、上流DNSサーバは以下のアドレスを指定している。ただ、深い意味はなく、海外サイトに貼ってあった参考例をそのまま使ってるので、後日ちゃんとした設定に見直すかも。

https://dns10.quad9.net/dns-query
tls://dns.google
tls://1.1.1.1
https://doh.opendns.com/dns-query

運用してみて

ダッシュボードで一日のDNSブロックされたクエリ数などを確認できる。上図の例だと総クエリのうち3割以上がブロックされてるらしい。思いのほか多いなという印象。

実際にブラウザでサイトを閲覧すると広告がかなり減少してるのを実感できる。ただ正直表示速度は体感変わらないのと、あくまで適用範囲は自宅のみなので、趣味でやるにはアリかなという感じ。

余談

うちのネットワーク構成は、auひかりのホームルータにWi-Fiルータを繋いでるのだけど、Wi-Fiルータをルータモードにすると接続が不安定になることがあったので、ブリッジ接続モード(要は中継するだけ)で運用してた。

ただ、ブリッジ接続だとDNSサーバの設定ができず、かといってホームルータのほうはauひかりの用意したDNSサーバで固定化されてて変更できず、せっかくDNSサーバ構築したのに設定できないなあと色々解決策をネットで調べること数分、「もしかしてルータモードが不安定だったのはホームルータ側のDHCPが有効だからでは?」と思い当たった。

で、改めてホームルータのDHCPを無効にした後に、Wi-Fiルータをルータモードに変更したら、何も問題なく接続でき、無事に今回構築したDNSサーバも設定できた。めでたしめでたし。

タイトルとURLをコピーしました