OSX Mountain Lion에 대한 DNS 조회는 어떻게 구성됩니까? name and address resolution # or the

resolv.conf를 cat하면 다음 메시지가 표시됩니다.

#
# 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.
#

DNS 항목을 추가하려고합니다. 호스트 파일을 편집하고 dns 캐시를 플러시했지만을 (를) 사용하면 이름이 확인되지 않습니다 host servername. 아마도 파일 host을 보도록 구성되지 않았다고 생각했습니다 hosts. 새 항목을 해결하려면 어떻게해야 resolv.conf합니까?



답변

호스트 도구는 간단하지 않습니다 이름을 확인 (시스템 이름 해결 프로그램을 사용하여에서와 같이) 실제로 DNS 서버를 쿼리 (같이 가능 / 53 및 TCP / 53 udp와 패킷을 전송) : 그것을 알고도 로컬 사용하지 않는 hosts파일을 .

gethostbyname () 및 유사한 libc 함수에서와 같이 운영 체제의 분석기를 테스트하려는 경우 추가 한 이름을 핑 (ping) 할 수 /etc/hosts있으며 해당 파일에 넣은 내용을 존중합니다.

또한 이미 Mac OSX에서 DNS 조회를 사용하지 않는다는 것을 알았으므로 /etc/resolv.conf쿼리 할 DNS 서버를 구성하는 올바른 방법은 네트워크 설정 GUI 및 / 또는 networksetup명령 줄 도구에 있습니다. 솔직히 소스를 시도하는 순서를 구성 할 수 있는지는 모르겠지만 표준 동작은 /etc/hosts먼저 서버 를 시도 하고 그 후에 서버 를 시도 하는 것입니다.


답변

다음 networksetup명령을 통해 OS X에서 DNS 확인자를 추가 할 수 있습니다 .

sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

네트워크 연결 이름을 적절하게 삽입하십시오. 이러한 해결 프로그램은 자동으로 생성되므로 resolv.conf에 나타나지만 resolv.conf를 직접 편집해도 해당 해결 프로그램이 사용되지는 않습니다. 리졸버가 plist에 어딘가에 저장되어 있다고 가정합니다. 다시 검색하여보고하겠습니다.

추가 편집 : DNS 서버를 저장하는 XML plist 파일은 /Library/Preferences/SystemConfiguration/preferences.plist입니다.

/ private / etc / hosts의 호스트 파일은 특정 이름을 강제로 해결하도록 작동해야합니다 (/ etc는 / private / etc에 대한 심볼릭 링크입니다). 구문을 확인하고 올바른 파일을 편집하고 있습니까?