2026年5月17日

2026年5月17日

DNSのフラッシュ(キャッシュクリア)方法

はじめに

DNS(Domain Name System)は、ウェブサイトのIPアドレスを記憶し、リクエスト時に解析してユーザーに提供します。しかし、DNSサーバー上でのキャッシュが古い情報を持っていると、最新の更新内容が正しく表示されないことがあります。この記事では、Linuxサーバー上でDNSキャッシュクリアを行う方法について解説します。

症状・背景

DNSのフラッシュ(キャッシュクリア)が必要な主な場面は以下の通りです:

  • WordPressサイトの更新後、変更が反映されない場合
  • 新しいレコードを追加したが、プロキシサーバーにまだ反映されていない場合
  • DNSサーバーの再設定後に古いデータが残っている場合

手順・設定方法

ステップ1: ネットワーク名前解決プロトコルの確認

# インストールされているネットワーク名前解決プロトコルを確認する
$ sudo systemctl list-units --type=service --all | grep -i resolver

# 例:systemd-resolvedがインストールされていれば、そのサービスを停止し、キャッシュクリアを行います。

ステップ2: systemd-resolvedのキャッシュクリア

# systemd-resolvedはデフォルトで有効化されている場合が多いので、そのキャッシュをクリアします。
$ sudo systemd-resolve --flush-caches

# キャッシュが正しくクリアされたことを確認します。
$ sudo systemd-resolve --status | grep 'Current DNS Servers'

ステップ3: dnsmasqのキャッシュクリア

# ネットワーク管理者がdnsmasqを用いている場合、そのキャッシュもクリアします。
$ sudo service dnsmasq restart

# キャッシュクリア確認
$ nslookup example.com

ステップ4: 他のDNSクライアントのキャッシュクリア

# nslookupやdigなどのツールを使用している場合、それらのツールもキャッシュをリフレッシュします。
$ sudo service nscd restart

注意事項

  • セキュリティ上の注意: DNSのフラッシュはネットワーク全体に影響を与える可能性があるため、実行する前に適切なバックアップを行うことを推奨します。
  • パフォーマンス/運用上の注意: キャッシュクリア操作は一時的にDNS resolvesに時間がかかることがあります。サイトの利用者への影響を最小限に抑えるために、必要なタイミングで実行することを心がけましょう。

まとめ

1. systemd-resolvedのキャッシュクリア: sudo systemd-resolve --flush-caches を実行します。

2. dnsmasqのキャッシュクリア: sudo service dnsmasq restart を実行します。

3. 他のDNSクライアントのキャッシュクリア: 必要に応じて nslookupdig のキャッシュをリフレッシュします。これには sudo service nscd restart を使用します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ