Technitium DNSのセルフホスト:HomeLabのプライバシーを守るオールインワン・ソリューション

HomeLab tutorial - IT technology blog
HomeLab tutorial - IT technology blog

クイックスタート(5分)

ブラウザの履歴から192.168.1.50:8080を探し出すのに疲れていませんか?HomeLab의 管理は、電話帳を暗記するような作業であるべきではありません。ローカルDNSサーバーを導入すれば、扱いにくいIPアドレスvault.homenas.localといった覚えやすい名前に置き換えることができます。Technitium DNSは、再帰ルックアップ、ネットワーク全体での広告ブロック、洗練されたダッシュボードを1つの軽量なコンテナに凝縮しています。

始める前に、DockerとDocker Composeが準備されていることを確認してください。デプロイを整理するために、docker-compose.ymlファイルを使用します。以下のコマンドを実行して開始しましょう:

mkdir technitium-dns && cd technitium-dns
nano docker-compose.yml

以下の設定をエディタに貼り付けてください:

services:
  dns-server:
    container_name: technitium-dns
    image: technitium/dns-server:latest
    restart: always
    environment:
      - DNS_SERVER_DOMAIN=dns-server
      - DNS_SERVER_ADMIN_PASSWORD=your_secure_password
    ports:
      - "53:53/udp"
      - "53:53/tcp"
      - "5380:5380/tcp" # ウェブUI
    volumes:
      - ./config:/etc/dns/config

UbuntuやDebianを使用している場合、ポート53はおそらく既にsystemd-resolvedによって使用されています。これは初心者にとって最も頻繁に遭遇する落とし穴です。ポートを解放するには、ローカルスタブリスナーを無効にします:

sudo sed -i 's/#DNSStubListener=yes/DNSStubListener=no/' /etc/systemd/resolved.conf
sudo systemctl restart systemd-resolved

それでは、コンテナを起動しましょう:

docker-compose up -d

http://your-server-ip:5380にアクセスしてください。環境変数で定義したパスワードを使用してログインします。これで、プライベートDNSが正式に稼働しました。

詳細解説

標準的なDNS設定は単なる仲介役に過ぎず、GoogleやCloudflareにサイトの場所を尋ねるだけです。Technitiumはそれ以上のことが可能です。再帰DNSサーバー(Recursive DNS Server)として設定することで、ルートサーバーと直接通信します。閲覧履歴全体を特定のプロバイダーに委ねるのではなく、サーバー自身が回答を構築します。これはプライバシーにおける大きな利点です。

フォワーダーの設定

プライバシーは重要ですが、時には純粋な速度が求められることもあります。TechnitiumのUIで、Settings > Forwardingに移動してください。1.1.1.1 (Cloudflare) や 9.9.9.9 (Quad9) のような高速なプロバイダーを追加できます。さらにセキュリティを強化するために、DNS over HTTPS (DoH)を有効にしましょう。これによりクエリが暗号化され、ISP(インターネットサービスプロバイダー)がどのドメインを検索しているかを知ることができなくなります。

ソース元で広告をブロックする

Technitiumのブロッキング機能は秘密兵器です。Settings > Blockingから、膨大なブロックリストを取り込むことができます。例えば、StevenBlack/hostsリストは、50,000以上の悪意のあるドメインや広告配信ドメインを特定します。ネットワーク内のデバイスが広告を読み込もうとすると、Technitiumは0.0.0.0を返します。広告はダウンロードすら開始されないため、帯域幅を節約し、Web体験をクリーンに保つことができます。

高度な使い方

Local Zones(ローカルゾーン)こそ、HomeLab愛好家にとっての真の醍醐味です。私はこのセットアップを使用して、半年間一度もクラッシュすることなく、3つの異なるVLANにまたがる数十のマイクロサービスを管理してきました。どのサービスがどのポートにあるかを覚える必要がなくなります。

ローカルDNSレコードの設定

  1. Zonesタブを開きます。
  2. Add Zoneをクリックし、lab.homeという名前を付けます。
  3. ゾーン内で、Add Recordをクリックします。
  4. A Recordを作成します:名前をproxyとし、Nginx Proxy ManagerまたはTraefikのIPアドレスを指定します。

これで、Wi-Fiに接続されているデバイスなら、ブラウザにproxy.lab.homeと入力するだけで即座にダッシュボードにアクセスできるようになります。

安全なリモートアクセス (DoH/DoT)

5G接続中のスマートフォンでも広告ブロックを利用したいですか?Settings > Optional ProtocolsでDoHまたはDoTを有効にしてください。TechnitiumをLet’s Encrypt証明書付きのリバースプロキシの背後に配置すれば、モバイルのDNS設定を自宅のサーバーに向けることができます。どこにいても、インターネットへのプライベートで広告のないトンネルを持っているようなものです。

実践的なヒント

DNSはネットワークの基盤です. もしこれが機能しなくなると、インターネット全体が「落ちている」ように感じられます。適切なメンテナンスが重要です。

ブロックリストを最新に保つ

新しいトラッキングドメインは常に現れます。Settings > Blockingに移動し、24時間ごとの自動更新スケジュールを設定してください。一度設定すれば、あとはサーバーが自動的に処理してくれます。

手間いらずのバックアップ

設定をローカルフォルダーにマッピングしているため、コンテナが削除されてもデータは安全です。さらに万全を期すために、毎週そのディレクトリをアーカイブするcronジョブを実行しましょう:

# 毎週のバックアップスクリプト
tar -czvf technitium_backup_$(date +%F).tar.gz ./technitium-dns/config

パフォーマンスチューニング

定期的にダッシュボードを確認してください。**キャッシュヒット率 30〜40%**を目指すと良いでしょう。それより低い場合は、設定でキャッシュのTTL(有効期限)を増やしてみてください。ヒット率が高いということは、サーバーがインターネットに問い合わせて50〜100msかかるのではなく、メモリから約1msで回答していることを意味します。

セルフホストDNSへの切り替えは、HomeLabに対して行える最大のアップグレードです。それは単なるIPアドレスの集まりを、プロフェッショナルで統合されたネットワークへと進化させます。

Share: