Jak dodać niestandardowy serwer DNS i zachować domyślny DNS ISP w OS X Mountain Lion

9

Używam OS X Mountain Lion. Używam dnsmasqdo skonfigurowania wieloznacznych nazw domen localhost, takich jak http://local.dev , aby wskazać localhost. Ale muszę dodać 127.0.0.1 w preferencjach systemowych -> ustawienia sieciowe.

Po skonfigurowaniu 127.0.0.1 jako serwera DNS, moje domyślne serwery DNS ISP zostały nadpisane. To uniemożliwiło mi dostęp do stron internetowych. To nie jest wielka sprawa, kiedy nie ruszam komputera, mogłem ręcznie wejść na serwer DNS ISP. Ale jeśli zmienię miejsce, DNS usługodawcy internetowego ulegnie zmianie.

Próbowałem także użyć serwera DNS Google'a, ale w niektórych przypadkach nie działa. Jak mogę zarezerwować (lub zaktualizować) serwer DNS dostawcy ISP bez usuwania 127.0.0.1 jako DNS.

Z góry dziękuję.

Daiwei
źródło

Odpowiedzi:

11

Tak. Możesz to zrobić, /etc/resolverjest twoim przyjacielem.

$ man 5 resolver:

domena
Nazwa domeny powiązana z tą konfiguracją resolvera. Ta opcja zwykle nie jest wymagana przez system wyszukiwania DNS systemu Mac OS X, gdy konfiguracja resolvera jest odczytywana z pliku w katalogu / etc / resolver. W takim przypadku nazwa pliku jest używana jako nazwa domeny.

Po prostu możesz umieścić nameserver 127.0.0.1w utworzonym pliku o nazwie/etc/resolver/dev

Musisz ponownie załadować / uruchomić ponownie. Następnie przekieruje wszelkie żądania do *.devlokalnego serwera nazw.

Twoje połączenie sieciowe DNS pozostaje włączone automatycznie, więc poradzi sobie ze wszelkimi zmianami w twoim środowisku.

Edycja: Właśnie znalazłem https://serverfault.com/a/164215/163311 i http://www.echoditto.com/blog/never-touch-your-local-etchosts-file-os-x-again które zawierają kilka dodatkowych szczegółów i obejmują dnsmasqszczegóły konfiguracji.

rjocoleman
źródło
Drugi artykuł można teraz znaleźć na stronie alanthing.com/blog/2012/04/24/…
ebelisle
0

Czy istnieje konkretny powód korzystania dnsmasq?

Możesz po prostu dodać wpisy do /private/etc/hostspliku, pozostawiając DNS wskazany dowolnemu dostawcy usług internetowych, z którym się łączysz. Oto jak to zrobić za pomocą terminalu:

sudo nano /private/etc/hosts Po wyświetleniu monitu wprowadź hasło.

Dodaj dowolne dodatki na końcu pliku hosts (jeden wpis w wierszu), na przykład:

127.0.0.1 local.dev

Control + O, a następnie Enter, aby zapisać plik w nano. Control + X, aby wyjść z nano.

Będziesz musiał opróżnić lokalną pamięć podręczną DNS, używając: dscacheutil -flushcache

crh
źródło
2
Użycie pliku hosts może być prostym rozwiązaniem, ale muszę skonfigurować domeny wieloznaczne, takie jak * .dev, aby wskazywały na localhost.
Daiwei