GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでDNSキャッシュをクリアまたはフラッシュする方法

この簡単なガイドでは、LinuxオペレーティングシステムでDNSキャッシュをクリアまたはフラッシュするためのすべての可能な方法について説明します。疑問に思っている人のために、DNSキャッシュ (またはDNSリゾルバーキャッシュと呼ばれることもあります )は、オペレーティングシステムによって維持される小さな一時データベースです。訪問したすべてのWebサイトおよびその他のインターネットドメインに関する情報を保存します。つまり、DNSキャッシュには最近のDNSルックアップが含まれています。同じWebサイトに複数回アクセスすると、OSは、実際のパブリックDNSサーバーではなく、ローカルDNSキャッシュデータベースからそのWebサイトのDNSレコードを取得します。したがって、DNSキャッシングは、Webサイトの読み込み時間を改善し、オリジンDNSサーバーの帯域幅/CPU消費を削減します。

DNSキャッシュをクリアまたはフラッシュする必要があるのはなぜですか?

ローカルDNSキャッシュをクリアする理由はたくさんあります。たとえば、Webサイトをカスタマイズしたり、ドメインのDNS設定を変更したり、インターネット接続の問題に直面している可能性があります。このような場合、サイトにアクセスしようとすると、OSはローカルDNSキャッシュからサイトのキャッシュバージョンを取得する可能性があります。したがって、ローカルDNSキャッシュをクリアすると、ローカルDNSキャッシュデータベースからすべてのエントリが削除され、システムはDNSキャッシュに実際のDNSサーバーからの新しいエントリを再入力し、Webサイトの新しいコピーを表示します。

LinuxでDNSキャッシュをクリアまたはフラッシュする

デフォルトでは、DNSキャッシングはLinuxのオペレーティングシステムレベルでインストールおよび/または有効化されていません。代わりに、Webブラウザなどのアプリケーションは独自の内部キャッシュを維持します。したがって、ブラウザのキャッシュをクリアするか再起動するだけで、インターネット接続の問題を修正し、DNSスプーフィング(DNSキャッシュポイズニングなど)の問題を解決し、古いコンテンツの問題を解決できます。 LinuxディストリビューションでDNSキャッシングサービスを使用している場合は、以下の説明に従って手動でクリアする必要があります。 DNSキャッシュをクリアする方法は複数あります。使用しているLinuxディストリビューションとDNSキャッシングサービスによって異なります。ここに、Linuxで最も一般的に使用されるDNSキャッシングサービスをクリアする手順を記載しました。

1。 Systemdをクリア-DNSキャッシングサービスを解決

Systemd-resolve は、ローカルアプリケーションにシステムレベルのDNSキャッシングサービスを提供するsystemdサービスです。これは、デフォルトでインストールされるsystemdパッケージの一部です。 Systemd-resolvedサービスは、FedoraやUbuntuなどの最新のLinuxオペレーティングシステムでデフォルトで有効になっています。まず、systemd-resolvedサービスがアクティブであるかどうか、またはコマンドを使用していないかどうかを確認しましょう:

$ sudo systemctl is-active systemd-resolved.service

systemd-resolvedサービスが有効になっている場合は、「アクティブ」が表示されます 出力で。アクティブでない場合は、「非アクティブ」と出力されます。 。

上記の出力でわかるように、systemd-resolvedサービスが私のシステムでアクティブになっています。

次のコマンドを使用して、systemd-resolveキャッシングサービスの統計を表示しましょう:

$ sudo systemd-resolve --statistics

出力例:

DNSSEC supported by current servers: no

Transactions              
Current Transactions: 0   
  Total Transactions: 3117
                          
Cache                     
  Current Cache Size: 58  
          Cache Hits: 1248
        Cache Misses: 1891
                          
DNSSEC Verdicts           
              Secure: 0   
            Insecure: 0   
               Bogus: 0   
       Indeterminate: 0

ご覧のとおり、上記の出力には、現在のキャッシュサイズ、ヒット、および欠落したキャッシュの総数が一覧表示されます。

systemd-resolveキャッシュをフラッシュするには、次のコマンドを実行します:

$ sudo systemd-resolve --flush-caches

正常に実行されると、出力は表示されません。

次に、systemd-resolve統計をチェックして、ローカルDNSキャッシュがクリアされているかどうかを確認します。

$ sudo systemd-resolve --statistics

これで、現在のキャッシュサイズがゼロとして表示されます。

DNSSEC supported by current servers: no

Transactions              
Current Transactions: 0   
  Total Transactions: 3155
                          
Cache                     
  Current Cache Size: 0   
          Cache Hits: 1255
        Cache Misses: 1922
                          
DNSSEC Verdicts           
              Secure: 0   
            Insecure: 0   
               Bogus: 0   
       Indeterminate: 0

2。 NscdDNSキャッシングサービスをクリアする

Nscd nの略 ame s ervice c 痛みd aemonは、最も一般的なネームサービスリクエストのキャッシュを提供するキャッシングデーモンです。これは、ほとんどのRedhatベースのシステムで推奨されるキャッシングサービスです。 Linuxシステムがnscdキャッシングサービスを使用している場合は、以下のようにnscdサービスを再起動するだけで、ローカルDNSキャッシングサービスをクリアまたはフラッシュできます。

$ sudo systemctl restart nscd.service

または、

$ sudo service nscd restart

または、

$ sudo /etc/init.d/nscd restart

3。バインド/名前付きDNSキャッシングサービスをクリアする

バークレーインターネット名ドメイン (まもなくバインド )は、現在使用されている最も人気のあるオープンソースDNSサーバーです。 DNSクエリのキャッシュにBINDを使用している場合は、次のコマンドを使用して、LinuxでBINDキャッシュサービスをクリア/フラッシュします。

$ sudo systemctl restart named

または、

$ sudo service named reload

または、

$ sudo /etc/init.d/named restart

または、

$ sudo rndc reload

または、

$ sudo rndc exec

最新のBIDバージョンでは、特定のドメインのDNSキャッシュもクリアできます。次のコマンドは、ostechnix.comドメインのDNSキャッシュをクリアします。

$ sudo rndc flushname ostechnix.com

以下のように、LANおよびWANゾーン全体のDNSキャッシュをクリアすることもできます。

$ sudo rndc flush lan

$ sudo rndc flush wan

4。 DnsmasqDNSキャッシングサービスをクリアする

Dnsmasq は、PXEおよびTFTPサーバーをサポートする軽量のDHCPおよびキャッシングDNSサーバーです。小規模なネットワークを管理するためのリソースに制約のあるルーターやファイアウォールに適しています。

キャッシュサービスとしてdnsmasqを使用している場合は、次のようにローカルDNSキャッシングサービスをフラッシュできます。

$ sudo systemctl restart dnsmasq

UbuntuおよびLinuxMintなどの他のUbuntuバリアントでローカルDNSキャッシュをクリアする別の方法は、次のコマンドを実行することです。

$ sudo /etc/init.d/dns-clean restart

これがお役に立てば幸いです。

関連記事:

  • Ubuntu16.04LTSにDNSサーバーをインストールして構成します


Linux
  1. LinuxでBashの履歴をクリアする方法

  2. LinuxでコマンドラインからWebブラウザのキャッシュをクリアする方法

  3. Linux – Vm Dnsサーバーをオーバーライドする方法は?

  1. Linuxでメモリキャッシュをクリアする方法

  2. UbuntuとLinuxMintでDNSキャッシュをフラッシュする方法

  3. Linux (および FreeBSD) で DNS リゾルバーのキャッシュをフラッシュする方法

  1. macOS、Windows、およびLinuxでDNSキャッシュをフラッシュする方法

  2. Redisキャッシュをクリアする方法

  3. Windows、MacOS、およびLinuxでDNSキャッシュをクリア(フラッシュ)する方法