Zimablade上で動くCasaOSにPi-holeを入れ、DNSとして動かす
Zimablade上で動くCasaOSにPi-holeを入れ、DNSとして動かす方法です。
Pi-holeは名前に"Pi"と入っていますがRaspberry Pi上でのみ動くものではなくLinuxもしくはdocker環境で動きます。
また、CasaOSがすでにインストールされている前提です。
なお、CasaOSに入れるとしていますが正しくはZimablade上で動くDebianに既にdockerが入っているので、Pi-holeはDebian上でdokcerコンテナとして動きます。
CasaOS上からはPi-holeの起動や設定を行なえるだけでCasaOS上で動くわけではありません。
Pi-holeのインストール
CasaOSの動いているマシンのネットワーク上のIPは192.168.1.100
として話を進めます。
また、Pi-holeではhone-choko.com
のみallow domainとする設定を行います。(whitelistにhone-choko.comのみが入っていて、それ以外のドメインは許可されていない)
- CasaOSのホーム画面から"App Store"をクリックします
- 検索窓に"Pi-hole"と入力するとPi-holeが表示されるのでinstallを選びます
- installが完了したらホームにPi-holeのアプリアイコンが表示されるので、右上の...をクリックして設定(settings)を選びます
- ネットワークがhostであるのを確認します、hostではない場合はhostを選んで保存し再起動を待ち、それから次に進みます
設定画面 - CasaOSのWebUIのポートを
81
に変えます。なお80以外のポートであれば問題ありません。画面が見られなくなるはずなのでCasaOSの画面のブラウザのURLを192.168.1.100:81に変えて再度表示します。CasaOSの設定画面 - 設定画面の上の方にターミナルアイコン(xボタンの左 ホバーするとTerminalとログと出る)があるのでそれをクリックするとターミナルが立ち上がるので下記
$ sudo pihole setpassword
を叩き、パスワードを設定します - Pi-holeのアプリアイコン右上の...をクリックして設定(settings)を選びWebUIのポート部分を
:80
に変えて保存し再起動するのを待ちます - Pi-holeアイコンをクリックし、設定したパスワードでログインして管理画面WebUIを開きます
- Domainsをクリックし、Regex filterを選択し、
.*
を入れて"add to denied domains"をクリックします。 - 次にDomainを選択し、
hone-choko.com
を入れて"add to allowed domains"をクリックします。Pi-hole 管理画面 - 同ネットワーク内の別のマシンで下記を確認
# 返ってきたらOK
$ nslookup hone-choko.com 192.168.1.100`
# 返ってこなかったらOK
$ nslookup google.com 192.168.1.100
Linuxマシン(Ubuntu Pi-holeのDNSを使うマシン)でのDNS設定
DNSとして192.168.1.100だけを見るようにします。
# /etc/systemd/resolved.conf.d/dns_servers.confの作成
$ sudo mkdir -p /etc/systemd/resolved.conf.d
$ sudo vim /etc/systemd/resolved.conf.d/dns_servers.conf
[Resolve]
DNS=192.168.1.100
Domains=
DNSStubListener=no
$ sudo vim /etc/NetworkManager/NetworkManager.conf
# mainに dns=no を追加
[main]
dns=none
# resolv.confの変更
$ sudo rm /etc/resolv.conf
$ echo "nameserver 192.168.1.100" | sudo tee /etc/resolv.conf
$ sudo chattr +i /etc/resolv.conf
# systemd-resolvedの再起動
$ sudo systemctl restart systemd-resolved
# networkmanagerの再起動
$ sudo systemctl restart NetworkManager
# google.comで返ってこないのを確認
$ curl google.com
curl: (7) Failed to connect to google.com port 80 after 9 ms: Couldn't connect to server
以上。
更新履歴
- 2025/6/14 Pi-holeの起動方法とDNSの設定方法を変更