>운영 및 유지보수 >엔진스 >Linux에서 DNS 캐시를 보고 새로 고치는 방법

Linux에서 DNS 캐시를 보고 새로 고치는 방법

王林
王林앞으로
2023-06-29 14:40:274840검색

로컬 DNS 캐시를 플러시하면 HTTP 오류를 해결하고 DNS 스푸핑으로부터 자신을 보호할 수 있습니다. Linux에서 수행하는 방법은 다음과 같습니다.

도메인 이름을 사용하여 웹사이트를 방문하면 시스템은 도메인의 IP 주소를 얻기 위해 DNS 서버에 요청을 보냅니다. 이 도메인 IP 주소 쌍은 나중에 사용할 수 있도록 DNS 캐시에 저장되므로 연결을 설정할 때마다 DNS 서버에 요청을 보낼 필요가 없습니다.

그러나 때로는 로컬 DNS 캐시가 손상되어 HTTP 오류가 발생하는 경우가 있습니다. 다행히도 Linux 운영 체제에서는 DNS 캐시를 플러시하고 재구축하는 것이 매우 쉽습니다. 그 방법은 다음과 같습니다.

如何在 Linux 上查看和刷新 DNS 缓存

Linux에서 DNS 캐시를 플러시하는 이유는 무엇입니까?

시스템에 저장된 DNS 캐시를 다시 작성하려는 데에는 여러 가지 이유가 있습니다. DNS 레코드가 오래된 경우 DNS 서버에서 해당 레코드를 다시 얻어야 할 수 있습니다. 또한 시스템이 손상되었다고 우려되는 경우 DNS 스푸핑이라고도 알려진 DNS 캐시가 변조되지 않았는지 확인할 수 있습니다.

DNS 캐시를 플러시할 때 시스템은 DNS 서버를 다시 핑하고 새 도메인 IP 주소 레코드를 가져와 프로세스에서 오래되거나 손상된 데이터를 제거해야 합니다.

Linux에서 로컬 DNS 캐시를 보는 방법

systemd 이전에는 대부분의 Linux 배포판에는 dnsmasq 또는 nscd와 같은 프로그램으로 수동으로 설정하지 않는 한 시스템 전체 DNS 캐시가 없었습니다. systemd에는 도메인 이름을 IP 주소로 확인하고 DNS 항목을 캐시하는 서비스인 systemd-solved가 함께 제공됩니다.

다음 섹션에서는 캐시된 데이터를 새로 고치기로 결정하기 전에 캐시된 데이터를 이해할 수 있도록 시스템 구문 분석, nscd 및 dnsmasq에 의해 생성된 DNS 캐시의 내용을 보는 방법을 안내합니다.

시스템 확인 DNS 캐시 보기

시스템 확인 캐시 기록을 보려면 서비스를 일시적으로 중지한 다음 해당 로그를 파일로 내보내야 합니다.

먼저 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

如何在 Linux 上查看和刷新 DNS 缓存

그런 다음 텍스트를 사용하여 파일을 볼 수 있습니다. Vim Contents:

如何在 Linux 上查看和刷新 DNS 缓存

파일에서 Escape 키를 누르고 "/CACHE:"를 입력한 다음 Enter를 눌러 "CACHE:"를 검색하세요. "CACHE:" 아래에 나열된 모든 DNS 레코드는 로컬 DNS 캐시에 포함됩니다. Vim을 사용하는 경우 n 키를 눌러 다음 DNS 항목 세트로 이동하세요.

如何在 Linux 上查看和刷新 DNS 缓存

nscd의 로컬 DNS 캐시 보기

nscd에서 생성된 로컬 캐시를 보려면 string 명령을 사용하여 nscd 호스트 데이터베이스의 내용을 읽어야 합니다.

Debian 및 Ubuntu 기반 배포판에서 이 파일은 /var/cache/nscd/hosts에 있습니다. 파일을 보려면 다음 명령을 실행하십시오.

linuxmi@linuxmi ~/www.linuxmi.com % sudo strings /var/cache/nscd/hosts | uniq

如何在 Linux 上查看和刷新 DNS 缓存

nscd DNS 캐시에 대한 일반 통계를 보려면 -g 플래그를 사용하십시오.

linuxmi@linuxmi ~/www.linuxmi.com % sudo nscd -g

如何在 Linux 上查看和刷新 DNS 缓存

dnsmasq에 의해 생성된 DNS 캐시 표시

정확한 기록 얻기 쉽지 않음 dnsmasq는 DNS 캐시를 메모리에 저장하기 때문입니다. dnsmasq에 종료 신호를 보내고 그 출력을 기록하여 처리된 DNS 쿼리 수를 얻을 수 있습니다.

이 작업을 수행하려면 먼저 systemctl 명령을 사용하여 dnsmasq가 실행되고 있는지 확인하세요.

linuxmi@linuxmi ~/www.linuxmi.com % sudo systemctl status dnsmasq

如何在 Linux 上查看和刷新 DNS 缓存

상태가 "활성"으로 표시되면 다음 명령을 실행하여 서비스를 종료하세요.

linuxmi@linuxmi ~/www.linuxmi.com % sudo pkill -USR1 dnsmasq

如何在 Linux 上查看和刷新 DNS 缓存

使用 journalctl 命令,提取 dnsmasq 日志并将它们保存到文本文件中:

linuxmi@linuxmi ~/www.linuxmi.com % sudo journalctl -u dnsmasq > ~/cache.txt

最后,使用文件查看实用程序(如 cat 或更少)查看文件的内容:

linuxmi@linuxmi ~/www.linuxmi.com % cat ~/cache.txt

如何在 Linux 上查看和刷新 DNS 缓存

如何在 Linux 上刷新 DNS 缓存

刷新 DNS 缓存意味着从计算机中删除缓存的 DNS 记录。这将迫使它向DNS服务器发送请求,以获取新的DNS条目。

以下是在 Linux 上刷新 DNS 缓存的方法:

使用 systemd 解析

您可以使用 resolvectl 命令刷新 systemd 解析存储的 DNS 缓存:

linuxmi@linuxmi ~/www.linuxmi.com % sudo resolvectl flush-caches

如何在 Linux 上查看和刷新 DNS 缓存

如果您运行的是 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

如何在 Linux 上查看和刷新 DNS 缓存

如果这不起作用,首先,检查存储在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键:

如何在 Linux 上查看和刷新 DNS 缓存

点击“清除主机缓存”按钮来清除谷歌浏览器中存储的DNS条目。

Linux是学习网络的最佳操作系统

Linux 乍一看可能看起来很复杂,但如果你花一些时间来学习它是如何工作的,你很快就会意识到它很棒,甚至可能比 Windows 或 macOS 更好。

大多数在线服务器都运行 Linux,如果您想学习网络或想知道计算机通常如何工作,这也是 Linux 理想选择的原因之一。

위 내용은 Linux에서 DNS 캐시를 보고 새로 고치는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제