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