この簡単なガイドでは、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サーバーをインストールして構成します