Po pierwsze, jeśli networksetup -getdnsservers <service name>
nic nie pokazuje, nic nie ma na liście Preferencje systemowe> Netowrk w obszarze „Serwery DNS:”.
Po drugie, należy zauważyć, że OS X nie obsługuje DNS tak jak większość systemów. Na https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html Zasadniczo oznacza to, że OS X ma wielu klientów DNS w zależności od konfiguracji. Rezultat tych wielu usług oznacza, że istnieją sytuacje, w których korzystanie z Safari w celu uzyskania dostępu do strony internetowej ( http://www.example.com ) przeniesie Cię na adres IP, który OS X odzyskał z DNS (powiedzmy 1.2.3.4) w tym samym czasie wykonując wykop
$ dig www.example.com
zwróci różne wyniki. (być może 2.3.4.5)
Powodem tego jest sposób, w jaki OS X obsługuje DNS.
Jeśli uruchomisz $ man dig
, otrzymasz między innymi:
Mac OS X UWAGA Polecenie dig nie korzysta z rozpoznawania nazwy hosta i adresu ani mechanizmów routingu zapytań DNS używanych przez inne procesy działające w systemie Mac OS X. Wyniki zapytań o nazwę lub adres wydrukowane za pomocą dig mogą różnić się od wyników znalezionych przez inne procesy korzystające z natywnych mechanizmów rozpoznawania nazw i adresów w systemie Mac OS X. Wyniki zapytań DNS mogą również różnić się od zapytań korzystających z biblioteki routingu DNS systemu Mac OS X.
Zwróci również $man nslookup
coś podobnego
Mac OS X UWAGA Polecenie nslookup nie używa rozpoznawania nazw hostów i adresów ani mechanizmów routingu zapytań DNS używanych przez inne procesy działające w systemie Mac OS X. Wyniki zapytań o nazwy lub adresy wydrukowane przez nslookup mogą różnić się od wyników znalezionych przez inne procesy korzystające z natywnych mechanizmów rozpoznawania nazw i adresów w systemie Mac OS X. Wyniki zapytań DNS mogą również różnić się od zapytań korzystających z biblioteki routingu DNS systemu Mac OS X.
Wszystko to jest naprawdę dość długim sposobem powiedzenia, najlepszym sposobem, aby zobaczyć, które serwery DNS są używane, jest spojrzenie na Preferencje systemowe> Sieć
Wpisy „Serwer DNS:” są zwykle dostępne, a „Szukaj domen:” pozwala wyszukiwać niekompletne adresy.
Jeśli „Serwer DNS:” nie jest obecny, OS X spróbuje użyć adresu w „Router:” dla DNS.
I oprócz całej tej zabawy, istnieją narzędzia i inne procesy, które mogą nie korzystać z biblioteki routingu DNS OS X i będą one bezpośrednio uderzały w zawartość pliku /etc/resolv.conf.
Krótka krótka odpowiedź brzmi:
- Jeśli przejdziesz do treści Preferencji systemowych> Sieć, patrzysz na to samo, z czego korzysta większość procesów.
- Zawartość Preferencji systemowych> Sieć powinna wypełnić /etc/resolv.conf, ale nie zawsze.
- Niektóre inne procesy (takie jak dig i nslookup) uzyskują bezpośredni dostęp do /etc/resolv.conf.
I na dodatek - jeśli nie korzystasz z klientów VPN wbudowanych w OS X, możliwe jest, że zostaną użyte dodatkowe trasy i serwery DNS, które networksetup -getdnsservers <service name>
się nie pojawią. Twój klient VPN może mieć możliwość pokazywania tras i serwerów DNS, wiem, że mój.
Wiem, że to nie odpowiada dokładnie na twoje pytanie, ale mam nadzieję, że to pomoże ci zrozumieć, że nie zawsze łatwo jest dowiedzieć się, co „prawda” dotyczy DNS na komputerze Mac. Zasadniczo jesteś bezpieczny, zakładając, że zawartość Preferencji systemowych> Sieć lub zawartość networksetup -getdnsservers <service name>
to miejsce, z którego otrzymujesz DNS. Jeśli jednak wydaje się to dziwne, pamiętaj, że są też inne możliwości. Użyj wykopu, aby ustalić, czy występują różnice.
Wreszcie, dla tych czytelników, którzy zastanawiają się jak zdobyć <service name>
in networksetup -getdnsservers <service name>
, spróbuj użyćnetworksetup -listallnetworkservices
Rachunek
w OSX Mavericks (10.9 - tak naprawdę 10.6.3 w górę, jak sądzę), jeśli chcesz zobaczyć aktywną konfigurację DNS:
Wpis -first- (resolver # 1) jest podobno aktywną konfiguracją ... chociaż widziałem wiele przypadków, w których tak nie jest.
od człowieka Scutila
IME, jeśli to, co widzisz tutaj, nie odpowiada oczekiwaniom (np. Sieć> zaawansowane> dns), może być konieczne wyłączenie / włączenie odpowiedniej karty sieciowej, aby ją odświeżyć ...
Inne wskazówki w najnowszym OSX:
W przypadku wersji 10.7 lub 10.8 domeny wyszukiwania nie mają zastosowania do wyszukiwań z kropką w nich. tzn. - www.test w ogóle nie dołącza domen wyszukiwania, w których www to zrobi. jest poprawka:
Teraz zwolnij i ponownie załaduj usługę mDNSResponder: sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sieć> zaawansowane> konfiguracja dns to -PER INTERFACE-. Więc jeśli korzystasz z połączenia bezprzewodowego i przewodowego ... musisz skonfigurować oba.
jest też inny sposób - / etc / resolver - tutaj jest jeden przykład: czy / etc / resolver / files działa w Mountain Lion do rozpoznawania nazw DNS? i więcej tutaj: https://www.dforge.net/2013/01/30/osx-domain-specific-dns-servers-etcresolver/
Jeśli chodzi o próbę wykonania nslookup - dobrze wiadomo, że nslookup (i host i dig) nie postępuje zgodnie z (wyjątkowo wyjątkowym i pomieszanym) mechanizmem rozwiązywania OSX. Użyj polecenia ping.
źródło
scutil --dns
pokazuje aktualną konfigurację DNS, której używa system operacyjny.Normalnie użyłbym (w środowiskach unixowych, a to może trochę stara szkoła) czegoś takiego jak następujące przykłady.
Po pierwsze, możesz wyszukać adres IP lub wpis nazwy DNS indywidualnie, a to zgłosi serwer, który został użyty do udzielenia odpowiedzi. Możesz wyszukać pojedynczy wpis w wierszu polecenia lub wejść do
nslookup
programu i wyszukać kilka wpisów bez konieczności ponownego wprowadzania polecenia:Po drugie, to polecenie (uwaga: uruchomiłem to w oknie systemu Windows, w systemie Unix / OS X polecenie ipconfig / all jest zamiast tego ifconfig -a, a wyniki wyjściowe mogą się nieznacznie różnić), które wyświetla dane konfiguracyjne ip dla każdego interfejsu w twoim systemie, porty fizyczne, połączenia bezprzewodowe, VNC itp., wyświetlając, jakie dane DNS i IP są powiązane z każdą trasą wychodzącą z urządzenia, otrzymasz wiele wpisów z powrotem, po jednym dla każdego oryginalnego portu sieciowego / karty, a także różne ilości portów wirtualnych, w zależności od twojego konfiguracji, w moim przykładzie usunąłem większość wyników, ale pokazałem moją kartę VPN i (zredagowane) wpisy DNS, które ona ma.
źródło
Co
nslookup
ci mówi Daje mi mój serwer DNS w drugiej linii.źródło