Mac OS X에서 DNS가 확인되지 않음


100

일부 동료들이 Mac에서 문제를 겪고 있습니다. DNS 해상도는 Mac OS X에서 작동하지 않습니다. Snow Leopard 10.6.8을 실행하고 있습니다. OS X에서 실행되는 Windows 7 가상 머신 (VMware Fusion 3.1.3)에서 DNS를 사용할 수 있습니다. 컴퓨터는 2011 년 초 15 인치 MacBook Pro입니다.

그들이 시도하지 않은 것들 :

  • 공항 켜기 / 끄기
  • 재부팅
  • 와이파이 대신 유선 연결 사용
  • 연결 자격 증명을 삭제하고 다시 추가
  • Mac 방화벽 끄기
  • 고정 정적 IP 사용
  • DNS 서버 수동 설정
  • mDNSResponder 재시작
  • 이 다른 질문 의 수정

응답 편집 Martín의 답변 :

사용하려는 DNS를 핑 (ping) 할 수 있습니까?

$ ping apple.com
ping: cannot resolve apple.com: Unknown host

사용하려는 DNS의 IP 주소는 무엇입니까?

이것은 DHCP로 제공되는 회사 DNS 서버이며 다른 사람들에게 잘 작동합니다. 또한 Google의 8.8.4.4 및 205.171.3.65를 시도했습니다 (GRC의 DNS 벤치 마크에서 가장 빠름).

8.8.8.8 (google) 또는 OpenDNS 208.67.222.222 또는 208.67.220.220을 사용해 보셨습니까?

작동하지 않습니다. Chrome 출력을 참조하십시오.

DNS 조회가 실패하여 www.apple.com에서 서버를 찾을 수 없습니다. DNS는 웹 사이트 이름을 인터넷 주소로 변환하는 네트워크 서비스입니다. 이 오류는 대부분 인터넷에 연결되어 있지 않거나 잘못 구성된 네트워크에 의해 발생합니다. 응답하지 않는 DNS 서버 또는 방화벽으로 인해 Chrome이 네트워크에 액세스하지 못하게 할 수도 있습니다.

해당 호스트를 ping 할 수 있습니까?

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from
8.8.8.8: icmp_seq=0 ttl=58 time=3.925 ms

빈 사용자 만들기

게스트 사용자 계정이 생성되었으며 게스트 계정을 사용할 때 DNS 문제가 계속 발생했습니다.

nslookup과 파기 모두 잘 작동

$ nslookup www.apple.com 8.8.8.8
Server:  8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
www.apple.com canonical name = www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net canonical name = www.apple.com.edgekey.net.
www.apple.com.edgekey.net canonical name = e3191.c.akamaiedge.net.
Name: e3191.c.akamaiedge.net
Address: 184.24.141.15

 

$ dig @8.8.8.8 www.apple.com
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 www.apple.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11298
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION: ;www.apple.com.   IN A
;; ANSWER SECTION:
www.apple.com.  1041 IN CNAME www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net. 38 IN CNAME www.apple.com.edgekey.net.
www.apple.com.edgekey.net. 8794 IN CNAME e3191.c.akamaiedge.net.
e3191.c.akamaiedge.net. 17 IN A 184.24.141.15
;; Query time: 4 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Oct 4 09:25:28 2011
;; MSG SIZE  rcvd: 158

DNS 캐시 플러시도 완료되었지만 도움이되지 않았습니다.

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

편집 2 :

$ cat /etc/resolv.conf
#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
domain {redacted}.com
nameserver 8.8.8.8
nameserver 208.67.222.222

사자도 나를 위해 일어납니다.
dkagedal

Mavericks, 10.9.4에서 나를 위해 일함
greg7gkb

이것은 레오파드에서 요세미티로 사용자와 네트워크 관리자의 삶을 썩은 역사적 문제처럼 보입니다. 그래도이 문제가 계속 발생하면 둘 이상의 인터페이스가 활성화되어 있고 conf가있는 경우 명확하게보고하십시오. DHCP 서버에서 (다른 측면에서). 왜? 나는 다른 유닉스와 Mac에서 그런 문제를 보지 못했지만 (많은 것을 가지고 있지는 않지만) DNS 정보 소스를 향한 인터페이스가 하나 이상 없습니다.
dan

그 날에 같은 문제를 해결 DNS 구성 (주문 변경 또는 항목을 제거) 변경하려고
MEMS

답변:


90

해결책은 mDNSResponder를 반송하는 것으로 나타났습니다.

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

이것은 이 서버 결함 질문 과 다른 동료에 의해 얻어졌습니다 .

OS X 10.10.0 – 10.10.3, 요세미티

분명히 , mDNSResponder는 Yosemite (OS X 10.10)에 존재하지 않습니다. 대신 이러한 문제를 해결하기 위해 descoveryd를 다시 시작할 수 있습니다.

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist

OS X 10.10.4 이상, 요세미티

OSX 10.10.4에서 mDNSResponder가 다시 도입 되었습니다 . 따라서 첫 번째 것을 사용하면 다시 작동합니다.


5
그러나 이것은 실제로 만족스러운 답변이 아닙니다. 나는 그것이 처음부터 일어나는 것을 막는 방법을 알아야합니다.
dkagedal

1
@dkagedal 이것은 실제로 우리가 얻을 수있는 좋은 답변입니다-이것은 Mac이 DNS 항목을 캐시하여 모든 DNS 조회에 대해 DNS 서버 (라우터 등)에 충돌하지 않도록하기 때문에 발생합니다. 이 캐시는 필요하지만 훌륭하지만 항목을 찾을 수 없을 때 더 나은 동작이 있으면 좋을 것입니다 (버그라고 생각합니다). 어쨌든 캐시에 시간 초과가 있습니다. 내 컴퓨터에서 10 분 정도 기다렸을 때이 상황은 스스로 해결되었습니다. 대부분의 사용자에게 기존 동작은 문제가되지 않으므로 Apple이 조만간 변경하지 않을 것입니다.
Matt

2
물론 이것은 얻는 것만 큼 좋지 않습니다. 다른 OS에는이 문제가 없습니다. DNS에는 아무런 문제가 없습니다. www.google.com에 대한 기록은 사라지지 않았습니다. MacOS 캐시는 잃어 버렸고 다시 가져 오지 않습니다. 그리고 그것은 수정이 필요한 버그입니다.
dkagedal

1
10.9 에서이 문제가 발생했으며 솔루션이 완벽하게 작동했습니다. 필자의 경우 DNS는 전체 이름을 확인했지만 짧은 이름은 확인하지 않았습니다.
sorin

1
@Matteo 어쩌면 파일이 존재하지 않거나 Yosemite에 대한 답변을 업데이트해야 할 수도 있습니다. 이 문제가 있습니까? 해당 명령을 실행하면 문제가 해결됩니까?
CajunLuke

10

사실, 당신이 사용하고 싶을 것 같아요

scutil --dns

scutil -r hostname

이 명령은 / etc의 플랫 파일과 달리 configd의 동적 저장소를 사용합니다.이 파일은 단일 사용자 모드에서만 그리고 네트워크에 연결되지 않은 시스템에서만 읽습니다.

man scutil   # or

scutil --help  

3
이러한 명령이이 문제를 해결하는 데 도움이되는 이유는 설명하지 않습니다. 그들은 심지어? 또는 이것은 다른 답변 중 하나 또는 다른 것에 대한 주석으로 의미 되었습니까?
dkagedal

scutil의 한 가지 가능한 이점은 컴퓨터가 mDNSResponder를 검색했는지 여부에 관계없이 작동 할 수 있다는 것입니다. 소개 전부터 시작됩니다.
DA Vincent

1
이 명령은 문제를 해결하지 못합니다
Radu Simionescu

7

OSX (및 일반적으로 UNIX)에서 이름 확인은 /etc/resolv.conf(OS X가 내가 기억할 수있는 한 자동으로 생성됨)에있는 파일의 DNS IP 주소에서 가져옵니다.

당신은 내 마음에 오는 거의 모든 것을 시도했기 때문에 다음과 같이 묻고 싶습니다.

  • 사용하려는 DNS를 핑 (ping) 할 수 있습니까?
  • 사용하려는 DNS의 IP 주소는 무엇입니까?
  • 8.8.8.8 (google) 또는 OpenDNS 208.67.222.222 또는 208.67.220.220을 사용해 보셨습니까?
  • 호스트를 핑할 수 있습니까?

마지막으로 일반적으로 좋은 테스트는 빈 사용자를 만들고 새 사용자가 동일한 문제를 보이는지 확인하는 것입니다. 그렇지 않은 경우 현재 사용자가 가지고있는 것을 파기 시작하여 문제를 일으킬 수 있습니다. 또한 실패하면 이것이 "시스템"과 관련된 것임을 알 수 있습니다.

또한 콘솔을 둘러보고 관련이 있거나 여기에 붙여 넣을 수있는 것을 발견 할 수 있는지 확인하십시오.

마지막으로, 당신의 맥은 두 가지 중요한 DNS 명령을 함께 제공 nslookup하고 dig.

따라서 Google 서버를 사용하여 www.apple.com을 해결하려면 다음을 입력하십시오.

nslookup "호스트 해결" "사용할 DNS 서버". 예 :

$ nslookup www.apple.com 8.8.8.8
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
www.apple.com   canonical name = www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net    canonical name = www.apple.com.edgekey.net.
www.apple.com.edgekey.net   canonical name = e3191.c.akamaiedge.net.
Name:   e3191.c.akamaiedge.net
Address: 184.24.141.15

NSLookup은 오래된 명령입니다 (몇 년 전에 더 이상 사용되지 않고 DIG로 대체되었지만 구문을 사용하기가 너무 좋았 기 때문에 추측하기에는 너무 좋았습니다). "대체"는 dig훨씬 강력한 명령입니다. 더 미쳤다.

동일한 쿼리를 수행하려면 다음을 입력하십시오.

@ 8.8.8.8 www.apple.com 파기

여기에 출력이 있습니다 :

$ dig @8.8.8.8 www.apple.com

; <<>> DiG 9.7.3 <<>> @8.8.8.8 www.apple.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17356
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.apple.com.         IN  A

;; ANSWER SECTION:
www.apple.com.      1782    IN  CNAME   www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net. 42 IN CNAME   www.apple.com.edgekey.net.
www.apple.com.edgekey.net. 21581 IN CNAME   e3191.c.akamaiedge.net.
e3191.c.akamaiedge.net. 2   IN  A   184.24.141.15

;; Query time: 26 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Oct  3 21:21:49 2011
;; MSG SIZE  rcvd: 158

보시다시피, 발굴은 훨씬 더 "장황하다"(도대체 무슨 일인지 디버그하는 것이 좋습니다). 발굴의 힘은 수행하려는 쿼리 유형을 지정할 수 있다는 사실에서 비롯됩니다 (다른 것 중에서도).

어쨌든 이러한 명령의 정확한 결과를 알려주십시오.


질문에 대한 편집 내용을 참조하십시오.
CajunLuke

@CajunLuke hmmmm 흥미로운… cat /etc/resolv.conf 출력을 질문에 추가해도 될까요?
Martin Marconcini

편집했습니다. (의견을 맞추기위한 패딩)
CajunLuke

@CajunLuke 난 당황 해요. 루트로 돌아가 봅시다. 이것은이 머신에서만 발생하며 OSX에서만 VM은 정상입니다. Parallels 또는 VMware가 문제를 일으키는 것으로 의심되기 시작했습니다. 이 VM은 어떤 유형의 네트워크를 사용합니까? 브리지? 공유?
Martin Marconcini

1
또는 당신이 정말로 짧은 원한다면 당신은 항상 할 수 있습니다 ... apple.com을 발굴 + short ...
Pryftan

7

같은 문제가 발생했습니다… 그리고 mDNSResponder를 다시 시작하는 동안 "작동"하는 것처럼 보이지만 매 시간마다 두 번씩 다시 시작합니다.

따라서 지금은 dnsmasq를 로컬로 실행하여 문제를 "해결했습니다" . 하기 위해서:

  • dnsmasq 빌드 (tgz 다운로드 및 make또는 brew install dnsmasq)
  • 이것을 dnsmasq.conf파일에 넣으십시오 .

    resolv-file=resolv.conf
    user=nobody
    group=nobody
    interface=lo0
    cache-size=1024
    
  • 이것을 resolv.conf파일과 같은 디렉토리 에있는 파일에 넣으십시오 dnsmasq.conf(nb : not /etc/resolv.conf ).

    nameserver 8.8.8.8
    nameserver 4.2.2.1
    nameserver 4.2.2.2
    
  • 실행 dnsmasq으로 sudo dnsmasq --no-daemon --log-queries -C dnsmasq.conf. 출력은 다음과 같아야합니다.

    ...
    dnsmasq: reading resolv.conf
    dnsmasq: using nameserver 4.2.2.1#53
    dnsmasq: using nameserver 4.2.2.2#53
    dnsmasq: using nameserver 8.8.8.8#53
    dnsmasq: read /etc/hosts - 6 addresses
    
  • 네트워크 환경 설정을 열고 127.0.0.1유일한 DNS 서버 인지 확인하십시오 (네트워크 환경 설정-> 고급-> DNS-> 127.0.0.1 추가)

상황이 다시 잘 작동하기 시작해야합니다.

작업이 완료되면 및 옵션 dnsmasq없이 실행할 수 있으므로 백그라운드에서 시작되므로 터미널 창을 열어 둘 필요가 없습니다.--no-daemon--log-queries


16 시간 연속으로 인터넷을 검색 한 후에 이것이 내부 회사 이름을 확인하고 분할 네트워킹이 제대로 작동 할 수있게 해주는 유일한 솔루션이라는 것을 지적하고 싶습니다. 이 의견을 보내 주셔서 감사합니다.
Ron Thompson

또한 OS X 엘 캐피에 순서대로 스크립트가이 설정에, 내 랩 지적 것 openconnect같은 명령과 함께 파이썬 스크립트에 명령을 networksetup -setdnsservers 127.0.0.1하고 networksetup -setsearchdomains "$COMPANY_NAME".com. 당신의 dnsmasq명령에 추가하고 모두 설정되었습니다! 이 의견 덕분에 안정적인 VPN 솔루션을 마침내 얻게되었습니다.
Ron Thompson

미래의 독자들을 위해, 나는 직장에서 내 상자에 ssh하고 이름 서버에 대해 어떤 IP를 가지고 있는지 결정한 다음 해당 IP를 8.8.8.8 (Googles DNS 서버) 이하의 resolv.conf에 하드 코딩하는 것이 가장 쉽다는 것을 알았습니다. 이를 통해 회사 서버를 통하지 않고도 회사 이름이 아닌 모든 이름을 올바르게 확인할 수 있으며 개인 정보 보호 및 속도에 유용합니다. 하드 코딩이 진행되는 한, 그 IP는 곧 변경되지 않을 것이며, 만약 그렇다면, 유일한 영향을받지는 않을 것이며 두 줄을 편집하는 것은 쉽지 않을 것입니다.
Ron Thompson

dnsmasq를 시작하려고 할 때 주소 127.0.0.1이 이미 사용 중이라고 말합니다. 어떻게해야합니까? High Sierra
IceFire

@IceFire 나는 이것이 오래되었다는 것을 알고 있지만 이미 해당 포트에 서비스가 바인딩되어 있음을 의미합니다 (53). 기술적으로 그것은 EADDRINUSE 오류가 발생한다는 것을 의미 하지만 거기에 가지 않을 것입니다 :)이 답변에 관해서는 흥미 롭습니다. 비슷한 문제가 있지만 다른 대답으로 해결할 수 있다고 생각합니다. 권한있는 DNS 서버를 가지고 있기 때문에 적어도 홈 네트워크에 사용할 필요가 없을 때만 해결할 수 있다고 생각합니다. 지역 및 내가 사용하는 것). 오랫동안 유닉스 사용자로서 /etc/resolv.conf를 사용할 수 있다는 사실 은 매력적이지만 다른 것을 먼저 시도 할 것입니다.
Pryftan

6

나는 똑같은 증상을 보였고 (문제 해결에 시간을 보냈다), 내가 엉망 /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist이고 내가 한 일이 잘못 되었다는 것을 깨달았을 때 해결할 수있었습니다 . 백업에서 복원했으며 컴퓨터가 호스트 이름을 다시 확인할 수있었습니다.

솔루션에 오기 전에 SOCKS5 프록시를 통해 ssh -D터널을 통해 DNS 조회를 시도 하면 인터넷을 탐색 할 수 있다는 것도 알았습니다 .


1
우리 회사는 매월 Mac을 "Genius bar"로 가져 가서 매번 하드 드라이브를 닦고 다시 시작하는 것이 유일한 해결책이었습니다. 게시물을보고 com.apple.mDNSResponder.plist를 삭제하고 재부팅 한 후 문제가 해결되었습니다. 나는 당신에게 10 억 번 투표 할 수 있기를 바랍니다.
Thomas Thorogood

1
삭제하십시오 com.apple.mDNSResponder.plist! @TomThorogood가 제안한대로했습니다. 돌아 오는 데 어려움이 있습니다. 파일을 다시 넣고 다시 시작해도 인터넷에서 응답을 얻지 못했습니다. sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist도움보다.
Pavel Binar

5

증상이 약간 다르다는 것을 제외하고는 매우 비슷한 문제가있었습니다.

내 사용자는 이름 (로컬 NAS, Google 등)을 확인할 수 없었지만 동일한 iMac (OS X 10.7.4)의 게스트 사용자는 정상적으로 작동했습니다.

언급 한대로 mDNSResponder를 플러시하고 다시 시작하면 잠시 동안 작동했습니다. iMac이 잠자기 모드로 설정되어 있어도 계속 작동하지만 재부팅하면 항상 실패합니다.

플러시 / 재시작이 작동을 멈췄을 때 다른 이유 / 해결책을 찾았으며 방화벽과 관련이 있음을 알았습니다. 내 (OS X) 방화벽 설정으로 인해 무엇이 원인인지 알 수 없지만 방화벽 설정을 복원하면 작동합니다.

내가 사용한 기본 설정을 복원하려면 :

sudo cp /usr/libexec/ApplicationFirewall/com.apple.alf.plist /Library/Preferences/com.apple.alf.plist

이 복원으로 모든 사용자 지정 규칙이 제거되었을 것입니다.

몇 달 동안 슬픔을 겪고 있었기 때문에이 문제의 내 버전을 공유하고 싶었습니다.이 게시물은 인터넷에서 가능한 최고의 솔루션 모음입니다!


4

요세미티 (10.10) 에서이 문제를 겪었습니다. discoverydCPU를 너무 많이 사용 하여 키 데몬이 종료되었음을 알 수 있습니다.

2014/10/22 3:50:07.000 PM kernel[0]: process discoveryd[49] thread 1251 caught burning CPU! It used more than 50% CPU (Actual recent usage: 68%) over 180 seconds. thread lifetime cpu usage 90.016372 seconds, (74.516637 user, 15.499735 system) ledger info: balance: 90007570271 credit: 90007570271 debit: 0 limit: 90000000000 (50%) period: 180000000000 time since last refill (ns): 131905306167 

이상하게 재부팅해도 다시 시작되지 않았습니다.

다음을 사용하여 서비스를 수동으로 다시 시작했습니다.

sudo launchctl kickstart -k system/com.apple.networking.discoveryd

이제는 모든 것이 잘되었습니다.


1
이것은 요세미티에서도 저에게 해결책이었습니다. host, dig 및 Chrome의 일부 세부 사항은 제대로 작동했지만 ping, telnet, ssh, firefox 및 safari는 호스트 이름을 확인할 수 없습니다. 이 솔루션은 내 문제를 해결했습니다.
Ryan Hoegg

성가신 일은 항상 나를 위해 일어납니다. 서비스를 다시 시작해야합니다.
Callum Rogers

2

10.6.8과 동일한 문제가 있습니다. Apple Store를 처음 방문했을 때 시스템이 복원되었습니다. 그러나 그 후, 해외에있을 때 DNS가 다시 고장 나서 시스템 DVD가 없었습니다. 그 당시 나는이 스레드를 발견하고 /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist@freezedpeanuts와 @Tom Thorogood마다 삭제했습니다 .

문제를 해결했지만 놀랍게도 DNS는 며칠 후 세 번째로 침입했습니다. 10.6.3의 시스템 이미지를 찾아서

  1. /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist시스템 이미지에서 복사 했습니다.
  2. sudo chown root /System/Library/LaunchDaemons/com.apple.mDNS*
  3. 재부팅

문제가 해결되었습니다.

이제는 한 달에 한 번 정도 주기적으로 고장이 발생하며 재부팅 절차를 제외하고 복원 절차는 위 단계로 진행됩니다.

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist



2

나는 OP와 똑같은 문제를 겪었다. 네트워크 설정 도구를 사용하여 주어진 네트워크 이름에 대해 잘못된 DNS가 구성되어 있음을 발견했습니다.

networksetup -getdnsservers <networkname>

192.168.0.1을 DNS로 나열했습니다. scutil --dns를 사용하면 리졸버 # 2가 nameserver [0] : 192.168.0.1을 사용한 것과 비슷한 결과를 얻었습니다.

명령 사용

networksetup -setdnsservers <networkname> 192.168.188.1 8.8.8.8

주어진 네트워크에 대한 DNS를 재구성하고 VPN에 연결될 때 로컬 및 글로벌 컴퓨터의 이름을 확인할 수있었습니다.


2

내 경우, 다른 모든 괜찮다고 :에는 mDNSResponder 실행하고 작업을했다 host/ nslookup일, 모두 /etc/resolv.confnetworksetup(예를 들어 모든 것을에도 불구하고 올바른 DNS 서버 등 일반적으로 DNS 해상도를보고 ping필연적으로 몇 시간 후 어느 시점에 작동이 중지) 신병.

이 특정 문제는 다소 없을 수 있지만 어쨌든 대답으로 여기에 설명하겠습니다.

기계가 느려지기 시작했을 때만 눈에 띄었지만 동일한 프로세스가 많이 실행되었습니다 . sensu-client구체적으로.

이 plist 파일로 시작되도록 구성했습니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
  <dict>
  <key>KeepAlive</key>
  <true/>
  <key>RunAtLoad</key>
  <true/>
  <key>WorkingDirectory</key>
  <string>/etc/sensu</string>
  <key>UserName</key>
  <string>root</string>
  <key>Label</key><string>org.sensuapp.sensu-client</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/bin/sensu-client</string>
      <string>-d/etc/sensu/conf.d/</string>
      <string>-b</string>
    </array>
  </dict>
</plist>

-b에 플래그 sensu-client가 데몬의 역할을, 배경에 포크합니다. 그러나 모든 launchd것은 원래 프로세스가 종료되었으므로 KeepAlive플래그 에 따라 프로세스 가 다시 시작된다는 것을 알 수 있습니다. 이로 인해 수천 개의 분기 프로세스가 백그라운드에 남게되며, 심지어 실행되고 있다는 사실에 대한 현명한 시작도 될 수 없습니다.

이러한 수천 개의 프로세스 (모두 sensu-client시작된 구성을 작성했던 소프트웨어)가 mDNSResponder에 동시에 요청을 해서 DNS 캐시의 로컬 서비스 거부가 효과적으로 발생했다고 생각 합니다 . 이러한 프로세스를 종료하고 시작된 주어진 plist를 수정하면 결국 문제가 해결되었습니다.

plist 수정은 -bsensu-client 호출에서 (background / daemonise) 플래그 를 제거하는 것이 었습니다 . 이것은 sensu의 잘못이 아닙니다. 이 plist는이 회사의 전 시스템 관리자가 작성했습니다.


2

다음은 DNS 문제를 해결하는 데 도움이되는 몇 가지 고급 명령입니다.

  • dig루트 이름 서버를 나열하기 위해 실행하십시오 .
  • 도메인에 dig example.com대한 DNS 조회를 실행 하려면 실행 하십시오 example.com.
  • 다음을 기준으로 하드웨어 포트를 나열하십시오 networksetup -listallhardwareports.
  • 클라이언트가 DHCP / BOOTP 서버에서 승인 한 DHCP / BOOTP 패킷의 출력을 확인하십시오 ipconfig getpacket en0.
  • 다음으로 DNS 구성을 확인하십시오 scutil --dns..
  • mDNSResponder프로세스가 다음을 수행하고 있는지 확인하십시오 ps wuax | grep mDNSResponder..
  • arp -ad다음 man arp을 수행 하여 ARP 번역 항목을 플러시합니다 ( 도움을 위해 실행 ). 출처

mDNSResponder프로세스 를 디버그하려면 다음 명령이 도움이 될 수 있습니다.

(sleep 1 && sudo killall -INFO mDNSResponder &); log stream | grep mDNSResponder

위의 명령은 SIGINFO프로세스에 신호를 보내 디버깅 세부 정보를 로그 출력으로 덤프하여 읽을 수 있습니다.


1

Wi-Fi를 껐다가 다시 켜는 것이 도움이되었습니다.

10.9.1의 MacBook Pro

특히 당신이 와이파이를 끈 다음 다시 부팅하는 경우. 추가 지연 및 IP / 네트워크 연결없이 시작하면 네트워크 재가입 요청이 성공할 가능성이 높아집니다.


1
질문은 약간의 편집이 필요할 수 있지만, 여전히 (이 의견을 작성할 당시) 근로자들은 이미 Wi-Fi를 껐다가 다시 켰다 고 말합니다. 이 답을 철회 할 수 있을까요?
DA Vincent

Wi-Fi를 껐다 켜는 게시물에 의견을 추가 할만 큼 평판이 좋지는 않지만 나에게 도움이되었습니다. 답을 철회하는 것은 어리석은 일입니다.

제안을 다시 시도하려면 +1하십시오. 다수의 답변은 많은 사람들을 돕고 각 라우터는 시간 초과 및 동작이 다릅니다.
bmike

1

이것은 아마도 아무도 도움이되지 않지만 실수로 얼마 전에 DNS가 특정 도메인에 대해 다운되었을 때 폴더에 파일을 만들었습니다.

/ etc / resolver /

이로 인해 2 년 후 특정 이름이 해석되는 것을 막을 수있었습니다.


대단히 감사합니다. 이것이 내 문제였습니다. 몇 시간 동안 디버깅을 해왔으며 / etc / resolver를 살펴봤을 때 잘못된 IP를 가진 "test"라는 파일을 찾았습니다.
keyser

1

불행히도 이것 중 어느 것도 나를 도우 지 않았고, 그것을 알아 내려고 커피 테이블에 대고 내 머리를 때리려 고 한 시간 후에 밝혀졌습니다. 무언가, 어딘가에 ... 어딘가에서 ... /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist파일을 제거 하고이 문제가 발생한 이유였습니다.

이 오류 메시지를 볼 때 이것을 깨달았습니다. /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist: No such file or directory

다음은 El Capitan의 버전 사본입니다. https://gist.github.com/tripflex/e7147690d1768dc74b1dd626614573c0

그 요지의 코드는 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.apple.mDNSResponder.reloaded</string>
    <key>OnDemand</key>
    <false/>
    <key>InitGroups</key>
    <false/>
    <key>UserName</key>
    <string>_mdnsresponder</string>
    <key>GroupName</key>
    <string>_mdnsresponder</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/mDNSResponder</string>
    </array>
    <key>MachServices</key>
    <dict>
        <key>com.apple.mDNSResponder</key>
        <true/>
            <key>com.apple.mDNSResponder.dnsproxy</key>
            <true/>
    </dict>
    <key>Sockets</key>
    <dict>
        <key>Listeners</key>
        <dict>
            <key>SockFamily</key>
            <string>Unix</string>
            <key>SockPathName</key>
            <string>/var/run/mDNSResponder</string>
            <key>SockPathMode</key>
            <integer>438</integer>
        </dict>
    </dict>
    <key>POSIXSpawnType</key>
    <string>Interactive</string>
    <key>EnablePressuredExit</key>
    <false/>
</dict>
</plist>

0

결과적으로 문제를 해결하려면 검색 도메인을 구성하고 시스템 환경 설정 dns 구성 아래의 검색 도메인 필드에 추가해야합니다. 기본적으로 검색 도메인은 .local과 같은 방식으로 작동하지만 대신 .local이 작동합니다.

이것이 작동하려면 검색 도메인을 DNS 서버에서 마스터 영역으로 설정해야합니다.


0

호스트 서버를 찾는 것과 비슷한 문제가 있습니다. 서버에서 실행중인 21 개의 iMac (El Capitan, 최근 업그레이드)이 있으며 하나만 바인딩되지 않습니다. 이 수정은 일반적으로 SysPref의 사용자 및 그룹을 통해 매우 간단합니다. 호스트 서버를 삭제하고 리 바인드하여 드롭 다운 옵션에서 사용 가능한 서버를 찾으십시오. 그러나 알 수없는 이유로 서버는로 표시됩니다 unkown-00-00-12-34-56-78.home.이 서버의 MAC 주소입니다. 터미널에서 이것을 실행했습니다.

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

SysPref의 서버에 바인딩하기 위해 돌아 왔고 올바른 서버 이름 옵션이 잠깐 나타난 다음 바로 내 눈앞에서 "unkown-00-00-12-34-56-78.home"으로 변경되었습니다!


0

허용 된 답변의 명령을 따르는 경우 :

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

경고가 발생할 수 있습니다.

시스템 무결성 보호가 작동하는 동안 작업이 허용되지 않습니다

전원을 꺼야합니다. 여기에 전체 지침 : https://www.howtogeek.com/230424/how-to-disable-system-integrity-protection-on-a-mac-and-why-you-shouldnt/


0

내 경우에는 과거에 OpenDNS를 설치했지만 깨끗하게 제거되지 않았습니다. DNSdnscrypt-proxy와 같은 여러 DNS 관련 프로세스가 실행되고있었습니다. Activity Monitor에서 강제로 종료 할 수는 없었지만 Library / LaunchDaemons에서 .plist 파일을 제거하여 다시 시작할 때 시작되는 것을 막을 수있었습니다.


0

설정-> 네트워크-> 고급-> DNS로 이동하십시오. 그런 다음 문자 그대로 DNS를 변경하십시오 (예 : DNS 항목 순서 변경). 다음 화면에서 "확인"을 클릭 한 다음 "적용"을 클릭하십시오. 당신이 한 특별한 변화가 중요하다는 생각에 속지 마십시오. "적용"버튼의 마법입니다.

~ $  time nslookup www.google.com
;; connection timed out; no servers could be reached


real    0m21.041s
user    0m0.006s
sys     0m0.010s

 ~ $  time nslookup www.google.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   www.google.com
Address: 172.217.5.4


real    0m0.079s
user    0m0.006s
sys     0m0.010s

0

나를 위해 일한 것은 DNS 서버 및 검색 도메인에서 모든 서버 항목을 제거하는 것이 었습니다.

시스템 환경 설정 → 네트워크 → 고급 ... → DNS


-1

이전 Mac Book의 Snow Leopard에서 Mountain Lion으로 업그레이드 한 후 시스템에서 DNS를 확인할 수 없습니다. 플러싱, 다시 시작, 아무것도 도움이되지 않습니다. WiFi를 다른 액세스 포인트 (내 전화)로 변경하면 도움이됩니다.

Mountain Lion은 DHCP 네트워크 설정에 새 클라이언트 필드를 추가합니다. 이 필드를 채우면 와이파이 액세스 포인트가 행복해 보였습니다. 그것을 비워두면 와이파이 연결이 성공한 것처럼 보이지만 아무것도 통과하지 못했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.