DNSって聞いて「なんか難しそう」って思いました?でも実は、インターネットが遅いって感じる原因の半分くらいはDNSなんです。
自分でDNSサーバーを構築したら、体感速度が劇的に変わったんですよ。動画の再生開始が早くなるし、Webサイトもサクサク表示される。しかも、プライバシーも守られる。
今回は、Unboundというソフトを使って、高速DNSキャッシュサーバーを構築する方法を詳しく解説します。

DNSキャッシュサーバーを自前で持つメリット
まず、なぜ自前のDNSサーバーが必要なのか。ISPのDNSじゃダメなの?って話から始めましょう。
実は、ISPが提供するDNSサーバーって、結構遅いことが多いんです。それに、あなたがどんなサイトにアクセスしたか、全部記録されてる可能性もあります。
自前のDNSサーバーを構築すると、こんなメリットがあります:
- 圧倒的な速度向上:キャッシュヒット時は0.1ms以下(ISPの10倍以上速い)
- 完全なプライバシー保護:アクセス履歴が外部に漏れない
- 広告ブロックも可能:AdGuardHomeと組み合わせて広告を完全遮断
実際に測定したところ、我が家のネット環境では平均応答時間が2.5msから0.8msに改善しました。体感速度が全然違います。
Unboundってどんなソフト?
DNSサーバーソフトはいくつかありますが、今回はUnboundを選びました。
なぜUnboundなのか?それは「ちょうどいい」からです。
Unboundの立ち位置
BINDは高機能すぎて設定が複雑。dnsmasqはシンプルすぎて物足りない。Unboundはその中間で、必要十分な機能と使いやすさのバランスが絶妙なんです。
主要DNSソフトウェアの比較
ソフトウェア | 特徴 | メモリ使用量 | 設定の難易度 | こんな人向け |
---|---|---|---|---|
Unbound | 高速、DNSSEC対応 | 中(100-500MB) | 普通 | 速度重視の人 |
BIND | 多機能、企業標準 | 高(500MB以上) | 難しい | プロ向け |
dnsmasq | シンプル、DHCP統合 | 低(50MB以下) | 簡単 | 初心者向け |
PowerDNS | 高機能、DB連携 | 高(300MB以上) | 難しい | 大規模サイト向け |
30分で完成!Unbound構築手順
それでは実際に構築していきましょう。Ubuntu 22.04を使いますが、Debianでも同じ手順でOKです。
前提条件の確認
まず、以下の条件を満たしているか確認してください:
- Ubuntu 22.04 LTS または Debian 12
- 最低1GB RAM(推奨2GB以上)
- sudo権限のあるユーザー
- 静的IPアドレス設定済み

【高性能ミニPC】
MINISFORUM UM870 Slim – AMD Ryzen 7 8745HS搭載


- 8コア16スレッドで余裕の処理能力
- 最大64GB RAM対応(DNSキャッシュを大量に持てる)
- 静音設計で24時間稼働も問題なし
- 消費電力15-65Wで電気代も抑えられる
【コスパ重視ならシングルボード】
Raspberry Pi 5 8GB – 最新モデルで高速処理


- 約1.5万円で十分な性能
- 消費電力5W程度で電気代ほぼゼロ
- ファンレスケースで完全無音運用も可能
【電源保護は必須】
DNSサーバーが停止すると、家中のインターネットが使えなくなります。UPS(無停電電源装置)での保護を強く推奨します。
APC BR400 – 信頼性の高いUPS


- 停電時も30分程度のバックアップ
- 雷サージ保護機能付き
- 自動シャットダウンソフト対応
【その他のおすすめメーカー】
- ビジネス向けで長期サポート
- 24時間365日稼働を想定した設計
- 3年保証オプションあり
インストールと初期設定
# システムアップデート
sudo apt update && sudo apt upgrade -y
# Unboundとツールのインストール
sudo apt install unbound unbound-anchor dnsutils -y
# バージョン確認
unbound -V
次に、ルートサーバーの情報を取得します。これはDNSの基本となる重要な情報です。
# ルートヒントの更新
sudo wget -O /var/lib/unbound/root.hints https://www.internic.net/domain/named.cache
# DNSSEC用のルートキー初期化
sudo unbound-anchor -a /var/lib/unbound/root.key
# 権限設定(これ忘れると動きません!)
sudo chown -R unbound:unbound /var/lib/unbound
基本設定ファイルの作成
ここが一番重要な部分です。設定ファイルを作成します。
# /etc/unbound/unbound.conf.d/01-basic.conf
server:
# インターフェース設定
interface: 0.0.0.0
interface: ::0
port: 53
# アクセス制御(超重要!)
access-control: 127.0.0.0/8 allow
access-control: 192.168.0.0/16 allow
access-control: 10.0.0.0/8 allow
access-control: 0.0.0.0/0 refuse # その他は全て拒否
# 基本動作設定
do-ip4: yes
do-ip6: yes
do-udp: yes
do-tcp: yes
# プライバシー設定
hide-identity: yes
hide-version: yes
# ルートヒント
root-hints: "/var/lib/unbound/root.hints"
セキュリティ警告
access-controlの設定を間違えると、あなたのDNSサーバーが悪用される可能性があります。必ずローカルネットワークのみ許可するようにしてください!
パフォーマンスチューニング:速度を10倍にする設定
基本設定だけでも動きますが、チューニングすることで劇的に速くなります。

高速化設定の追加
# /etc/unbound/unbound.conf.d/02-performance.conf
server:
# CPUコア数に合わせて調整(4コアの場合)
num-threads: 4
# スレッドごとのスライス数
msg-cache-slabs: 8
rrset-cache-slabs: 8
infra-cache-slabs: 8
key-cache-slabs: 8
# キャッシュサイズ(メモリに余裕があれば増やす)
rrset-cache-size: 256m
msg-cache-size: 128m
# ソケット最適化
so-rcvbuf: 4m
so-sndbuf: 4m
# 積極的なキャッシング(これが効く!)
prefetch: yes
prefetch-key: yes
# 期限切れレコードも活用
serve-expired: yes
serve-expired-ttl: 86400
serve-expired-ttl-reset: yes
実測ベンチマーク結果
実際にdnsperfでベンチマークを取った結果がこちらです:
設定 | クエリ/秒 | 平均応答時間 | キャッシュヒット率 |
---|---|---|---|
デフォルト設定 | 15,000 | 2.5ms | 75% |
最適化後 | 45,000 | 0.8ms | 92% |
スループット3倍、応答時間68%短縮という素晴らしい結果になりました。
セキュリティ強化:安全に使うための設定
速いだけじゃダメ。セキュリティも大事です。
DNSSEC設定
DNSSECを有効にすると、偽装されたDNS応答を検出できるようになります。
# /etc/unbound/unbound.conf.d/03-security.conf
server:
# DNSSEC検証を有効化
module-config: "validator iterator"
auto-trust-anchor-file: "/var/lib/unbound/root.key"
# セキュリティ強化オプション
harden-glue: yes
harden-dnssec-stripped: yes
harden-large-queries: yes
harden-short-bufsize: yes
# プライベートアドレスの保護
private-address: 10.0.0.0/8
private-address: 172.16.0.0/12
private-address: 192.168.0.0/16
# レート制限(DDoS対策)
ratelimit: 1000
ratelimit-slabs: 4
トラブルシューティング:よくある問題と解決法
実際に運用していて遭遇した問題とその解決法をまとめました。
問題1: 起動エラー「could not open ports」
これ、めちゃくちゃよくあります。Ubuntuではsystemd-resolvedが53番ポートを使ってるんです。
# systemd-resolvedを無効化
sudo systemctl disable --now systemd-resolved
# /etc/resolv.confを再設定
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
# 書き込み保護(これ大事!)
sudo chattr +i /etc/resolv.conf

問題2: SERVFAIL応答が多い
DNSSEC検証で失敗してる可能性が高いです。一時的に検証を緩和してテストしましょう。
# DNSSEC検証を一時的に緩和
sudo unbound-control set_option val-permissive-mode: yes
# 問題のドメインを調査
sudo unbound-control lookup 問題のドメイン.com
問題3: メモリ使用量が増え続ける
キャッシュサイズの制限が適切でない場合に起こります。
# キャッシュサイズを制限
server:
cache-max-ttl: 86400
cache-min-ttl: 0
infra-host-ttl: 900
AdGuardHomeとの連携:広告ブロックも実現
UnboundとAdGuardHomeを組み合わせると、高速化と広告ブロックの両方が実現できます。
- Unbound:高速なDNSキャッシュを提供
- AdGuardHome:広告・トラッカーをブロック
- 組み合わせ:最速かつ広告なしの快適環境
設定は簡単です:
# Unboundをポート5335で起動
server:
port: 5335
interface: 127.0.0.1
# AdGuardHomeの上流DNSに設定
# AdGuardHome管理画面で: 127.0.0.1:5335
パフォーマンス比較
構成 | 広告ブロック | キャッシュ効率 | 応答速度 |
---|---|---|---|
AdGuardHome単体 | ◎ | ○ | △ |
Unbound単体 | × | ◎ | ◎ |
統合構成 | ◎ | ◎ | ◎ |
両方のいいとこ取りができる最強構成です。
運用のベストプラクティス
長期的に安定運用するためのコツを紹介します。
定期メンテナンススクリプト
月1回実行することで、常に最新・最適な状態を保てます。
#!/bin/bash
# /usr/local/bin/unbound-maintenance.sh
# ルートヒント更新
wget -O /tmp/root.hints https://www.internic.net/domain/named.cache
if [ $? -eq 0 ]; then
sudo mv /tmp/root.hints /var/lib/unbound/root.hints
sudo chown unbound:unbound /var/lib/unbound/root.hints
fi
# DNSSEC アンカー更新
sudo unbound-anchor -a /var/lib/unbound/root.key
# 設定リロード(再起動不要)
sudo unbound-control reload
# 統計情報を記録
sudo unbound-control stats >> /var/log/unbound/stats.log
echo "メンテナンス完了: $(date)" >> /var/log/unbound/maintenance.log
自動化のコツ
このスクリプトをcrontabに登録しておけば、毎月自動でメンテナンスが実行されます。手間いらずで常に最高のパフォーマンスを維持できます。
メモリ容量別の推奨設定
サーバーのメモリに応じて、最適な設定値が変わります:
# 1GB RAM
rrset-cache-size: 64m
msg-cache-size: 32m
# 2GB RAM
rrset-cache-size: 128m
msg-cache-size: 64m
# 4GB+ RAM
rrset-cache-size: 256m
msg-cache-size: 128m
実際の効果:体感できる違い
Unboundを導入してから、ネット環境が劇的に改善しました。

具体的な改善点:
- Webサイトの表示が体感で2倍速くなった
- 動画ストリーミングの開始が3秒→1秒に短縮
- オンラインゲームのマッチング時間が短縮
- スマートホーム機器の反応が良くなった
- 複数デバイスで同時アクセスしても快適
まとめ:今すぐ始めよう!
Unboundによる高速DNSサーバー構築、いかがでしたか?
最初は「DNSサーバーなんて難しそう」と思うかもしれませんが、実際やってみると意外と簡単です。しかも効果は絶大。
この記事で得られるもの
- 応答速度: 3-10倍の高速化
- セキュリティ: DNSSEC、DoT対応
- プライバシー: 完全ローカル制御
- 安定性: キャッシュによる障害耐性
週末のちょっとした時間で構築できるので、ぜひ試してみてください。きっと「もっと早くやっておけばよかった」と思うはずです。
おすすめハードウェア
DNSサーバーを構築するなら、専用のハードウェアがあると便利です。Raspberry PiやミニPCなら省電力で24時間稼働させても電気代が気になりません。



