リゾルバーキャッシュの仕組み
DnsClientサービスは最近の応答を——主に名前をIPv4/IPv6アドレスへ対応付けるAレコードとAAAAレコードを——ドメイン自身が設定する有効期限TTLとともに保存します。TTLが切れるまでは、その名前を問い合わせるアプリはどれもキャッシュの応答を即座に受け取ります。その後はWindowsが設定済みリゾルバー(通常はルーター、ISP、1.1.1.1のようなパブリックDNS)へ再問い合わせします。キャッシュは失敗も記憶します。一時的なDNSエラーが否定的エントリーとして保存されるため、一瞬落ちただけのサイトが復旧後も数分間「壊れた」ままになり得るのです。
このシステムキャッシュの上には2つの層があります。ブラウザーは独自の小さなDNSキャッシュを持ち、DNS-over-HTTPSが有効ならWindowsを完全にバイパスして自分で名前解決します。つまり設定次第で、特定のサイトに関係するキャッシュが、ipconfigが話しかける対象ですら無い場合があります。
フラッシュが実際に何かを直すとき
フラッシュは速度テクニックではなく正確性の修理です——本当に価値があるのは次の短い具体例リストだけです:
- hostsファイルを編集したのに、TTLが切れるまでWindowsが古い答えを出し続けている
- サイトが新しいIPアドレスへ移転し、自分のマシンが死んだアドレスにダイヤルし続けている
- VPNと通常ネットワークを切り替えたら、キャッシュされたプライベートゾーンの名前が解決されなくなった
- 一時的な障害が否定的エントリーとして保存され、サイトは復旧しているのに到達不能のまま
- DNSサーバー(またはそのフィルタリング規則)を変えて、新しいサーバーから直ちに応答が欲しい
確認とフラッシュの方法
ターミナルかPowerShellを開き、ipconfig /displaydnsを実行すると、TTL付きのキャッシュエントリーが見られます——ネットワークのせいにする前に古いレコードを確認する最速の方法です。ipconfig /flushdnsは1秒足らずでキャッシュを空にし、確認メッセージを表示します。再起動もサービス再起動も不要です。ブラウザーの層は別々にクリアしてください。Chrome系ブラウザーではchrome://net-internals/#dnsに「Clear host cache」ボタンがあり、Firefoxは再起動時に名前を再解決します。
フラッシュ後もシステム全体で名前解決がおかしい場合は、services.mscでDnsClientサービスを再起動し、アダプターのDNS割り当てページでWindowsが実際にどのリゾルバーを使っているか確認してください。サービスの再起動はキャッシュも落とすため、フラッシュの一段深い版として機能します。そして「フラッシュすればブラウジングが速くなる」と期待してこの記事に来たなら——なりません。その俗説は、いずれ単独の解剖記事に値します。
よくある質問
Windows 11でDNSキャッシュをフラッシュするには?
ターミナルかPowerShellでipconfig /flushdnsを実行します——1秒足らずで完了し、再起動は不要です。ブラウザーは別のDNSキャッシュを持つため、問題が特定のブラウザーだけならその層もクリアしてください。
DNSキャッシュはPCのどこに保存されますか?
RAM内、DnsClientサービスの中です。削除すべきディスク上のファイルはありません。現在のエントリーはipconfig /displaydnsで見るか、ipconfig /flushdnsで消せます。
購入前にライセンスの内容をご確認ください。
一度限りの 30 分試用では基本ツールを利用できます。PRO 機能は有料ライセンスを有効にするまでロックされています。
次に読む記事
お問い合わせ: [email protected]