아래 업데이트를 참조하십시오!
로컬 컴퓨터에서 Dnsmasq를 사용하는 것도 즐겁고이 문제도있었습니다. 해결책은 다음과 같습니다.
보낸 사람 man 5 resolver
:
The configuration for a particular client may be read from a file
having the format described in this man page. These are at present
located by the system in the /etc/resolv.conf file and in the files
found in the /etc/resolver directory.
/etc/resolver/
기본적으로 존재하지 않습니다. 직접 만들어야합니다.
또한 매뉴얼 페이지에서 :
domain
Domain name associated with this resolver configuration. This
option is normally not required by the Mac OS X DNS search system
when the resolver configuration is read from a file in the
/etc/resolver directory. In that case the file name is used as the
domain name.
따라서 최상위 도메인에 대한 모든 DNS 쿼리를 dev
로컬 네임 서버로 라우팅하려면 다음을 수행하십시오.
# mkdir /etc/resolver
# echo 'nameserver 127.0.0.1' > /etc/resolver/dev
configd
의 파일을 변경하지 않으므로이 /etc/resolver/
설정은 네트워크 변경 및 재부팅을 통해 유지됩니다.
업데이트 2012 년 7 월 17 일
불행히도, OS X Lion에서 scutil
--dns
인터페이스가 활성화되어 있지 않으면 최상위 해결 프로그램 (으로 표시됨 )이 사라집니다.
# scutil --dns # Online
DNS configuration
resolver #1
nameserver[0] : 127.0.0.1
...
resolver #8
domain : dev
nameserver[0] : 127.0.0.1
# scutil --dns # Offline
DNS configuration
resolver #1
...
resolver #8
domain : dev
nameserver[0] : 127.0.0.1
리졸버 # 1은 비어 있지만 / etc / resolver 파생 네임 서버 항목은 남아 있습니다.
/ etc / resolver / 파일에서 리졸버 도메인을 직접 지정할 수 있기 때문에 특수 인터넷 루트 도메인을 지정하면 .
다음과 같은 글로벌 리졸버 항목이 생성됩니다.
resolver #8
nameserver[0] : 127.0.0.1
이제 모든 DNS 쿼리가 오프라인 상태에서도 로컬 호스트로 라우팅됩니다.
물론 dnsmasq의 --address 옵션과 같은 방법으로 선택한 도메인을 127.0.0.1로 해결해야합니다.
# dnsmasq --address=/dev/127.0.0.1
요약해서 말하자면:
- 모든 네트워크 인터페이스 DNS 서버를 127.0.0.1로 설정하십시오.
networksetup -setdnsservers 이더넷 127.0.0.1
networksetup -setdnsservers Wi-Fi 127.0.0.1
...
- / etc / resolver / what 파일을 만듭니다 :
네임 서버 127.0.0.1
도메인 .
cf. http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c