mDNSResponder
다른 이름: Bonjour와 DNS
간단한 답
mDNSResponder는 모든 도메인 이름을 주소로 바꾸는 macOS 프로세스입니다. Mac의 DNS 확인자이며, 설정 없이 로컬 네트워크의 프린터, AirPlay 스피커, 공유 Mac 등의 기기를 찾아 주는 Bonjour도 실행합니다.
앱이 웹사이트를 열거나 서버에 연결할 때마다 mDNSResponder에 주소를 묻습니다. mDNSResponder는 응답을 캐시하므로 반복되는 조회는 즉시 끝납니다. 사용자 계정이 아니라 자체 시스템 계정인 _mdnsresponder로 실행됩니다.
부하는 조회하는 이름의 수를 따라갑니다. 탭이 많은 브라우저, VPN, Bonjour 기기가 많은 붐비는 로컬 네트워크는 모두 할 일을 늘립니다.
이 페이지의 내용
mDNSResponder가 CPU를 쓰는 이유
짧게 치솟는 것은 많은 새 탭, 여러 서버와 동기화하는 앱, 네트워크에 연결되는 기기처럼 조회가 한꺼번에 몰릴 때 생깁니다. 꾸준히 쓴다면 대개 조회를 반복해서 재시도하는 무언가, 이상하게 동작하는 VPN이나 DNS 필터, 또는 Bonjour 알림이 끊이지 않는 네트워크 때문입니다.
웹사이트가 이름으로는 열리지 않는데 주소로는 열리거나, 사이트가 서버를 바꿨는데 Mac이 여전히 예전 서버로 간다면 캐시가 용의자입니다.
DNS 캐시를 비우는 방법
최근 macOS에서는 터미널에서 명령 두 개로 캐시를 비우고 mDNSResponder가 다시 로드하게 할 수 있으며, 재시동은 필요 없습니다.
- 터미널을 엽니다.
sudo dscacheutil -flushcache명령을 실행하고, 암호를 물으면 입력합니다.sudo killall -HUP mDNSResponder명령을 실행합니다.
mDNSResponder가 무엇을 하는지 보는 방법
자체 시스템 계정으로 실행되므로, 활성 상태 보기는 모든 프로세스를 보도록 선택하기 전까지 이를 숨깁니다. 터미널로는 DNS와 Bonjour라는 두 가지 일을 하나씩 볼 수 있습니다.
- 활성 상태 보기를 열고 보기 → 모든 프로세스를 선택한 다음 검색 필드에
mdns를 입력합니다. _mdnsresponder 계정으로 실행되는 mDNSResponder와 root로 실행되는 mDNSResponderHelper가 보입니다. - CPU 탭의 % CPU와 네트워크 탭의 패킷 열을 지켜봅니다. 짧게 치솟는 것은 정상입니다. 웹을 보고 있지 않은데 부하가 꾸준하다면 살펴볼 만합니다.
- Mac이 어떤 DNS 서버를 쓰는지 보려면 터미널을 열고
scutil --dns명령을 실행합니다. resolver #1 아래에 대부분의 조회에 쓰이는 서버가nameserver[0],nameserver[1]등으로 나열됩니다. - mDNSResponder 자체를 통한 조회를 시험하려면
dns-sd -G v4v6 apple.com명령을 실행합니다. 주소가 도착할 때마다 출력합니다. 멈추려면 Control-C를 누르세요. - Bonjour가 네트워크에서 무엇을 찾는지 보려면
dns-sd -B _services._dns-sd._udp local.명령을 실행합니다. 주변 기기가 알리는 서비스 종류가 나열됩니다._airplay, 그리고 프린터의_ipp같은 것입니다. 멈추려면 Control-C를 누르세요.
정상적인 mDNSResponder 사용량과 문제 상황
정상: 0에 가깝고, 탭을 많이 열거나, 네트워크에 연결하거나, 네트워크의 기기가 깨어날 때 잠깐 치솟습니다.
살펴볼 만한 경우: 몇 시간 동안 CPU나 네트워크를 꾸준히 쓰거나, 어떤 네트워크에서는 이름이 확인되지 않는데 다른 네트워크에서는 됩니다. 흔한 원인은 다음과 같습니다.
- 자체 DNS 확인자를 추가하고 계속 바꾸는 VPN이나 DNS 필터. VPN이 일부 이름을 자체 서버로 보낼 때
scutil --dns에domain줄이 있는 추가 확인자가 표시됩니다. - 이름 조회를 촘촘히 반복하는 앱이나 스크립트. 연결할 수 없는 서버에 계속 재시도하는 경우가 많습니다.
- 사무실이나 공용 건물처럼 많은 기기가 Bonjour로 자신을 알리는 붐비는 로컬 네트워크.
- 느리거나 응답하지 않는 DNS 서버를 배정하는 네트워크. 조회가 기다렸다가 재시도하게 됩니다.
DNS와 Bonjour: 두 가지 일
apple.com 같은 인터넷상의 이름은 네트워크나 사용자가 설정한 DNS 서버로 갑니다. Mac 자체의 네트워크 이름처럼 .local로 끝나는 이름은 로컬 네트워크를 벗어나지 않습니다. mDNSResponder가 주변 기기에 직접 묻는데, 이것이 이름의 m이 뜻하는 멀티캐스트 DNS입니다.
그래서 scutil --dns에 mdns로 표시된 local용 확인자가 나열됩니다. 프린터나 공유 Mac에 집에서는 .local 이름으로 연결되는데 회사에서는 안 된다면, 인터넷이 아니라 회사 네트워크가 이런 로컬 알림을 막고 있는 것입니다.
자주 묻는 질문
Mac의 mDNSResponder, 무엇인가요?
모든 앱을 위해 도메인 이름을 주소로 확인하고, Bonjour를 실행해 네트워크의 프린터, AirPlay 스피커 등의 기기를 찾는 macOS 프로세스입니다.
mDNSResponder를 종료할 수 있나요?
macOS가 곧바로 다시 시작하며, 그것이 없는 동안에는 어떤 웹사이트도 조회할 수 없습니다. 잘못된 응답을 지우려면 종료하지 말고 DNS 캐시를 비우세요.
mDNSResponder가 들어오는 연결을 허용해 달라고 하는 이유는 무엇인가요?
Bonjour는 로컬 네트워크에서 자신을 알리는 다른 기기의 신호를 기다립니다. macOS 방화벽은 기본적으로 이를 허용합니다. 사용하는 방화벽이 묻는다면 허용해야 AirPlay, 프린터 찾기, 화면 공유가 계속 작동합니다.
mDNSResponder는 안전한가요?
네. macOS의 일부로 Apple이 서명했으며 /usr/sbin/mDNSResponder에 있습니다. 사용자 계정이나 root가 아니라 권한이 제한된 자체 시스템 계정으로 실행됩니다.
mDNSResponderHelper는 무엇인가요?
root로 실행되면서 mDNSResponder의 제한된 계정으로는 직접 할 수 없는 몇 가지 일을 처리하는 작은 짝 프로세스입니다. macOS의 일부이며 평소에는 유휴 상태입니다.
관련 항목
활성 상태 보기보다 나은 것을 찾고 있나요? Mac용 활성 상태 보기 대체 앱 추천을 확인하거나 용어집의 모든 용어를 둘러보세요.