Linuxデバイスでは、インターネットブラウジングの経験が遅いですか、それとも訪問しているWebサイトは時代遅れですか、それとも間違ったWebサイトは完全にありますか? LinuxでDNSキャッシュをフラッシングすることと、本当に必要なかどうかを知る方法について説明しましょう。
DNSキャッシュとは何ですか?
あなたのコンピュータはローカルDNSキャッシュを使用していますか?
DNSキャッシュのレビュー
LinuxでDNSキャッシュをクリアする方法
LinuxでDNSMASQキャッシュをフラッシュする方法
平らになり、成功しました
DNSキャッシュとは何ですか?
ドメイン名サービス 名前を数字に変換する魔法のビットです。 デバイスネットワーク名とウェブサイト名を取り、IPアドレスを調べます。 ネットワークは、IPアドレスを使用して、それらのデバイスまたはサイトへのトラフィックを正しくルーティングできます。
これらのルックアップ、として知られています リクエスト 、 瞬時に起こらないでください 。 少量の有限の期間が関与しています。 インターネットDNSリクエストには、前駆体DNSサーバー、ルート名サーバー、トップレベルのドメインサーバー、および権威ある名前サーバーのクエリが必要になる場合があります。 DNSリクエストは高速ですが、さらに速くするために、最近のDNSリクエストに対する回答はDNS前駆体サーバーでキャッシュされています。
DNSリクエストへの回答がPrecursor Serverのキャッシュにある場合、それ以上のサーバーに連絡する必要はありません。 答えは、Precursor Serverのキャッシュから返送されます。 同様に、自宅のブロードバンドルーターによって小さなキャッシュが維持されます。 ネットワークデバイス名を使用してローカルネットワークデバイスを要求する場合、ルーターはIPアドレスを提供します。 また、外部DNSサーバーから受信した応答をキャッシュする場合があります。
通常、ネットワークとLinuxコンピューターは、インターネットサービスプロバイダーによって提供される外部DNSサービスを使用するように構成されています。 opendns また Google DNS 。 理由があります 一部の人々は、独自のDNSサーバーを実行します 、しかし、私たちのほとんどはそうではありません。 ただし、Linuxコンピューターは、たとえDNSサーバーを実行していなくても、DNS要求の結果をオプションでキャッシュできます。
キャッシュされたデータを使用する際の問題は、キャッシュされた詳細のいずれも変更されていないという仮定に全力が基づいていることです。 詳細が変更された場合、受け取った情報は古くなります。
キャッシュエントリまたはキャッシュ全体が破損した場合、せいぜいフレーク状のパフォーマンスを受け取り、最悪の場合はセキュリティの脆弱性を受け取ります。 それは、「フラッシング」を調べたり、DNSキャッシュをクリアしたりするときです。
あなたのコンピュータはローカルDNSキャッシュを使用していますか?
テストコンピューターの中には、ローカルDNSキャッシュがオンになっているものもあれば、オフにしたものもありました。 それは私たちに外れていました マンジャロ 21コンピューターですが、デフォルトでオンになっています Fedora 37 と Ubuntu 22.10 。
LinuxコンピューターがDNSリクエストをキャッシュしているかどうかを判断するには、
アクティブです
のオプション
Systemctl
指図。 DNSキャッシュを管理するデーモンは、SystemDネットワーク名解像度マネージャーです。
SystemD-ISSOLVED
。
応答が「アクティブ」である場合、DNSキャッシュが行われています。 応答が「非アクティブ」である場合、そうではありません。 この特定のコンピューターでは、アクティブです。 を使用できます
Resolvectl
統計を備えたコマンドオプションは、キャッシュに含まれているレコードの数を確認します。
このコンピューターのDNSキャッシュには330のエントリがあることがわかります。
DNSキャッシュのレビュー
DNSキャッシュエントリのレビューは、キャッシュを洗い流すための前提条件ではありません。そうすることに興味がない場合は、 このステップ全体をスキップします 。 しかし、時にはそれは有益である可能性があります。 破損を示すスクランブルエントリが表示される場合があります。または、ネットワーク上の問題に対処するデバイスに関連するエラーメッセージが表示される場合があります。
現在、これらのエントリを見る簡単な方法はありません。 私たちはそれをすることができますが、少し創造的である必要があります。
USR1
、 また
ユーザー定義の信号番号1
、a
信号
それはによって送信できます
殺す
と
キラル
コマンド。 この信号には事前定義された意味はありません。 アプリケーションは、この信号を無視したり、開発者が実装した方法で反応することができます。
SystemD-ISSOLVED
デーモンは反応します
USR1
システムログにキャッシュを書き込むことにより。 その後、を使用できます
JournalCtl
DNSエントリをフィルタリングするコマンド。
を使用します
キラル
でコマンド
USR1
信号をに送信します
SystemD-ISSOLVED
デーモン。 使用しているが、
キラル
コマンド、
SystemD-ISSOLVED
デーモンは走り続けます。 これは、送信する終了信号ではありません。
これで使用します
JournalCtl
でコマンド
-u
(フィルター
SystemD
ユニット)生成されたログエントリを抽出するオプション
SystemD-ISSOLVED
。 その出力を「dns.txt」というテキストファイルにリダイレクトします。
使用します
以下
ファイルビューア
ファイルの内容を表示します。
ドメイン名の間のキャッシュマッピングを見つけることができます IPアドレス テキストをスクロールして検索することにより。
216.58.212.196のIPアドレスを持つGoogleのエントリを見ることができます。 IPアドレスをWebブラウザに入れることで、それを確認できます。 Google検索のホームページが表示されます。
LinuxでDNSキャッシュをクリアする方法
キャッシュをフラッシュすると、すべてのエントリが削除され、コレクションプロセスが再び開始されます。 ある場合、これにより、キャッシュから誤ったエントリと破損したエントリが強制的に削除されます。
コマンドは簡単です。 を使用しております
Resolvectl
とともに
フラッシュキャッシュ
オプション。
私たちは静かにコマンドラインに戻ります。 実際に何かが起こったことを確認するために、DNSキャッシュ統計をもう一度確認します。
キャッシュサイズがゼロにドロップされていることがわかります。 新しいエントリを蓄積すると、時間とともに増加します。
LinuxでDNSMASQキャッシュをフラッシュする方法
dnsmasq
アプリケーションは、DNSキャッシュとDHCPサーバーを提供します。 特にで独自のDNSサーバーを実行したいユーザーに人気があります
非システムのインストール
。
フラッシング
dnsmasq
DNSキャッシュは簡単です。 送信する必要があります
ため息
信号、
dnsmasq
デーモンが効果的に再発射化する。 そうすることでDNSキャッシュがクリアされます。 信号を送信するには、使用します
キラル
でコマンド
-hup
フラグ、およびアプリケーションの名前。
平らになり、成功しました
もちろん、コンピューターがまったくキャッシュしていない場合、チェックする必要はありません。
DNSリクエストをキャッシュしているが、すべてが正常に機能している場合は、それを無視することもできます。 ただし、Webを閲覧しているときに遅いまたは散発的なWebページの更新が発生している場合、または間違ったWebページを完全に表示している場合は、DNSキャッシュをクリアするのに良い時期です。