Linux에서 DNS 캐시를 플러시하는 방법

컴퓨터는 귀하가 방문하는 모든 웹사이트의 기록을 “DNS 캐시”에 보관합니다. 이 캐시의 목적은 사용자가 도메인에 액세스하려고 할 때 시간을 절약하는 것입니다. 시스템은 매번 수동으로 검색할 필요가 없습니다. 전반적으로 DNS 캐싱은 인터넷 사용을 더 빠르게 하므로 macOS에서 Windows, Linux에 이르기까지 거의 모든 운영 체제가 이를 수행합니다.

여전히 DNS 캐싱이 유용하기 때문에 새 웹사이트 대신 오래된 웹사이트가 표시되거나 원격 서버에 연결하지 못하는 등의 문제가 발생할 수 있습니다. Linux에서 이러한 종류의 오류를 해결하는 좋은 방법 컴퓨터는 Linux에서 DNS 캐시를 “플러시”합니다. DNS 캐시를 플러시하면 DNS 데이터베이스가 새로 고쳐지고 많은 사용자가 경험하는 많은 해결 문제가 해결됩니다.

플러시 DNS – 시스템 해결

이 시점에서 대다수의 Linux 사용자는 Systemd init 시스템이 내장된 운영 체제를 실행하고 있습니다. Systemd에 대한 주제는 커뮤니티에서 의견이 분분하지만 모두가 알고 있는 사실이 하나 있습니다. Systemd는 깊고 복잡한 운영 체제 수준 조정 및 유지 관리를 과거보다 훨씬 쉽게 만듭니다. 이 사실은 DNS 캐시를 지울 때 특히 그렇습니다.

Systemd는 “systemd resolve”라고 하는 방식으로 DNS 캐시를 처리합니다. 대부분의 Linux 운영 체제에서 사용할 수 있는 방법을 찾는 표준 유틸리티입니다. OS가 Systemd Resolved를 사용하여 시스템에서 DNS 및 DNS 캐시를 처리하는지 확인하려면 키보드에서 Ctrl + Alt + T 또는 Ctrl + Shift + T를 눌러 터미널 창을 시작합니다. 그런 다음 systemd-resolved.service 파일에서 systemctl status 명령을 실행합니다.

systemctl status systemd-resolved.service

터미널 창에서 Systemd Resolved의 인쇄물을 살펴보고 “활성” 섹션을 찾은 다음 “활성(실행 중)”이 옆에 있는지 확인합니다. 그렇다면 Linux 시스템은 이것을 사용하여 DNS를 관리합니다.

Systemd Resolved의 DNS 캐시를 지우려면 Systemd Resolved의 기본 제공 기능 중 하나를 사용해야 합니다. 특히, flush caches 명령. DNS를 즉시 지우고 다시 가동할 수 있습니다!

sudo systemd-resolved --flush-caches

또는 sudo를 사용할 수 없는 경우 다음을 수행합니다.

su -
systemd-resolved --flushcaches

flushcaches 명령을 사용한 후에는 시스템의 DNS 캐시가 충분히 플러시되어야 합니다. 그러나 이 명령을 실행한 후에도 여전히 몇 가지 문제가 발생하면 서비스를 완전히 다시 시작하는 것이 좋습니다. 이렇게 하려면 systemctl restart 명령을 사용하십시오.

sudo systemctl restart systemd-resolved.service

sudo를 사용할 수 없습니까? systemd를 사용하여 서비스를 다시 시작하기 전에 su를 사용하여 루트로 로그인합니다.

su -
systemctl restart systemd-resolved.service

Systemd-Resolved가 다시 시작을 마치면 모든 DNS 문제가 수정되어야 합니다!

플러시 DNS – DNS Masq

DNSMasq는 많은 운영 체제에서 사용하는 Linux 플랫폼용으로 널리 사용되는 또 다른 DNS 솔루션입니다. Systemd-Resolved 도구와 마찬가지로 사용자는 systemctl 명령으로 도구와 상호 작용할 수 있습니다. OS가 DNSMasq 도구를 사용하여 DNS를 관리하는지 확인하려면 status 명령을 실행하십시오.

systemctl status dnsmasq.service

systemd가 화면에 제공하는 상태 출력을 읽습니다. 판독값의 “활성” 섹션으로 이동합니다. 그것을 스캔하고 “활성(실행 중)”을 찾아 서비스가 활성 상태인지 확인합니다. 이 경우 systemctl restart 명령을 사용하여 DNSMasq에 대한 DNS 캐시를 즉시 지울 수 있습니다. 터미널에서 다음 명령을 입력합니다.

sudo systemctl restart dnsmasq.service

또는 sudo와 함께 systemd 명령을 사용할 수 없는 경우 다시 시작하기 전에 루트로 로그인해 보십시오.

su -
systemctl restart dnsmasq.service

플러시 DNS – NSCD

NSCD는 대부분의 RedHat 기반 Linux 운영 체제에서 선호하는 DNS 캐싱 시스템입니다. 따라서 OpenSUSE Linux, CentOS 또는 이와 유사한 것을 사용하는 경우 DNS 캐시를 지우기 위해 이를 사용하는 데 어려움을 겪을 가능성이 큽니다.

참고: Fedora Linux는 RedHat 기반이지만 기본적으로 DNS 캐시를 저장하지 않습니다.

Linux OS가 NSCD를 사용하는지 확인하려면 시스템 서비스이므로 status 명령을 사용해야 합니다.

systemctl status nscd.service

NSCD 서비스에서 status 명령을 실행하면 이에 대한 많은 세부 정보를 얻을 수 있습니다. 훑어보고 “활성”이라고 표시된 섹션을 찾으십시오. 시스템에서 사용 중인 경우 “활성(실행 중)”이라는 녹색 텍스트가 표시됩니다.

NSCD로 DNS 캐시를 플러시하는 것은 systemd와 함께 작동하는 다른 모든 캐싱 시스템과 거의 비슷하게 작동합니다. 사용자는 systemctl restart 명령을 실행하기만 하면 됩니다. 서비스를 다시 로드하고 DNS 캐시를 자동으로 지워서 발생할 수 있는 모든 DNS 문제를 해결합니다.

sudo systemctl restart nscd.service

또는 Linux OS가 sudo를 사용하여 systemctl 명령 실행을 비활성화하는 경우 먼저 su를 사용하여 루트 계정에 로그인하여 서비스를 다시 시작할 수 있습니다.

su -

systemctl restart nscd.service