Technitium DNS Server(TechnitiumSoftware/DnsServer) は、自分のサーバ・Raspberry Pi・Dockerコンテナで動かせるセルフホスト型のDNSサーバです。最大の役割は、家庭や社内のネットワーク全体で、広告・トラッカー・マルウェアのドメインをDNSレベルでまとめて遮断すること。加えて、DNS-over-HTTPS/TLS/QUICといった暗号化DNS、DNSSEC検証、権威DNS、DHCPサーバまでを1つのソフトウェアに詰め込んでいます。ライセンスはGPL-3.0、実装はC#(.NET)、GitHubのスターは9,155(本稿執筆の2026年7月12日 JST時点)、最新版はv15.4.0です。
「広告をブロックしたい」という話になると、まず名前が挙がるのはPi-holeやAdGuard Homeでしょう。Technitiumはそれらと同じ土俵に立ちながら、「広告ブロッカー」で終わらず、内部DNSゾーンの公開やDHCP配布まで含めた”ネットワークの名前解決そのもの”を1台で引き受けるという方向に振り切っているのが特徴です。本稿は公式リポジトリ(README)と公式サイトをもとに、① Technitiumは結局何ができるのか、② 何を解決するのか、③ 何を代替できるのかを、仕組みからDocker導入手順まで噛み砕いて解説します。
会議や業務データと同じく、名前解決も「自分の管理下に置く」というセルフホストの発想です。同じ思想でオンライン会議の議事録を自前ホストする例は Vexa徹底解説:自前ホストの議事録ボットAPI もあわせてどうぞ。
- ・Technitium DNS Serverは、ネットワーク全体で広告・マルウェアをDNSで遮断できるセルフホストDNSのOSS(GPL-3.0・⭐9,155)。
- ・広告ブロックに加えて暗号化DNS(DoH/DoT/DoQ)・DNSSEC・権威DNS・DHCPまで1台に内蔵し、操作はすべてブラウザの管理コンソールで完結する。
- ・立ち位置は「広告ブロッカー(Pi-hole/AdGuard Home)」の一歩先。内部DNSゾーンの公開やホームラボ/社内の名前解決までまとめて引き受ける。
- ・導入はDockerなら数分。
docker compose up -d→ 管理画面でパスワード設定 → ブロックリストURLを貼るだけ。
Technitium DNS Serverとは?セルフホストDNSで何ができるか
まず、Technitiumが提供する機能を俯瞰します。ポイントは、これが単なる「広告ブロッカー」ではなく、権威DNS・再帰DNS・暗号化DNS・DHCPを1台に載せた”DNSのフルセット”だという点です。
DNSサーバには大きく2つの役割があります。ひとつは権威DNS(authoritative) ——「example.com のIPアドレスはこれです」と、自分が管理するドメインの答えを”公式に”返す役割。もうひとつは再帰DNS(recursive/リゾルバ) ——手元の端末から「google.com はどこ?」と聞かれたら、ルートサーバから順にたどって答えを見つけてくる役割です。Pi-holeやAdGuard Homeが主に担うのは後者(+広告遮断)ですが、Technitiumはこの両方を1台でこなせます。
公式が挙げている主な機能を、読者が気になる順に整理すると次のようになります。
・ネットワーク全体の広告・マルウェア遮断:1つ以上のブロックリストURLを登録すると、そこに載っているドメイン(広告配信・トラッキング・マルウェア配布など)への名前解決をまとめて拒否する。設定したDNSサーバをルータやDHCPで配れば、家中・社内のあらゆる端末(スマホ・TV・IoT機器を含む)に一括で効く
・権威DNS+再帰DNSの両対応:内部向けの独自ゾーン(例:nas.home や printer.office)を自分で定義して公開しつつ、外部ドメインの名前解決も自前で行える
・暗号化DNS(DoH/DoT/DoQ):上流への問い合わせを暗号化できるだけでなく、Technitium自身が暗号化DNSの”サーバ”にもなれる
・DNSSEC検証:応答が改ざんされていないかを暗号署名で検証する(RSA・ECDSA・EdDSA、NSEC/NSEC3対応)
・DHCPサーバ内蔵:IPアドレスの配布までTechnitium側で行い、配布と同時にDNSレコードを自動登録できる
・詳細な統計とログ:クエリ数・ブロック率・クライアント別の内訳をダッシュボードで可視化し、1クエリ単位のログも追える
実装はC#(.NET 10)のクロスプラットフォームで、公称性能はコンシューマ機(Intel i7-8700)で毎秒10万リクエスト超、大規模構成では毎分数百万リクエストをさばけるとされています。家庭やホームラボはもちろん、それなりの規模の社内ネットワークでも十分な処理能力です。そして重要なのは、これらすべてをブラウザの管理コンソールから設定できること。ゾーンの編集も、ブロックリストの追加も、暗号化DNSの有効化も、設定ファイルを手で書く必要はありません。
もう一つ見逃せないのが、ダッシュボードにある「Apps(DNSアプリ)」というプラグイン機構です。これはTechnitium本体に、追加機能を”アプリ”として後付けできる仕組みで、ここがPi-holeやAdGuard Homeとの大きな性格の違いになっています。公式ストアには、社内と社外で違う答えを返すスプリットホライズンDNS、接続元の地域に応じて応答を変えるジオDNS、負荷分散のための加重ラウンドロビン、そして家庭内サービスを外部の悪意あるサイトから守るDNSリバインディング保護(DNS Rebinding Protection)、迷惑メール対策で使うDNSBL/RBLブロックリストのホスティング(RFC 5782)といったアプリが並びます。素のDNSサーバとして使い始めて、必要になった機能だけを画面から足していける——この拡張性は、単機能の広告ブロッカーにはない設計思想です。管理面でも、複数ユーザーとロールベースのアクセス制御、失効しないAPIトークン、TOTPによる2要素認証、ダークモード対応のWeb UIを備え、内蔵のDNS Client(各種レコードを引いて確認できるツール) まで管理画面から使えます。
広告とマルウェアをDNSでブロックする仕組み
「DNSで広告をブロックする」とは、具体的には広告配信ドメインへの名前解決を”意図的に失敗させる”ことです。Webページを開くと、ブラウザは本文サーバのほかに、広告・解析タグ・トラッカーなど多数のドメインへ接続しにいきます。その接続に先立って必ず走るのがDNS問い合わせです。「そのドメインのIPは?」の段階で 0.0.0.0(=どこにも繋がらない)を返してしまえば、広告そのものが読み込まれない——これがDNSベース広告ブロックの原理です。
Technitiumのブロック機能は、単純な「hostsファイルの読み込み」にとどまりません。公式が挙げている遮断まわりの機能は次の通りです。
・複数ブロックリストの自動更新:StevenBlack/hosts など定番のリストURLを複数登録でき、24時間ごとに自動で取り込む
・CNAMEクローキング対策:広告事業者が「見た目は自社ドメイン、実体は広告ドメイン」とCNAMEで偽装してブロックを回避する手口に対し、CNAMEの先まで追ってブロックする
・正規表現(REGEX)ブロックリスト:ドメインをパターンで一括指定できる
・クライアント/サブネット別のカスタマイズ:「子ども部屋の端末だけ強めに」「サーバ用サブネットは緩めに」といった、接続元ごとの出し分けができる
・許可リスト(Allowed)との併用:ブロックリストで巻き込まれた正規ドメインを個別に救済できる
実際の名前解決が、キャッシュ・ブロックリスト・暗号化フォワーダ・ルートサーバのどこにたどり着くのかを図にすると、次のようになります。
DNS問い合わせ"] --> B{"キャッシュに
ある?"} B -->|"あり"| C["キャッシュから
即応答"] B -->|"なし"| D{"ブロックリストに
載っている?"} D -->|"該当(広告/マルウェア)"| E["0.0.0.0 を返して遮断
Blocked としてログ"] D -->|"該当しない"| F{"上流の
解決方法"} F -->|"フォワーダ設定あり"| G["DoH/DoT/DoQ で
Quad9等へ暗号化転送"] F -->|"フォワーダなし"| H["ルートサーバから
再帰的に解決"] G --> I["DNSSECで
改ざん検証"] H --> I I --> J["応答をキャッシュして
端末へ返す"]
この仕組みの利点は、端末側に何もインストールしなくてよいことです。ブラウザ拡張の広告ブロッカーはPCのブラウザにしか効きませんが、DNSレベルの遮断はネットワークに繋がるすべての機器——スマホアプリ内の広告、スマートTVのトラッキング、IoT機器の不審な通信——にまとめて効きます。逆に注意点として、DNSブロックは「ドメイン単位」の粗い制御なので、本文と同じドメインから配信される広告(YouTube等)は止めにくい、という限界もあります。この特性はPi-hole・AdGuard Homeでも共通です。
暗号化DNS(DoH/DoT/DoQ)とDNSSECでプライバシーを守る
広告を止めることと並んで、セルフホストDNSのもう一つの動機がプライバシーです。通常のDNS問い合わせは平文で飛ぶため、経路上(ISPや公衆Wi-Fiの提供者など)から「どのサイトを見ようとしたか」が丸見えになります。ここを暗号化するのがDoH(DNS-over-HTTPS)/DoT(DNS-over-TLS)/DoQ(DNS-over-QUIC) です。
Technitiumの暗号化DNS対応には、「クライアント側」と「サーバ側」の2つの顔があります。ここがPi-hole等との地味だが重要な差です。
・クライアント(フォワーダ)として:上流のパブリックDNS(Quad9・Cloudflare・Googleなど)へ問い合わせる際に、DoH(RFC 8484、HTTP/1.1・HTTP/2・HTTP/3対応)・DoT(RFC 7858)・DoQ(RFC 9250)で暗号化できる。上のスクリーンショットのように、Quick Selectから選ぶだけで設定できる
・サーバとして:Technitium自身がDoH/DoTのエンドポイントになれる。自宅サーバをDoHサーバとして公開し、外出先のスマホやノートPCのDNS設定をそこに向ければ、外からでも「自分の広告ブロック済み・暗号化されたDNS」を使える
さらにDNSSEC検証により、返ってきた応答が途中で書き換えられていないか(DNSキャッシュポイズニング等の攻撃を受けていないか)を暗号署名で検証します。対応アルゴリズムはRSA・ECDSA・EdDSAで、NSEC/NSEC3にも対応します。「暗号化(DoH/DoT/DoQ)=経路を盗み見されない」「DNSSEC=答えが改ざんされていない」——この2つは目的が違うので、両方あって初めてDNSのプライバシーと真正性が揃うと理解しておくとよいでしょう。
なお、フォワーダを一切設定しなければ、Technitiumはルートサーバから自分で再帰解決します。「上流のパブリックDNSにも問い合わせ履歴を渡したくない」という場合は、この完全な自前再帰リゾルバ構成を選べます。手軽さ(信頼できる上流へ暗号化転送)と、徹底(誰にも履歴を渡さず自前再帰)のどちらを取るかは、要件次第で選べる設計です。
Pi-hole・AdGuard Homeとの違い:権威DNSとDHCPまで持つ
「広告をブロックするセルフホストDNS」というと、まず比較対象になるのがPi-holeとAdGuard Homeです。結論から言えば、広告を止めたいだけならどれを選んでも目的は達成できます。違いは”守備範囲”にあります。
3者の主な違いを表にまとめます(各ツールの一般的な機能範囲に基づく整理。細部はバージョンや設定で変わります)。
| 観点 | Technitium DNS Server | Pi-hole | AdGuard Home |
|---|---|---|---|
| 主目的 | フル機能のDNSサーバ | 広告・トラッカー遮断 | 広告・トラッカー遮断 |
| 広告/マルウェア遮断 | ◯(複数リスト・REGEX・CNAME対策) | ◯(定番) | ◯(フィルタが充実) |
| 権威DNS(自前ゾーン公開) | ◯ | △(ローカルレコードのみ) | △(DNS書き換え/rewrites) |
| 再帰リゾルバ(自前で解決) | ◯(内蔵) | △(unbound等を別途) | ◯ |
| 暗号化DNS(クライアント) | DoH / DoT / DoQ | DoH/DoT(cloudflared等を別途) | DoH / DoT / DoQ |
| 暗号化DNS(サーバとして公開) | ◯ | ×(別途) | ◯ |
| DNSSEC検証 | ◯ | ◯ | ◯ |
| DHCPサーバ | ◯(DNS自動登録あり) | ◯ | ◯ |
| Web管理UI | ◯(ダークモード・2FA・複数ユーザー) | ◯ | ◯(モダン) |
| 実装 | C#(.NET) | PHP/シェル/dnsmasq系 | Go |
| ライセンス | GPL-3.0 | EUPL | GPL-3.0 |
読み解きのポイントは3つです。
・「広告を止めたいだけ」ならPi-hole/AdGuard Homeで十分:導入もコミュニティ情報も豊富で、いちばん手軽。特にAdGuard HomeはモダンなUIと単一バイナリ(Go実装)で人気
・権威DNS・再帰・DHCPを1台にまとめたいならTechnitium:内部ゾーン(*.home や社内ドメイン)を自分で持ち、条件付き転送やDNSフェイルオーバまで同じ画面で管理したい人向け。Pi-holeで再帰リゾルバを使うにはunbound、暗号化にはcloudflaredを別途足す構成が定番だが、Technitiumはそれらを最初から内蔵している
・DoQ(DNS-over-QUIC)まで使いたいならTechnitiumかAdGuard Home:新しめのQUICベース暗号化DNSに対応
要するに、Technitiumは「広告ブロッカー」というより「自分で運用できるフル機能DNSサーバに、広告ブロックも付いてくる」製品です。多機能ぶんだけ設定項目は多いので、「とにかく広告だけ止められればいい」人にはややオーバースペックに映るかもしれません。そこは目的との相談になります。
Technitium DNS ServerをDockerで立てる:導入手順とブロックリスト設定
ここからは実際に動かす手順です。TechnitiumはWindowsインストーラ/Linux(Raspberry Pi含む)/Docker/ポータブル版(.NET 10)で導入できますが、いちばん手軽で環境を汚さないのはDockerです。
まず、docker-compose.yml を用意します。DNS(53番)に加えて、管理コンソール(5380)、DoT(853)、DoH(443)のポートを開けておきます。
services:
dns-server:
container_name: dns-server
hostname: dns-server
image: technitium/dns-server:latest
# network_mode: "host" # ホスト直結にする場合はこちら(ports指定は不要)
ports:
- "5380:5380/tcp" # 管理コンソール(HTTP)
- "53:53/udp" # DNS(UDP)
- "53:53/tcp" # DNS(TCP)
- "853:853/tcp" # DNS-over-TLS
- "443:443/tcp" # DNS-over-HTTPS
environment:
- DNS_SERVER_DOMAIN=dns-server # サーバのドメイン名
# - DNS_SERVER_ADMIN_PASSWORD=変更する # 管理者パスワードを環境変数で初期化する場合
volumes:
- ./config:/etc/dns # 設定・ゾーン・ログの永続化
restart: unless-stopped
sysctls:
- net.ipv4.ip_local_port_range=1024 65000
起動と状態確認は次のとおりです。
# 起動
docker compose up -d
# ログを確認(起動完了を待つ)
docker compose logs -f dns-server
起動したら、ブラウザで http://<ホストのIP>:5380/ を開きます。初回ログインは既定ユーザー admin /パスワード admin なので、最初に必ずパスワードを変更してください。あとはダッシュボードの各タブから設定していきます。
・Settings → Forwarders:上流をQuad9(https://dns.quad9.net/dns-query)などに設定し、プロトコルをDNS-over-HTTPSに変更(前掲のスクリーンショットの画面)
・Settings → Blocking:ブロックリストURLを貼り付け(例:https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts)
・Administration:管理者パスワード変更、複数ユーザー・2FA(TOTP)の設定
最後に、端末やルータのDNSサーバ設定をTechnitiumのIPに向ければ、ネットワーク全体に反映されます。遮断が効いているかは、dig(またはWindowsの nslookup)で確かめられます。これが当サイトのこだわりで、”自分の環境で今すぐ試せる”確認方法です。
# 1) 通常のドメイン → 正常なIPが返ればOK
dig @192.168.1.10 example.com +short
# 2) 広告/トラッキング系ドメイン → 0.0.0.0 が返れば遮断成功
dig @192.168.1.10 doubleclick.net +short
# → 0.0.0.0
# 3) 応答ステータスと権威を細かく見る(NOERROR/NXDOMAIN、フラグ確認)
dig @192.168.1.10 doubleclick.net
# 4) Windows の場合
nslookup doubleclick.net 192.168.1.10
0.0.0.0 が返ってくれば、そのドメインはブロックゾーンに入っており、以後この端末では広告が読み込まれません。ダッシュボードの「Blocked」タイルの数値が増えていくのも確認できます。うまく遮断されない場合は、端末側がTechnitium以外のDNS(DoH内蔵ブラウザの独自DNSや、スマホのプライベートDNS設定など)を使っていないかを疑うのが定石です。
企業内DNS・ホームラボでの実運用と注意点
最後に、Technitiumが実際に活きる正当な運用シーンと、運用上の注意点を整理します。DNSは”ネットワークの土台”なので、止まると影響が大きい。だからこそ設計をきちんと押さえておく価値があります。
代表的なユースケースは次の3つです。
・家庭・ホームラボの広告ブロック&内部名前解決:家中の端末の広告・トラッキングを一括で止めつつ、nas.home や pihole.lab のような内部ホスト名を自分で解決する。DHCPも兼ねれば、IP配布と同時にDNSレコードが自動登録され、機器の管理が一気に楽になる
・社内DNS(オンプレ/小規模オフィス):社内ドメインの権威DNSとして内部ゾーンを公開し、外部向けは暗号化フォワーダやDNSSEC検証つきで解決。マルウェアドメインのブロックはそのままエンドポイント保護の一層になる。複数ユーザー・ロール・2FAに対応するので、運用担当を分けられる
・プライバシー重視の個人利用:外出先からも自宅のDoHエンドポイントに繋ぎ、公衆Wi-Fiでも暗号化された自前DNSを使う
運用にあたっての注意点も押さえておきましょう。
・冗長化を考える:DNSが単一障害点になると、名前解決できず”ネットが全部落ちた”ように見える。セカンダリDNSを別途用意する、ゾーン転送(AXFR/IXFR)で2台構成にするなどの冗長化を検討する。Technitiumはゾーン転送(XFR-over-TLS/QUIC含む)やDNSフェイルオーバに対応している
・ポートの公開範囲に注意:管理コンソール(5380)やDNS(53)をインターネットに直接晒さない。外部公開するのは必要なエンドポイント(例:DoHの443)だけにし、管理画面はLAN内やVPN経由に限定する。オープンリゾルバ化(誰でも使える再帰DNS)はDDoSの踏み台になり得るので避ける
・ログの扱い:クエリログには「誰がどのサイトを引いたか」が残る。家庭でも社内でも、ログの保存期間やアクセス権をポリシーとして決めておく
・バックアップ:/etc/dns(設定・ゾーン・ブロック設定)を定期バックアップしておけば、コンテナを作り直しても即復旧できる
Technitiumは「広告ブロッカー」というラベルで語られがちですが、その実体は個人でも運用できるフル機能のDNSサーバです。広告を止めるという入り口から入って、暗号化DNS・DNSSEC・内部ゾーン・DHCP・冗長化まで、DNSにまつわる要素をひととおり”自分の管理下”で学び・運用できる。名前解決という、ふだん意識しないインフラを自分の手に取り戻したい人にとって、有力な選択肢になります。まずはDockerで1台立てて、dig でブロックの効きを確かめてみるところから始めるのが、いちばんの近道です。
まとめ
Technitium DNS Serverは、家庭や社内のネットワーク全体で広告・マルウェアをDNSレベルで遮断するセルフホストDNSでありながら、暗号化DNS(DoH/DoT/DoQ)・DNSSEC・権威DNS・DHCPまでを1台に載せた、フル機能のDNSサーバです。
・広告を止めたいだけならPi-hole/AdGuard Homeでも十分。Technitiumの価値は、そこに権威DNS・再帰・DHCP・条件付き転送・フェイルオーバまで一括で乗ることにある
・暗号化DNSは「クライアント(上流へ暗号化転送)」と「サーバ(自宅をDoHエンドポイント化)」の両対応。DNSSECで応答の真正性も検証できる
・導入はDockerで数分。設定はすべてブラウザの管理コンソールで完結し、dig で遮断の効きをすぐ確認できる
・ライセンスはGPL-3.0、実装はC#(.NET)。Windows/Linux/Raspberry Pi/Dockerで動く
名前解決を”誰かのクラウド”に預けたままにするか、自分の管理下に置くか。Technitiumは後者を、個人でも扱える形で提供してくれるOSSです。
参照ソース
・TechnitiumSoftware/DnsServer(公式GitHubリポジトリ) — 機能一覧・対応プロトコル・インストール方法の一次ソース
・Technitium DNS Server 公式サイト — スクリーンショット・機能説明・ダウンロード
・Configuring DNS Server For Privacy & Security(公式ブログ) — DoH/DoTの設定手順の解説