В вашем конкретном случае это происходит из-за nslookup
истечения времени ожидания, которое обычно занимает очень много времени по сравнению с получением действительного ответа.
Как немного дальнейшего фона:
dig
это в основном низкоуровневый инструмент отладки. Он не выполняет рекурсию сам по себе, требует, чтобы вы указали сервер для запроса, и позволяет запрашивать произвольные типы RR (или простоANY
получить все записи). Обычно это будет немного быстрее, чем фактический поиск, просто потому что nslookup просто потому, что он имеет все данные, необходимые для командной строки.nslookup
разработан для того, чтобы быть интерактивным инструментом для запросов к инфраструктуре DNS, а не выполнять поиск по месту, как этоdig
делается. Это случается, чтобы обеспечить неинтерактивный режим (который вы используете выше), но это в основном просто сокращение. Хотя вы можете указать ему использовать определенный сервер, он по умолчанию будет использовать те, которые настроены в/etc/resolv.conf
, и, таким образом, запуск без указанного сервера будет немного медленнее, чемdig
(потому что он должен искать в файле).host
, которую вы не упомянули, но для полноты изложения стоит упомянуть, это команда, предоставляемая библиотекой C для поиска имени хоста. Он использует подпрограммы разрешения имен в библиотеке C, что означает, что он учитывает/etc/resolv.conf
, но он также учитывает настройки/etc/nsswitch.conf
, что означает, что он может искать имена хостов/etc/hosts
, через NIS или NIS +, через LDAP, через mDNS (если вы используете право TLD для этого), через LLMNR или любым другим способом. В результате он медленнее по сравнению сdig
иnslookup
, но он также показывает, какую именно программу использует настройки разрешения имен системы вместо того, чтобы делать собственный DNS, увидит ,