Вы не должны делать ничего больше:
It's the default behaviour of dig not to use the search-option.
From the manual page:
+[no]search Use [do not use] the search list defined by the searchlist or domain directive in resolv.conf (if any). The search list is not used by default.
Edit: Just add +search
to make it work, like dig +search myhost
.
У меня был та же проблема. После проверки пакетов, отправленных как из nslookup, так и из dig с помощью wirehark, я обнаружил проблему.
dig устанавливал бит аутентичных данных в запросе. Согласно странице руководства, "
Я столкнулся с этой проблемой в моей домашней сети Wi-Fi, пытаясь решить старый добрый Google.com
из виртуальной машины Ubuntu, работающей на хосте Windows 7, с dig
, время ожидания истекло, но nslookup
мгновенно вернул результат.
Решение для меня было чтобы добавить + noedns
: $ dig + noedns google.com
.
В моем случае это ошибка в DNS-сервере Microsoft, где он возвращает ответ FORMERR
(ошибка формата запроса) на запросы с установленным параметром EDNS Cookie
. В новых версиях dig
(9.11 и выше) по умолчанию используются dns-cookies. Этого можно избежать, установив флаг +nocookie
или +noedns
, чтобы перечислить:
$ dig +nocookie DOMAIN @SERVER
Source: https://kevinlocke.name/bits/2017/01/20/formerr-from-microsoft-dns-server-for-dig/
Вы можете использовать файл .digrc в своем домашнем каталоге со строкой
+ search
, чтобы изменить поведение по умолчанию
+[no]search
This option uses [or does not use] the search list defined by the searchlist or domain directive in resolv.conf, if any. The search list is not used by default.
ndots from resolv.conf (default 1), which may be overridden by +ndots, determines whether the name is treated as relative and hence whether a search is eventually performed.