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

일부 동료들이 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



답변

해결책은 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가 다시 도입 되었습니다 . 따라서 첫 번째 것을 사용하면 다시 작동합니다.


답변

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

scutil --dns

scutil -r hostname

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

man scutil   # or

scutil --help


답변

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

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

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


답변

같은 문제가 발생했습니다… 그리고 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


답변

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

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


답변

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

내 사용자는 이름 (로컬 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

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

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


답변

요세미티 (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

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