Pi-holeは、ネットワークレベルで広告をブロックするDNSシンクホールです。 広告を配信しているドメインへのアクセス時に、意図的にDNSでの名前解決を失敗させることで、Pi-hileをDNSとして利用しているネットワーク全体で広告をブロックすることが可能です。

このページでは、Pi-holeをSynology NAS DS224+上で実行する方法を紹介します。

前提

  • Dockerコンテナ上で実行します
  • Macvlanモードでコンテナを作成します
  • SynologyにContainer Managerは導入済み

はじめに

まず、Synology NAS上に下記のフォルダを作成します。File Stationを利用して作成してください。

  • /docker/projects/pihole-compose
  • /docker/pihole
  • /docker/pihole/dnsmasq.d
  • /docker/pihole/pihole

プロジェクトの作成

DSM上でContainer Managerを起動し、「プロジェクト」タブをクリックし「作成」ボタンを押します。

作成ウィンドウが現れたら下記の値を入れます。

  • プロジェクト名:pihole-pj(任意)
  • パス:/docker/projects/pihole-compose
  • ソース:docker-compose.ymlを作成
プロジェクトの作成

docker-compose.ymlは下記を指定します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole-macvlan
    cap_add:
      - CAP_NET_RAW
      - CAP_NET_BIND_SERVICE
      - CAP_CHOWN
    environment:
      - TZ=Asia/Tokyo
      - WEBPASSWORD=<your password>
      - DNSMASQ_LISTENING=local
      - WEB_PORT=8000
      - DNSMASQ_USER=pihole
      - FTLCONF_LOCAL_IPV4=<ip of pihole - 192.168.1.XX>
    volumes:
      - /volume1/docker/pihole/dnsmasq.d:/etc/dnsmasq.d
      - /volume1/docker/pihole/pihole:/etc/pihole
    networks:
      macvlan:
        ipv4_address: <ip of pihole - 192.168.1.XX>
    restart: always

networks:
  macvlan:
    name: macvlan
    driver: macvlan
    driver_opts:
      parent: eth0
    ipam:
      config:
        - subnet: "192.168.1.0/24"
          ip_range: "192.168.1.254/24"
          gateway: "192.168.1.1"
  • 11行目のパスワードはPi-holeの設定画面にログインするときに必要になります。
  • 15,21行目は、Pi-holeコンテナに割り振るIPアドレスを指定します。同じ値を入力してください。

ウェブポータルの設定

ここは何もチェックを入れないでOKです。

ウェブポータル

最後に確認画面が出るので、確認して完了してください。 最初はイメージのダウンロードが実行されるので多少時間がかかります。

Pi-holeへの接続

コンテナが起動したら、http//192.168.1.XX:8000/admin/login.phpにアクセスしてみましょう。 (192.168.1.XXXは、docker-composeで指定したIPアドレスです。)

アクセスできたらPi-holeの実行は完了です。

最後に

Pi-holeコンテナの起動まで出来たら、あとは各端末が利用するDNSサーバーをPi-holeのIPアドレスに変更してください。 または、ルーターのDHCP側で利用するDNSサーバーを変えられる場合は、DHCP側で設定を変更したほうが簡単かもしれません。

Pi-holeのトップ画面で、どの程度広告がブロックされたかを見ることができるかと思います。