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クライアントのキャッシュクリア: 必要に応じて nslookup や dig のキャッシュをリフレッシュします。これには sudo service nscd restart を使用します。
関連記事: