ZOBACZ AKTUALIZACJĘ PONIŻEJ!
Lubię też korzystać z Dnsmasq na moim komputerze lokalnym i miałem ten problem. Oto rozwiązanie:
Od 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/
nie jest domyślnie obecny; musisz go stworzyć sam.
Również ze strony podręcznika:
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.
Jeśli więc chcesz, aby wszystkie zapytania DNS dotyczące domeny najwyższego poziomu dev
były kierowane do lokalnego serwera nazw, wykonaj następujące czynności:
# mkdir /etc/resolver
# echo 'nameserver 127.0.0.1' > /etc/resolver/dev
configd
nie zmienia plików /etc/resolver/
, więc to ustawienie będzie obowiązywać przez zmiany sieciowe i ponowne uruchomienie.
AKTUALIZACJA 17 lipca 2012 r
Niestety, od OS X Lion górny resolver (jak pokazuje scutil
--dns
) znika, gdy nie są aktywne żadne interfejsy:
# 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
Zauważ, że resolver # 1 jest pusty, ale pozycja pochodnego serwera nazw / etc / resolver pozostaje.
Okazuje się, że ponieważ możesz określić domenę resolvera bezpośrednio w pliku / etc / resolver /, określenie specjalnej internetowej domeny głównej .
powoduje utworzenie globalnego wpisu resolvera, który wygląda następująco:
resolver #8
nameserver[0] : 127.0.0.1
Teraz wszystkie zapytania DNS są kierowane do hosta lokalnego, nawet w trybie offline.
Oczywiście nadal będziesz musiał rozwiązać wybrane domeny jako 127.0.0.1, używając czegoś takiego jak opcja --address dnsmasq:
# dnsmasq --address=/dev/127.0.0.1
W podsumowaniu:
- Ustaw wszystkie serwery dns interfejsu sieciowego na 127.0.0.1:
Networksetup -setdnsservers Ethernet 127.0.0.1
Networksetup -setdnsservers Wi-Fi 127.0.0.1
...
- Utwórz plik / etc / resolver / cokolwiek:
serwer nazw 127.0.0.1
domena .
- Skonfiguruj lokalny serwer DNS i bądź szczęśliwy.
por. http://opensource.apple.com/source/configd/configd-395.11/dnsinfo/dnsinfo_flatfile.c