QNAP 231PにAdGuard Homeを導入した
環境
- QNAP 231P
要約
- arm-x41用のqpkgをダウンロード
- インストール
- ナビに従って初期設定
- AdGuard Homeを停止
- QNAPにssh接続
- 各種ファイルを変更
- dnsmasqを再起動
- AdGuard Homeを起動
実作業
やったことはQNAPのフォーラム(英語)を
忠実に実行しただけ。なんだけどトップの通りではほぼ使えない。
なぜならデフォルトでAdGuard Home(以下、AGH)はポート16553への問い合わせに応答するが、私の知る限りDNSサーバのポートまで設定できるマシンはないから。一般的にDNSサーバはポート53で稼働している。このためマシンにDNSサーバのIPアドレスを指定すると、マシンは設定したIPアドレスのポート53に問い合わせる。ところがQNAPにインストールしたAGHはポート53以外で稼働しているため、マシンがQNAPのポート53に問い合わせても応答がないわけだ。
このポート問題に対応するためにフォーラムに従ってQNAPの設定ファイルを弄った。ページ中程、2018年10月21日の回答によるとQNAPでデフォルトでポート53を使用しているdnsmasqを他のポートに移動、その後AGHをポート53で稼働させる。
arm-x41用のqpkgをダウンロード
このページを参考にダウンロードすべきqpkgのバージョンを確認する。QNAP 231PであればQNAP arm x41に該当する。バージョンを確認できたらQNAP CLUBからqpkgをダウンロードする。
インストール
ナビに従って初期設定
アプリを起動して言われるがままに設定。フォーラムではAGHの設定ページはポート9638とか書いてあるけど、この初期設定で自由に変更できる。DNSサーバとしてのポートは使用中と怒られない好きな数字を設定する。どうせ後で変更するから何でもいい。
AGHを停止
はい、私はここを読み落として苦戦してました。どうにも稼働中のアプリは、インストール先(/share/CACHEDEV1_DATA/.qpkg/
)とは別の場所(/opt/
)にコピーもしくはリンクを貼られて変更できないようで、私は必死に/opt/
のコピーを弄っていたため設定を変更できなかった。今から考えると書き込み時にそれっぽいログが表示されていた気がする。ログを読まずに痛い目にあったり解決が遅れるのは何度も経験してるのに、英文だと全然読むする習慣ができない、読んでも理解できない。
QNAPにssh接続
一時的にadminを有効化して、adminでssh接続
各種ファイルを変更
まずはAGHのポートの待ち受けポートを53に変更する。vimでファイルを開いて、
vi /share/CACHEDEV1_DATA/.qpkg/AdGuardHome/AdGuardHome.yaml
以下を設定する。
port: 53
protection_enabled: true
続いてプリインストールされているdnsmasqの設定を変える。
vi /etc/dnsmasq.conf
port = 1053
最後に次の設定を行う。
vi /etc/resolv.conf
nameserver = 127.0.1.1:1053
dnsmasqを再起動
killall -9 dnsmasq
dnsmasq
ユーザ名かユーザグループが正しくないと怒られたが私の場合は動いている。sshでの操作は終わりなのでログアウト、adminを無効化する。
AGHを再起動
Appセンターから起動すると無事、ポート53で稼働するようになっている。ルータもしくは各マシンのDNSサーバとしてQNAPのIPアドレスを設定すれば完了。