Во-первых, если networksetup -getdnsservers <service name>
ничего не отображается, у вас ничего не отображается в Системных настройках> Netowrk в разделе «DNS-серверы:».
Во-вторых, важно отметить, что OS X не обрабатывает DNS, как большинство систем. По https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html По сути это означает, что OS X имеет несколько клиентов DNS в зависимости от вашей конфигурации. Результат этих нескольких служб означает, что существуют ситуации, когда использование Safari для доступа к веб-сайту ( http://www.example.com ) приведет вас к IP-адресу, который OS X получила из DNS (скажем, 1.2.3.4), пока в то же время, выполняя копать
$ dig www.example.com
вернет разные результаты. (возможно 2.3.4.5)
Причина этого заключается в том, как OS X обрабатывает DNS.
Если вы запустите, $ man dig
вы получите среди прочего, следующее:
Mac OS X УВЕДОМЛЕНИЕ Команда dig не использует разрешение имени и адреса хоста или механизмы маршрутизации DNS-запросов, используемые другими процессами, работающими в Mac OS X. Результаты запросов имени или адреса, напечатанных с помощью dig, могут отличаться от результатов, найденных другими процессами. использующие механизмы разрешения имен и адресов Mac OS X. Результаты DNS-запросов также могут отличаться от запросов, использующих библиотеку маршрутизации DNS Mac OS X.
И $man nslookup
вернет что-то подобное
Mac OS X УВЕДОМЛЕНИЕ Команда nslookup не использует разрешение имени и адреса хоста или механизмы маршрутизации DNS-запросов, используемые другими процессами, работающими в Mac OS X. Результаты запросов имени или адреса, напечатанных nslookup, могут отличаться от результатов, найденных другими процессами. использующие механизмы разрешения имен и адресов Mac OS X. Результаты DNS-запросов также могут отличаться от запросов, использующих библиотеку маршрутизации DNS Mac OS X.
Все это на самом деле довольно длинный способ сказать, лучший способ увидеть, какие DNS-серверы используются, это посмотреть Системные настройки> Сеть
Обычно здесь есть «DNS-сервер:», а «Поиск доменов:» позволит вам искать неполные адреса.
Если «DNS Server:» отсутствует, то OS X попытается использовать адрес в «Router:» для DNS.
И, помимо всего этого, есть утилиты и другие процессы, которые могут не использовать библиотеку маршрутизации DNS OS X, и они будут напрямую обращаться к содержимому /etc/resolv.conf.
Короткий короткий ответ таков:
- Если вы перейдете к содержанию Системные настройки> Сеть, вы увидите то же, что и большинство процессов.
- Содержимое Системных настроек> Сеть должно заполнять /etc/resolv.conf, но не всегда.
- Некоторые другие процессы (например, dig и nslookup) имеют прямой доступ к /etc/resolv.conf.
И, вдобавок ко всему этому - если вы не используете VPN-клиенты, встроенные в OS X, возможно, что используются дополнительные маршруты и DNS-серверы, которые не networksetup -getdnsservers <service name>
будут отображаться. Ваш VPN-клиент может иметь возможность показывать вам маршруты и DNS-серверы, я знаю, что мой делает.
Я знаю, что это не совсем точно отвечает на ваш вопрос, но, надеюсь, это поможет вам понять, что не всегда легко узнать, что такое «правда» в отношении DNS на Mac. Как правило, вы в безопасности, если предположите, что содержимое «Системные настройки»> «Сеть» или содержимое того места networksetup -getdnsservers <service name>
, откуда вы получаете DNS. Однако, если вещи кажутся странными, имейте в виду, что есть и другие возможности. Используйте dig, чтобы помочь определить, есть ли различия в движении.
Наконец, для тех читателей , которые задаются вопросом , как получить <service name>
по прибытию networksetup -getdnsservers <service name>
, попробуйте использоватьnetworksetup -listallnetworkservices
Билл
в OSX Mavericks (10.9 - на самом деле 10.6.3, я полагаю), если вы хотите увидеть активную конфигурацию DNS:
Запись -first- (resolver # 1), как сообщается, является активной конфигурацией ... хотя я видел множество случаев, когда это не так.
от человека Скутил
IME, если то, что вы видите здесь, не соответствует ожидаемому (например, сеть> расширенный> DNS), вам может потребоваться отключить / включить соответствующий сетевой адаптер для его обновления ...
Другие советы в недавнем OSX:
При использовании 10.7 или 10.8 поисковые домены не применяются к поискам с точкой в них. То есть - www.test не будет добавлять поисковые домены вообще, где www будет. есть исправление:
Теперь выгрузите и перезагрузите службу mDNSResponder: sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
конфигурация сети> расширенный> dns -PER INTERFACE-. Так что, если вы используете беспроводной и проводной ... вы должны настроить оба.
есть и другой способ - / etc / resolver - один пример здесь: / etc / resolver / files работает в Mountain Lion для разрешения DNS? и больше здесь: https://www.dforge.net/2013/01/30/osx-domain-specific-dns-servers-etcresolver/
Что касается попытки сделать nslookup - хорошо известно, что nslookup (и host, и dig) не следует (чрезвычайно уникальному и смешанному) механизму разрешения OSX. Используйте пинг.
источник
scutil --dns
показывает фактическую конфигурацию DNS, используемую ОС.Я бы обычно использовал (в среде Unix, а это, возможно, немного старомодно) что-то вроде следующих примеров.
Во-первых, вы можете искать IP-адрес или запись DNS-имени по отдельности, и она сообщит вам сервер, который использовался для предоставления ответа. Вы можете найти одну запись в командной строке или войти в
nslookup
программу и найти несколько записей без необходимости повторного ввода команды:Во-вторых, эта команда (обратите внимание, что я запускал ее в окне Windows, в Unix / OS X вместо iconconfig -a используется команда ipconfig / all, и результаты вывода могут немного отличаться), в которой перечислены данные конфигурации ip для каждого интерфейса в вашей системе, физических портов, беспроводные соединения, VNC и т. д., отображая, какие данные DNS и IP связаны с каждым маршрутом из машины, вы получите множество записей, по одной для каждого подлинного сетевого порта / адаптера, а также различное количество виртуальных портов в зависимости от вашего конфигурации, в моем примере я удалил большинство результатов, но показал мой VPN-адаптер и (отредактированные) записи DNS, которые у него есть.
источник
Что
nslookup
тебе сказать? Это дает мне мой DNS-сервер на второй строке.источник