По-перше, якщо networksetup -getdnsservers <service name>
нічого не показується, у вас немає жодного переліку в Системних налаштуваннях & gt; Мережа в розділі "Сервери 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. Результати імен або адресних запитів, надрукованих копією, можуть відрізнятися
від інших процесів, які використовують рідну назву 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-сервери використовуються, це подивитися на System Preferences & gt; Мережа
Записи "DNS-сервер:" зазвичай є, а "Пошук доменів" - дозволяє шукати неповні адреси.
Якщо "DNS Server:" немає, то OS X спробує використати адресу в "Router:" для DNS.
І, на додаток до всього цього задоволення, є утиліти та інші процеси, які не можна використовувати бібліотеку маршрутизації DNS OS X, і вони будуть безпосередньо натискати на вміст /etc/resolv.conf.
Коротка коротка відповідь така:
- Якщо ви переходите до вмісту системних налаштувань & gt; Мережа, ви дивитеся на те ж саме більшість процеси.
- Зміст системних налаштувань & gt; Мережа, слід заповнити /etc/resolv.conf, але не завжди.
- Деякі інші процеси (наприклад, dig і nslookup) звертаються безпосередньо до /etc/resolv.conf.
Крім того, якщо ви не використовуєте клієнти VPN, вбудовані в OS X, можливо, що додаткові маршрути і сервери DNS використовуються networksetup -getdnsservers <service name>
не покажуть. Ваш клієнт VPN може мати можливість показувати вам маршрути і DNS-сервери, я знаю, що мій робить.
Я знаю, що це точно не відповідає на ваше запитання, але, сподіваюся, це допоможе вам зрозуміти, що не завжди легко з'ясувати, що таке "правда" щодо DNS на Mac. Як правило, ви впевнені, що вміст системних налаштувань & gt; Мережі або вмісту networksetup -getdnsservers <service name>
звідки ви отримуєте свій DNS. Однак, якщо речі здаються дивними, майте на увазі, що є й інші можливості. Використовуйте dig, щоб допомогти визначити, чи існують відмінності.
Останнє, для тих читачів, які цікавляться, як отримати <service name>
в networksetup -getdnsservers <service name>
, спробуйте використати networksetup -listallnetworkservices
Білл