2026年6月16日
2026年6月16日
ブラウザのDNSキャッシュのTTL(残り時間)を確認する方法|Chrome・Edge・Firefox
ブラウザが持つDNSキャッシュの残り時間は、Firefox なら about:networking#dns で直接見られます。Chrome と Edge では、現在の画面ではキャッシュの一覧が表示されないため、chrome://net-export でネットワークログを記録して確認します。この記事では、ブラウザごとの確認方法に加えて、ブラウザのキャッシュがレコードのTTLどおりに動かない理由と、サイト移転の確認でどの数字を見ればよいかを説明します。
ブラウザのDNSキャッシュとレコードのTTLは別物
最初に整理しておきたいのは、DNSレコードに設定されたTTLと、ブラウザがキャッシュを保持する時間は、一致するとは限らないという点です。
ブラウザの名前解決には大きく2つの経路があります。
- OSに名前解決を任せる経路。 OSの標準の関数を呼ぶと、返ってくるのはIPアドレスだけで、TTLは伝わらない場合があります。このときブラウザは、TTLの代わりに自前の固定時間(短めの値)だけ結果を保持します。
- ブラウザが自分でDNSを問い合わせる経路。 セキュアDNS(DNS over HTTPS)を有効にしている場合や、ブラウザ内蔵のDNSクライアントが使われる場合です。この経路ではレコードのTTLを受け取れるため、TTLに沿って保持します。
どちらの経路が使われるかは、OS・ブラウザのバージョン・設定によって変わります(2026年10月現在)。「TTLを300秒にしたのに、ブラウザが1分で新しいIPに切り替わった」「逆にTTLより長く古いIPにつながった」という現象は、この違いや、後述する接続の再利用で説明できることがほとんどです。
Firefox で確認する
Firefox はアドレスバーに次のように入力すると、DNSキャッシュの一覧を表示できます。
about:networking#dns
一覧には、ホスト名、アドレスの種類(IPv4/IPv6)、解決したアドレス、セキュアDNS(TRR)経由かどうか、有効期限までの秒数などが並びます。列の名前は版によって多少変わります。確認したいドメインを探し、有効期限の秒数を見れば、そのエントリーがあと何秒キャッシュされるかが分かります。
数値の読み方は次のとおりです。
- TRR(セキュアDNS)経由のエントリーは、レコードのTTLを元にした残り時間になります。
- OS経由のエントリーは、Firefox の設定上の既定のキャッシュ時間に基づく値になることがあります。
- 同じ画面にある「DNSキャッシュを消去」のボタンで、その場で消せます。
Firefox のキャッシュ時間は about:config の network.dnsCacheExpiration などで決まりますが、確認のために値を変える必要はありません。設定を変えた場合は、検証が終わったら元に戻してください。
Chrome・Edge で確認する
以前の Chrome では chrome://net-internals/#dns にキャッシュの一覧が表示されていましたが、現在の版ではこのページにあるのは、名前を引いてみる機能とキャッシュを消去するボタンが中心です。残り時間を確かめるには、ネットワークログを使います。Edge は Chrome と同じ仕組みなので、chrome:// を edge:// に読み替えます。
- 新しいタブで
chrome://net-exportを開く。 - 記録を開始し、確認したいサイトを別のタブで開く。
- 記録を停止し、ログファイル(JSON)を保存する。
- Chromium プロジェクトが公開している NetLog Viewer でファイルを開く。
NetLog Viewer の DNS に関する画面やイベント一覧で、ホストリゾルバーのキャッシュの内容や、名前解決のイベントを確認できます。キャッシュのエントリーには有効期限が記録されており、記録した時刻と比べると残り時間が分かります。ログには閲覧したURLなどの通信情報が含まれます。既定の記録方法ではCookieなどの認証情報を除く設定になっていますが、他人に渡す場合は記録中に開くタブを最小限にし、内容を確認してから共有します。
手早く「今どのIPに解決されるか」だけを知りたいなら、chrome://net-internals/#dns の名前を引く機能を使えば、ブラウザの名前解決の結果を確認できます。
Safari の場合
Safari は名前解決をOS(macOS)に任せており、ブラウザ単体でDNSキャッシュの残り時間を表示する画面はありません。macOS のキャッシュを含めた挙動を見たいときは、ターミナルからOSが使っているDNSサーバーに dig で問い合わせ、応答のTTLを見るのが現実的です。
比較用に「本来のTTL」と「OSのリゾルバーの残り時間」を取る
ブラウザの数字だけを見ても、長いのか短いのか判断できません。次の2つと並べて比べます。
# 権威DNSサーバーに設定されている本来のTTL
dig @ns1.example-dns.net www.example.com A +norecurse
# PCが使っているDNSサーバーのキャッシュの残り時間
dig www.example.com A
Windows で dig が無い場合は、PowerShell の Resolve-DnsName www.example.com の TTL 列でOS側の値を確認できます。
本来のTTL、PCのDNSサーバーの残り時間、ブラウザの残り時間の3つを並べると、古い値がどの層に残っているかが分かります。ブラウザだけが古いならブラウザのキャッシュを消し、DNSサーバー側も古いならその層のTTL切れを待つ、という判断ができます。
DNSの残り時間が切れても古いサーバーにつながる理由
サイト移転の確認で戸惑いやすいのが、DNSのキャッシュが切れたあとも古いサーバーの表示が続くケースです。主な原因は次の3つです。
- 接続の再利用。 ブラウザは一度張った HTTP/2 や HTTP/3 の接続を、しばらく使い回します。DNSの答えが変わっても、既存の接続が生きている間は古いサーバーと通信します。Chrome・Edge では
chrome://net-internals/#socketsの「Flush socket pools」で接続を切れます。 - HTTPキャッシュやService Worker。 ページ自体がブラウザにキャッシュされている、または Service Worker が応答している場合、DNSとは関係なく古い内容が表示されます。シークレットウィンドウで開いて比べると切り分けられます。
- セキュアDNSの問い合わせ先。 ブラウザでセキュアDNSを有効にしていると、OSやルーターとは別のDNSサーバーに問い合わせます。OSで
digした結果とブラウザの結果が違う場合は、ブラウザの設定画面でセキュアDNSの状態を確認します。
移転の確認では、hostsファイルで新サーバーを指定して表示を確かめる方法のほうが、ブラウザのキャッシュ時間に左右されず確実性が高くなります。確認が終わったらhostsの記述を消すことを忘れないでください。
まとめ
- ブラウザのDNSキャッシュの保持時間は、レコードのTTLと一致するとは限らない。OS経由ではTTLが伝わらず、固定の短い時間で保持することがある。
- Firefox は
about:networking#dnsで有効期限の秒数を直接確認できる。 - Chrome・Edge は
chrome://net-exportでログを取り、NetLog Viewer でキャッシュの有効期限を確認する。 - 本来のTTL、PCのDNSサーバーの残り時間と並べると、どの層に古い値があるか分かる。
- DNSが切り替わっても、接続の再利用やHTTPキャッシュで古いサーバーの表示が続くことがある。