Linux で DNS キャッシュを表示および更新する方法
ローカル DNS キャッシュをフラッシュすることで、HTTP エラーを解決し、DNS スプーフィングから身を守ることができます。 Linux でそれを行う方法は次のとおりです。
ドメイン名を使用して Web サイトにアクセスすると、システムは DNS サーバーにリクエストを送信して、ドメインの IP アドレスを取得します。このドメイン IP アドレスのペアは、後で使用できるように DNS キャッシュに保存されるため、接続を確立するために毎回 DNS サーバーに要求を送信する必要はありません。
しかし、場合によっては、ローカル DNS キャッシュが破損し、HTTP エラーが発生することがあります。ありがたいことに、Linux オペレーティング システムでは、DNS キャッシュのフラッシュと再構築が非常に簡単です。作り方は次のとおりです。
#Linux で DNS キャッシュをフラッシュする必要があるのはなぜですか?
システムに保存されている DNS キャッシュを再構築する理由はいくつかあります。 DNS レコードが古い場合は、DNS サーバーから再取得することができます。さらに、システムが侵害されたのではないかと心配な場合は、DNS スプーフィングとも呼ばれる、DNS キャッシュが改ざんされていないことを確認する必要があるかもしれません。
DNS キャッシュをフラッシュする場合、システムは DNS サーバーに再度 ping を実行し、そこから新しいドメイン IP アドレス レコードを取得し、その過程で古いデータや破損したデータを削除する必要があります。
Linux でローカル DNS キャッシュを表示する方法
systemd が登場する前は、dnsmasq や nscd のようなものを除いて、ほとんどの Linux ディストリビューションにはシステム全体の DNS キャッシュがありませんでした。プログラムは手動でセットアップされます。 systemd には、ドメイン名を IP アドレスに解決し、DNS エントリをキャッシュするサービスである systemd-solved が付属しています。
次のセクションでは、キャッシュされたデータをフラッシュする前にキャッシュされたデータを理解できるように、systemd 解決、nscd、および dnsmasq によって生成された DNS キャッシュの内容を表示する方法について説明します。
システム解決された DNS キャッシュの表示
systemd 解決されたキャッシュ レコードを表示するには、サービスを一時的に停止し、そのログをファイルにエクスポートする必要があります。
まず、SIGUSR1 シグナルを送信して systemd 解析サービスを終了します:
linuxmi@linuxmi ~/www.linuxmi.com % sudo killall -USR1 systemd-resolved[sudo] linuxmi 的密码:
journalctl コマンドと標準出力演算子を使用して、出力をテキスト ファイルに保存します:
linuxmi@linuxmi ~/www.linuxmi.com % sudo journalctl -u systemd-resolved > ~/cache.txtlinuxmi@linuxmi ~/www.linuxmi.com
Vim などのテキスト エディタを使用してファイルの内容を表示できます。
nscd によって生成されたローカル キャッシュを表示するには、string コマンドを使用する必要があります。 nscd ホストのデータベースの内容を読み取ります。
Debian および Ubuntu ベースのディストリビューションでは、このファイルは /var/cache/nscd/hosts にあります。次のコマンドを実行してファイルを表示します:
linuxmi@linuxmi ~/www.linuxmi.com % sudo strings /var/cache/nscd/hosts | uniq
#nscd DNS キャッシュに関する一般的な統計を表示するには、-g フラグを使用します:
linuxmi@linuxmi ~/www.linuxmi.com % sudo nscd -g
dnsmasq によって生成された DNS キャッシュを表示する
linuxmi@linuxmi ~/www.linuxmi.com % sudo systemctl status dnsmasq
ステータスが「アクティブ」になっている場合は、次のコマンドを使用してサービスを終了します:
linuxmi@linuxmi ~/www.linuxmi.com % sudo pkill -USR1 dnsmasq
使用 journalctl 命令,提取 dnsmasq 日志并将它们保存到文本文件中:
linuxmi@linuxmi ~/www.linuxmi.com % sudo journalctl -u dnsmasq > ~/cache.txt
最后,使用文件查看实用程序(如 cat 或更少)查看文件的内容:
linuxmi@linuxmi ~/www.linuxmi.com % cat ~/cache.txt
如何在 Linux 上刷新 DNS 缓存
刷新 DNS 缓存意味着从计算机中删除缓存的 DNS 记录。这将迫使它向DNS服务器发送请求,以获取新的DNS条目。
以下是在 Linux 上刷新 DNS 缓存的方法:
使用 systemd 解析
您可以使用 resolvectl 命令刷新 systemd 解析存储的 DNS 缓存:
linuxmi@linuxmi ~/www.linuxmi.com % sudo resolvectl flush-caches
如果您运行的是 Ubuntu 17.04 或 18.04,请使用 systemd 解析的命令刷新缓存:
sudo systemd-resolved --flush-caches
在 Linux 上刷新 nscd DNS 缓存
删除 nscd 的 DNS 缓存的最便捷方法是重新启动服务。您可以通过运行以下命令来执行此操作:
linuxmi@linuxmi ~/www.linuxmi.com % sudo /etc/init.d/nscd restart
如果这不起作用,首先,检查存储在PC上的本地缓存是否持久。您可以使用 -g 标志进行验证:
sudo nscd -g
如果是这种情况,请使用带有 nscd 命令的 –i 标志来清除记录(i 代表 invalidate):
linuxmi@linuxmi ~/www.linuxmi.com % sudo nscd -i hosts
删除 dnsmasq DNS 缓存
刷新 dnsmasq 生成的 DNS 缓存很简单。由于缓存存储在内存中,因此重新启动服务会删除所有存储的条目。
要重新启动 dnsmasq,请运行以下 systemctl 命令:
sudo systemctl restart dnsmasq
或者,发出以下命令:
service dnsmasq restart
如果出现提示,请输入管理员密码。现在要重新启动 dnsmasq,所有缓存中存在的 DNS 条目将被清除。
建议刷新 DNS 缓存后,检查本地缓存条目以确认数据已经成功删除。您可以使用 Linux 命令之一的 dig 来进行网络故障排除,并查看输出中的“查询时间”值。假如超过 0 毫秒,则说明缓存已经成功清除(若为 0 毫秒,则表示域记录仍存在于缓存中)。
dig google.com
清除谷歌浏览器的DNS缓存
您经常使用的 Web 浏览器也会缓存 DNS 记录。输入 URL 时,系统会在本地浏览器缓存中搜索缓存条目。如果未找到,它将检查本地系统缓存中的记录。清除 Web 浏览器的 DNS 缓存非常重要,因为它优先于系统范围的缓存。
为了演示,让我们刷新谷歌浏览器中的DNS缓存。在其他浏览器上也有一些方法可以做到这一点,所以最好 Google 一下如何使用你使用的浏览器做到这一点。
首先,在URL栏中键入“chrome://net-internals/#dns”并按Enter键:
点击“清除主机缓存”按钮来清除谷歌浏览器中存储的DNS条目。
Linux是学习网络的最佳操作系统
Linux 乍一看可能看起来很复杂,但如果你花一些时间来学习它是如何工作的,你很快就会意识到它很棒,甚至可能比 Windows 或 macOS 更好。
大多数在线服务器都运行 Linux,如果您想学习网络或想知道计算机通常如何工作,这也是 Linux 理想选择的原因之一。
以上がLinux で DNS キャッシュを表示および更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Linuxでnginxを開始する手順:nginxがインストールされているかどうかを確認します。 systemctlを使用して、nginxを開始してnginxサービスを開始します。 SystemCTLを使用して、NGINXがシステムスタートアップでNGINXの自動起動を有効にすることができます。 SystemCTLステータスNGINXを使用して、スタートアップが成功していることを確認します。 Webブラウザのhttp:// localhostにアクセスして、デフォルトのウェルカムページを表示します。

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

NGINXサーバーを起動するには、異なるオペレーティングシステムに従って異なる手順が必要です。Linux/UNIXシステム:NGINXパッケージをインストールします(たとえば、APT-GetまたはYumを使用)。 SystemCtlを使用して、NGINXサービスを開始します(たとえば、Sudo SystemCtl Start NGinx)。 Windowsシステム:Windowsバイナリファイルをダウンロードしてインストールします。 nginx.exe実行可能ファイルを使用してnginxを開始します(たとえば、nginx.exe -c conf \ nginx.conf)。どのオペレーティングシステムを使用しても、サーバーIPにアクセスできます

Nginx 403禁止エラーを修正する方法は?ファイルまたはディレクトリの許可を確認します。 2。HTACCESSファイルを確認します。 3. nginx構成ファイルを確認します。 4。nginxを再起動します。他の考えられる原因には、ファイアウォールルール、Selinux設定、またはアプリケーションの問題が含まれます。

質問への回答:304変更されていないエラーは、ブラウザがクライアントリクエストの最新リソースバージョンをキャッシュしたことを示しています。解決策:1。ブラウザのキャッシュをクリアします。 2.ブラウザキャッシュを無効にします。 3.クライアントキャッシュを許可するようにnginxを構成します。 4.ファイル許可を確認します。 5.ファイルハッシュを確認します。 6. CDNまたは逆プロキシキャッシュを無効にします。 7。nginxを再起動します。

Linuxでは、次のコマンドを使用して、nginxが起動されるかどうかを確認します。SystemCTLステータスNGINXコマンド出力に基づいて、「アクティブ:アクティブ(実行)」が表示された場合、NGINXが開始されます。 「アクティブ:非アクティブ(dead)」が表示されると、nginxが停止します。

サーバーには、要求されたリソースにアクセスする許可がなく、NGINX 403エラーが発生します。ソリューションには以下が含まれます。ファイル許可を確認します。 .htaccess構成を確認してください。 nginx構成を確認してください。 SELINUXアクセス許可を構成します。ファイアウォールルールを確認してください。ブラウザの問題、サーバーの障害、その他の可能なエラーなど、他の原因をトラブルシューティングします。

エラーログは、/var/log/nginx(Linux)または/usr/local/var/log/nginx(macos)にあります。コマンドラインを使用して手順をクリーンアップします。1。元のログをバックアップします。 2。新しいログとして空のファイルを作成します。 3。nginxサービスを再起動します。自動クリーニングは、LogroTateや構成などのサードパーティツールでも使用できます。
