
Linux 장치에서 인터넷 브라우징 경험이 느리거나 방문하는 웹사이트가 오래되었거나 잘못된 웹사이트입니까? Linux에서 DNS 캐시를 플러시하고 실제로 필요한지 여부를 확인하는 방법에 대해 논의해 보겠습니다.
DNS 캐시란 무엇입니까?
컴퓨터가 로컬 DNS 캐시를 사용하고 있습니까?
DNS 캐시 검토
Linux에서 DNS 캐시를 지우는 방법
Linux에서 dnsmasq 캐시를 플러시하는 방법
플러시, 성공
DNS 캐시란 무엇입니까?
도메인 이름 서비스는 이름을 숫자로 변환하는 일종의 마법입니다. 장치 네트워크 이름과 웹사이트 이름을 가져와 IP 주소를 조회합니다. 그런 다음 네트워크는 IP 주소를 사용하여 해당 장치 또는 사이트로 트래픽을 올바르게 라우팅할 수 있습니다.
이러한 조회는 요청, 즉시 발생하지 마십시오. 작고 유한한 시간이 관련되어 있습니다. 인터넷 DNS 요청에는 전구체 DNS 서버, 루트 이름 서버, 최상위 도메인 서버 및 신뢰할 수 있는 이름 서버를 쿼리해야 할 수 있습니다. DNS 요청은 빠르지만 더 빠르게 만들기 위해 최근 DNS 요청에 대한 응답이 DNS 전구체 서버에 캐시됩니다.
DNS 요청에 대한 응답이 전구체 서버의 캐시에서 발견되면 더 이상 서버에 연결할 필요가 없습니다. 응답은 전구체 서버의 캐시에서 다시 전송됩니다. 마찬가지로 집에 있는 광대역 라우터에서 작은 캐시를 유지 관리합니다. 네트워크 장치 이름을 사용하여 로컬 네트워크 장치를 요청하면 라우터가 IP 주소를 제공합니다. 또한 외부 DNS 서버에서 받은 응답을 캐시할 수도 있습니다.
일반적으로 네트워크 및 Linux 컴퓨터는 인터넷 서비스 공급자 또는 OpenDNS 또는 Google DNS와 같은 무료 서비스에서 제공하는 외부 DNS 서비스를 사용하도록 구성됩니다. 일부 사람들이 자체 DNS 서버를 실행하는 데는 그럴듯한 이유가 있지만 대부분은 그렇지 않습니다. 그러나 Linux 컴퓨터는 DNS 서버를 실행하지 않더라도 선택적으로 DNS 요청 결과를 캐시할 수 있습니다.
캐시된 데이터를 사용할 때의 문제는 모든 것이 캐시된 이후에 변경된 캐시된 세부 정보가 없다는 가정에 근거하고 있다는 것입니다. 세부 정보가 변경된 경우 받은 정보는 최신 정보가 아닙니다.
캐시 항목 또는 전체 캐시가 손상되면 기껏해야 불안정한 성능이 발생하고 최악의 경우 보안 취약점이 발생합니다. 이때 DNS 캐시를 “플러싱”하거나 지우고 싶을 것입니다.
컴퓨터가 로컬 DNS 캐시를 사용하고 있습니까?
테스트 컴퓨터 중 일부는 로컬 DNS 캐시가 켜져 있고 다른 컴퓨터는 꺼져 있습니다. Manjaro 21 컴퓨터에서는 꺼져 있었지만 Fedora 37 및 Ubuntu 22.10에서는 기본적으로 켜져 있습니다.
Linux 컴퓨터가 DNS 요청을 캐싱하고 있는지 확인하려면 is-active 의 옵션 systemctl 명령. DNS 캐시를 관리하는 데몬은 시스템 네트워크 이름 확인 관리자로 알려져 있습니다. systemd-resolved.
systemctl is-active systemd-resolved

응답이 “활성”이면 DNS 캐싱이 수행되고 있는 것입니다. 응답이 “비활성”이면 그렇지 않습니다. 이 특정 컴퓨터에서는 활성 상태입니다. 우리는 resolvectl 캐시에 얼마나 많은 레코드가 있는지 보려면 통계 옵션이 있는 명령.
resolvectl statistics

이 컴퓨터의 DNS 캐시에 330개의 항목이 있음을 알 수 있습니다.
관련된: Linux 터미널에서 프로세스를 종료하는 방법
DNS 캐시 검토
DNS 캐시 항목을 검토하는 것은 캐시를 플러시하기 위한 전제 조건이 아니며 관심이 없는 경우 이 전체 단계를 건너뛸 수 있습니다. 하지만 때로는 유익할 수 있습니다. 손상을 나타내는 스크램블된 항목이 표시되거나 네트워크의 장치 주소 지정 문제와 관련된 오류 메시지가 표시될 수 있습니다.
이제 이러한 항목을 볼 수 있는 간단한 방법이 없습니다. 우리는 할 수 있지만 약간의 창의력이 필요합니다. USR1또는 사용자 정의 신호 번호 1에서 보낼 수 있는 신호입니다. kill 그리고 killall 명령. 이 신호에는 미리 정의된 의미가 없습니다. 응용 프로그램은 이 신호를 무시하거나 개발자가 구현한 방식으로 반응할 수 있습니다.
그만큼 systemd-resolved 데몬이 반응 USR1 캐시를 시스템 로그에 기록합니다. 그런 다음 journalctl DNS 항목을 필터링하는 명령입니다.
우리는 killall 명령 USR1 에게 신호를 보내려면 systemd-resolved 악마. 우리는 killall 명령, systemd-resolved 데몬이 계속 실행됩니다. 이것은 우리가 보내는 종료 신호가 아닙니다.
sudo killall -USR1 systemd-resolved

이제 우리는 journalctl 명령 -u (필터링 기준 systemd 단위)에 의해 생성된 로그 항목을 추출하는 옵션 systemd-resolved . 해당 출력을 “dns.txt”라는 텍스트 파일로 리디렉션합니다.
sudo journalctl -u systemd-resolved > dns.txt

우리는 less 파일 뷰어는 파일의 내용을 볼 수 있습니다.
less dns.txt

텍스트를 스크롤하고 검색하여 도메인 이름과 IP 주소 간의 캐시된 매핑을 찾을 수 있습니다.

IP 주소가 216.58.212.196인 Google 항목을 볼 수 있습니다. 웹 브라우저에 IP 주소를 입력하면 확인할 수 있습니다. Google 검색의 홈페이지가 표시되어야 합니다.
Linux에서 DNS 캐시를 지우는 방법
캐시를 플러시하면 모든 항목이 제거되고 수집 프로세스가 다시 시작됩니다. 있는 경우 캐시에서 올바르지 않고 손상된 항목을 강제로 제거합니다.
명령은 간단합니다. 우리는 사용 resolvectl 이랑 flush-caches 옵션.
resolvectl flush-caches

자동으로 명령줄로 돌아갑니다. 실제로 어떤 일이 발생했는지 확인하기 위해 DNS 캐시 통계를 다시 확인합니다.
resolvectl statistics

캐시 크기가 0으로 떨어지는 것을 볼 수 있습니다. 시간이 지남에 따라 새 항목이 누적됨에 따라 증가합니다.
Linux에서 dnsmasq 캐시를 플러시하는 방법
그만큼 dnsmasq 애플리케이션은 DNS 캐시와 DHCP 서버를 제공합니다. 특히 비 시스템 설치에서 자체 DNS 서버를 실행하려는 사용자에게 인기가 있습니다.
플러싱 dnsmasq DNS 캐시는 쉽습니다. 우리는 보낼 필요가 SIGHUP 알려주는 시그널 dnsmasq 효과적으로 다시 초기화하는 데몬. 그렇게 하면 DNS 캐시가 지워집니다. 신호를 보내기 위해 우리는 killall 명령 -HUP 플래그 및 응용 프로그램의 이름입니다.
sudo killall -HUP dnsmasq

플러시, 성공
물론 컴퓨터가 전혀 캐싱되지 않는 경우 확인할 필요가 없습니다.
DNS 요청을 캐싱하고 있지만 모든 것이 제대로 작동하는 경우에도 무시할 수 있습니다. 그러나 웹을 검색할 때 웹 페이지 업데이트가 느리거나 간헐적으로 발생하거나 잘못된 웹 페이지가 표시되는 경우 DNS 캐시를 지우는 것이 좋습니다.
| 리눅스 명령 | ||
| 파일 |
타르 · 태양광 · 고양이 · 탁 · chmod · grep · 차이 · 세드 · 아르 · 남성 · 푸시 · 팝 · fsck · 테스트디스크 · 시퀀스 · fd · 판독 · CD · $PATH · 으악 · 가입하다 · jq · 겹 · 유니크 · journalctl · 꼬리 · 통계 · ls · fstab · 에코 · 더 적은 · chgrp · 촌 · 신부님 · 바라보다 · 문자열 · 유형 · 이름 바꾸기 · 지퍼 · 압축을 풀다 · 산 · 언마운트 · 설치 · fdisk · mkfs · rm · rmdir · rsync · df · gpg · 뷔 · 나노 · mkdir · 뒤 · 인 · 반점 · 전환하다 · rclone · 조각 · srm |
|
| 프로세스 |
별명 · 화면 · 맨 위 · 멋진 · 레니스 · 진전 · strace · 체계적인 · tmux · 쉿 · 역사 · ~에 · 일괄 · 무료 · 어느 · dmesg · 채널 · 사용자 모드 · 추신 · chroot · xargs · 티티 · 새끼손가락 · 이소프 · vmstat · 타임아웃 · 벽 · 예 · 죽이다 · 잠 · 스도 · 수 · 시각 · 그룹 추가 · 사용자 모드 · 여러 떼 · 쉿 · 일시 휴업 · 재부팅 · 정지 · 전원 끄기 · 암호 · lscpu · 크론탭 · 데이트 · bg · fg |
|
| 네트워킹 |
넷스타트 · 핑 · 경로 추적 · 아이피 · 봄 여름 시즌 · 후이즈 · fail2ban · 비몬 · 파기 · 손가락 · nmap · FTP · 곱슬 곱슬하다 · wget · 누구 · 와미 · 승 · iptables · ssh-keygen · ufw |
관련된: 개발자와 매니아를 위한 최고의 Linux 노트북








