Dockerを使ってAdGuardHomeをインストールする ついでにTailscale上で広告ブロックできるようにする
たくさん失敗した記録です。
失敗
DockerHubのAdGuardHomeのページの案内に従って試みる。
sudo docker pull adguard/adguardhome
sudo docker run --name adguardhome\
--restart unless-stopped\
-v /home/<username>/adguardhome/work:/opt/adguardhome/work\
-v /home/<username>/adguardhome/conf:/opt/adguardhome/conf\
-p 53:53/tcp -p 53:53/udp\
-p 67:67/udp -p 68:68/udp\
-p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp\
-p 853:853/tcp\
-p 784:784/udp -p 853:853/udp -p 8853:8853/udp\
-p 5443:5443/tcp -p 5443:5443/udp\
-d adguard/adguardhome -u <uid>
次のエラーメッセージが出て失敗
Error starting userland proxy: listen tcp4 0.0.0.0:443: bind: address already in use
Portainerでデプロイしようとしてもdeployment error - request failed with status code 500が出てしまう。(これもポートがらみのエラーコードらしい)
Port53の場合のエラーの回避方法はFAQにあった。
Port443を何が使っているか確かめる。
sudo lsof -i :443
Tailscaleが使っていた。多分VaultwardenのHTTPS化あたりが影響しているのだろう。
443はDNS-over-HTTPSサーバーとして使う場合は追加しろとDockerHubのページには書いてあるので、443を無視してもう一度docker runする。
53番でもエラーが出たので上記FAQに沿って対処する。
sudo mkdir -p /etc/systemd/resolved.conf.d
sudo nano /etc/systemd/resolved.conf.d/adguardhome.conf
adguardhome.confの内容は以下の通り
[Resolve]
DNS=127.0.0.1
DNSStubListener=no
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
lsofで53番が使われていないことを確認して終了。
デプロイ
-u <uid>を指定するとなぜか管理画面に繋がらない。
sudo docker run --name adguardhome\
--restart unless-stopped\
-v /home/<username>/adguardhome/work:/opt/adguardhome/work\
-v /home/<username>/adguardhome/conf:/opt/adguardhome/conf\
-p 53:53/tcp -p 53:53/udp\
-p 67:67/udp -p 68:68/udp\
-p 80:80/tcp -p 3000:3000/tcp\
-d adguard/adguardhome
Docker networkがbridgeになっているのでhostにしたい。docker run --network hostを試すがうまくいかない
Portainerでデプロイする際にhostネットワークを指定したらうまくいった。
Dockerは何度失敗しても気にしなくていいのがよい。
Tailscaleで広告ブロックできるようにする
AdminConsoleからDNSページに行き、NameserversのAdd nameserverでCustomを選択、AdGuardHomeをインストールしたサーバーのTailnet上のIPアドレスを指定。Override local DNSをオンにする。
上流DNSやフィルタの設定
上流DNSはAdGuardの公開している既知のDNSプロバイダー一覧から選ぶとよい。
DNSフィルタについてはFirebogのリストがある。
日本語関係のフィルタリストについてはなんJ AdGuard部が一番詳しくまとまっている。
DNSのセキュリティについてはCloudflareのページで確認ができる。
参考にした記事
この記事が気に入ったらサポートをしてみませんか?