У macOS есть сложная система маршрутизации DNS в определенных областях для таких вещей, как VPN. Так, если у вас, например, есть VPN-соединение, которое «работает» прямо сейчас, запросы доменных имен вашей работы могут отправляться на DNS-сервер на работе.
Чтобы увидеть весь список, запустите:
scutil --dns
Для запроса DNS, как это делает система, используйте:
dns-sd -G v4v6 example.com
dns-sd -q example.com 255 255
(вы должны нажать Ctrl-C, чтобы выйти из dns-sd
).
Команды host
, dig
и nslookup
- это старые команды unix для устранения неполадок DNS-сервера, которые содержат собственный код распознавателя DNS и не используют системные библиотеки. Поэтому, если вы не укажете, какой сервер вы хотите использовать, они просто получат его из автоматически сгенерированного файла /etc/resolv.conf
, который заполняется серверами по умолчанию только для запросов с незаданной областью. Но такой инструмент, как ping
вероятно, просто вызывает gethostbyname(3)
который использует системную маршрутизацию DNS.
Отредактировано, чтобы добавить: я должен также упомянуть, что macOS может получить информацию о разрешении имени хоста для IP-адреса из множества других средств, включая:
- mDNS (Apple Bonjour / IETF ZeroConf)
- Open Directory (схема Apple в LDAP)
- Другой LDAP
- Active Directory
- WINS
- Служба имен NetBIOS
- NIS (ранее YellowPages / yp; информационная служба сети Sun / Oracle)
Вы можете редактировать эти параметры с помощью инструмента командной строки dscl
или с помощью приложения «Утилита каталогов», которое скрывается по адресу:
/System/Library/CoreServices/[Applications]/Directory\ Utility.app