macOS에서 DNS 캐시를 플러시하는 방법 (Sequoia, Sonoma, Ventura)

Terminal 명령어 하나로 macOS의 DNS 캐시를 지우는 방법을 알아보세요. 도메인 변경 후 오래된 DNS 레코드, 깨진 리디렉션, 이상한 해석 문제를 수정합니다.

DNS 캐시 문제는 잘못 진단하기 쉽습니다. 도메인 레코드를 업데이트하고 전파를 기다렸는데, 브라우저를 열면 여전히 이전 사이트가 로드됩니다. 또는 잘 작동하던 사이트가 갑자기 연결을 거부합니다. 서버는 정상입니다. 인터넷도 정상입니다. 문제는 Mac이 오래된 DNS 답을 캐시하고 있어서 여전히 그것을 제공하고 있기 때문입니다.

DNS 캐시를 플러시하면 macOS에게 저장된 답을 잊어버리고 처음부터 다시 물어보도록 지시합니다. 명령어 하나와 약 5초면 됩니다.

Mac이 DNS 레코드를 캐시하는 이유

웹사이트를 방문할 때마다 Mac은 도메인 이름(예: example.com)을 IP 주소로 번역해야 합니다. 이 번역은 과정을 거칩니다: Mac은 먼저 로컬 DNS 캐시를 확인하고, 그런 다음 DNS 리졸버(보통 ISP의 것이나 1.1.1.1 같은 공개 것)에게 물어보며, 두 곳 모두 답이 없으면 리졸버가 해당 도메인의 권한 있는 네임서버에 연락합니다.

캐싱은 일반적으로 좋은 것입니다. 최근에 방문한 사이트에 대해 전체 조회 체인을 건너뛸 수 있으므로 브라우징이 빨라집니다. 문제는 DNS 레코드가 변경되었을 때 Mac의 캐시된 답이 여전히 이전 목적지를 가리킬 때 나타납니다. DNS 레코드의 TTL(생존 시간)은 리졸버에게 캐시 기간을 알려주지만, macOS가 항상 정확하게 이를 존중하지는 않습니다.

DNS 플러시가 실제로 도움이 되는 경우

모든 네트워크 문제가 DNS 캐시 문제는 아닙니다. 플러시가 도움이 되는 경우:

  • 도메인의 DNS 레코드를 변경했는데 Mac이 여전히 이전 IP로 해석할 때
  • 다른 곳에서는 DNS 변경이 전파되었는데 사이트가 잘못된 곳으로 리디렉션될 때
  • VPN 또는 커스텀 DNS 설정에서 전환했는데 일부 도메인이 잘못 해석될 때
  • 분명히 존재하는 도메인이 다른 곳에서는 정상 해석되는데 내 Mac에서 “서버를 찾을 수 없음"이 반환될 때

사이트가 그냥 느리거나, 연결이 타임아웃되거나, TLS 오류가 발생하는 경우 DNS 플러시는 도움이 되지 않을 가능성이 높습니다. 이것들은 다른 문제입니다.

macOS에서 DNS 캐시를 플러시하는 명령어

명령어는 최근 macOS 버전에서 동일합니다. Terminal을 열고 (Applications > Utilities에서 찾거나 Spotlight로 검색) 다음을 실행하세요:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

비밀번호를 입력하라는 메시지가 표시됩니다. Terminal은 입력 시 문자를 표시하지 않으며, 이는 정상입니다. 성공했을 때 확인 출력이 표시되지 않는데, 이것도 정상입니다.

이 명령어는 다음 버전에서 작동합니다:

  • macOS Sequoia (15.x)
  • macOS Sonoma (14.x)
  • macOS Ventura (13.x)

Monterey나 Big Sur를 사용 중이라면 그 버전에서도 작동합니다.

명령어는 두 가지 작업을 수행합니다. dscacheutil -flushcache는 DNS를 포함한 디렉토리 서비스 캐시를 지웁니다. killall -HUP mDNSResponder는 macOS의 DNS 응답기 프로세스에 신호를 보내 다시 로드하도록 합니다. 두 가지 모두 필요합니다. 이전 버전의 macOS에서는 dscacheutil만으로 충분했지만 수년 전에 그것으로는 부족하게 되었습니다.

sudo 접두사는 이것이 시스템 수준 작업이기 때문에 필요합니다. 없으면 두 명령어 모두 자동으로 실패하거나 권한 오류를 반환합니다.

플러시가 작동했는지 확인하기

플러시 후 새 브라우저 탭을 열고 문제가 있던 도메인을 방문하세요. 문제가 오래된 캐시였다면 올바른 사이트가 표시되어야 합니다.

더 확실한 확인을 위해 DNS 조회를 수행하고 얻는 IP 주소가 예상한 것과 일치하는지 확인할 수 있습니다. NetUtil의 DNS 조회 도구로 이것이 빠릅니다: 앱을 열고 DNS 조회로 이동하여 도메인을 입력하고 쿼리를 실행하세요. 결과는 Mac이 현재 해석하는 A 레코드(IPv4 주소) 또는 AAAA 레코드(IPv6)를 보여줍니다. IP가 업데이트된 DNS 레코드와 일치하면 플러시가 작동하여 새 레코드가 인식되고 있는 것입니다.

여전히 이전 IP가 보인다면 문제는 로컬 캐시가 아닙니다. 업스트림 리졸버를 통해 여전히 전파 중이거나, DNS 변경이 완전히 적용되지 않았을 가능성이 높습니다. 그 경우 몇 분 더 기다렸다가 다시 시도하세요.

Terminal에서 nslookup example.com 또는 dig example.com으로 해석된 IP를 직접 확인할 수도 있습니다.

한 번의 플러시, 완료

macOS에서 DNS 플러시는 몇 초밖에 걸리지 않는 한 줄의 명령어입니다. 결과는 가시적인 방식으로 지속되지 않으며, 그저 오래된 캐시된 답을 지워 Mac이 새로 시작할 수 있도록 합니다. 기다리던 DNS 변경이 전파되었다면 즉시 올바르게 해석될 것입니다. 아직 전파되지 않았다면 플러시는 여전히 해를 끼치지 않으며, 전파가 완료되면 다시 실행할 수 있습니다.

NetUtil은 Ping, Traceroute, Whois, 포트 스캔, Netstat과 함께 DNS 조회 도구를 포함합니다. Apple이 macOS Big Sur에서 제거한 네트워크 유틸리티를 대체하는 무료 macOS 앱입니다.