Команда dig в windows
Обновлено: 06.07.2024
dig (сокращение от «domain information groper» - поиск доменной информации) - это инструмент DNS-клиента , позволяющий пользователю через CLI обращаться к системе DNS за информацией. Осуществляет поиск DNS и отображает ответы, возвращенные запрошенным сервером (серверами) имен. Если говорить простым языком: программа dig показывает IP адрес сайта.
Содержание
Как установить dig
Если при попытке использования команды dig:
вы получаете ошибку:
то необходимо установить пакет, который содержит эту утилиту.
В Debian, Linux Mint, Ubuntu, Kali Linux для установки выполните команду:
В Arch Linux и производных установка выполняется командой:
В CentOS и близких дистрибутивах для установки запустите команду:
Разбор синтаксиса команды
Программа dig использует обычную командную строку для формирования запросов о доменах DNS-серверам. Формат команды dig следующий:
Здесь server — необязательное имя DNS-сервера. По умолчанию в dig будет использоваться DNS-сервер, указанный в файле /etc/resolv.conf. Можно указать опцию server либо по имени хоста, либо через его IP-адрес. Если для опции server используется имя хоста, то для преобразования его в IP-адрес dig воспользуется DNS-сервером по умолчанию и будет его использовать далее для получения информации о домене.
Параметр query-type — тип исходной записи, который можно указать в запросе ( A, SOA, NS и MX ). Для получения всей информации о домене можно указать query-type any.
Параметр query-class — класс сетевой информации, который также можно указывать в запросе. По умолчанию этот параметр всегда будет IN для сети Internet.
Параметр +query-option — используется для изменения значения параметра в пакете DNS или для изменения формата вывода результатов работы dig.
Параметры, которые можно использовать в запросе с dig
Параметр -dig-otion используется для задания других опций, влияющих на работу dig.
Параметры, влияющие на работу dig
Утилита dig поддерживает ряд параметров командной строки. Одним из таких параметров является -t, позволяющий указать интересующий пользователя тип ресурсной записи. Но параметр -t может и просто пропускаться.
- -x Указывает инверсное преобразование адреса в нормальном написании
- -f Считывает файл для дальнейшей пакетной обработки
- -T Время в секундах до включения режима пакетной обработки
- -p Номер используемого порта
- -P После получения ответа выдать команду ping
- -t Указывает тип запроса
- -c Указывает класс запроса
- -envsav Параметры dig должны быть сохранены для дальнейшего использования по умолчанию
Как пользоваться dig
Простейший пример использования dig:
Будет выведено довольно много строк:
Секции и комментарии dig
Вывод утилиты может быть разделен на ряд секций [Источник 3] :
Отключение секций и комментариев
Чтобы программа выводила только IP адрес без ненужной информации, используйте конструкцию:
Можно отключить вывод некоторых данных. Для этого ставим в конце команды нужный ключ или несколько [Источник 4] :
- +nocomments – не показывать комментарии
- +noauthority – не показывать секцию AUTHORITY
- +noadditional –не показывать секцию ADDITIONAL
- +nostats – не показывать статистику (внизу ответа: ";; Query time: 4 msec. ")
- +noanswer – не показывать секцию ANSWER (хз зачем можно отключать эту секцию, ведь ради неё и смотрим DNS записи)
- +noall - отключить все секции. Логично использовать в связке с командами перечисленными выше, но без "no" в начале. К примеру, "dig alexgur.ru +noall +answer" - покажет только секцию ANSWER и ничего больше.
- +short - показывает только самое необходимое
Типы ресурсных записей DNS
По умолчанию dig выводит информацию об A записи домена.
Можно поставить один из следующих ключей после домена, чтобы получить определенные записи:
Внимательный читатель найдет на этой картинке IPv6
Люди часто озадачены доменами. Почему мой сайт не работает? Почему эта хрень поломана, ничего не помогает, я просто хочу, чтобы это работало! Обычно, вопрошающий или не знает про DNS, или не понимает фундаментальных идей. Для многих DNS — страшная и непонятная штука. Эта статья — попытка развеять такой страх. DNS — это просто, если понять несколько базовых концепций.
Что такое DNS
DNS расшифровывается как Domain Name System. Это глобальное распределенное хранилище ключей и значений. Сервера по всему миру могут предоставить вам значение по ключу, а если им неизвестен ключ, то они попросят помощи у другого сервера.
Базовые штуки
Давайте взглянем на маппинг между именем и адресом:
Команда dig это такой швейцарский армейский нож для DNS-запросов. Крутой, многофункциональный инструмент. Вот первая часть ответа:
Здесь есть только одна интересная деталь: информация о самом запросе. Говорится, что мы запросили запись и получили ровно один ответ. Вот:
dig по-умолчанию запрашивает A -записи. A это address (адрес), и это один из фундаментальных видов записей в DNS. A содержит один IPv4 -адрес. Есть эквивалент для IPv6 -адресов — AAAA . Давайте взглянем на ответ:
Тут говорится, что у хоста web01.bugsplat.info. есть один адрес A : 192.241.250.244 . Число 300 это TTL , или time to live (время жизни). Столько секунд можно держать значение в кэше до повторной проверки. Слово IN означает Internet . Так сложилось исторически, это нужно для разделения типов сетей. Подробнее об этом можно почитать в документе IANA's DNS Parameters.
Оставшаяся часть ответа описывает сам ответ:
В частности, здесь говорится, как долго сервер откликался, какой у сервера IP-адрес ( 192.168.1.1 ), на какой порт стучался dig ( 53 , DNS-порт по-умолчанию), когда запрос был завершен и сколько байтов было в ответе.
Как видите, при обычном DNS-запросе происходит куча всего. Каждый раз, когда вы открываете веб-страницу, браузер делает десятки таких запросов, в том числе для загрузки всех внешних ресурсов вроде картинок и скриптов. Каждый ресурс отвечает за минимум один новый DNS-запрос, и если бы DNS не был рассчитан на сильное кэширование, то трафика генерировалось бы очень много.
Но в этом примере не видно, что DNS-сервер 192.168.1.1 связался с кучей других серверов чтобы ответить на простой вопрос: «куда указывает адрес web01.bugsplat.info ?». Давайте запустим трейс чтобы узнать о всей возможной цепочке, которую пришлось бы пройти dig 'у, если бы информация не был закэширована:
Информация выводится в иерархической последовательности. Помните как dig вставил точку . после хоста, web01.bugsplat.info ? Так вот, точка . это важная деталь, и она означает корень иерархии.
Корневые DNS-сервера обслуживаются различными компаниями и государствами по всему миру. Изначально их было мало, но интернет рос, и сейчас их 13 штук. Но у каждого из серверов есть десятки или сотни физических машин, которые прячутся за одним IP.
Итак, в самом верху трейса находятся корневые сервера, каждый определен с помощью NS- записи. NS -запись связывает доменное имя (в данном случае, корневой домен) с DNS-сервером. Когда вы регистрируете доменное имя у регистратора типа Namecheap или Godaddy, они создают NS -записи для вас.
В следующем блоке видно, как dig выбрал случайный корневой сервер, и запросил у него A -запись для web01.bugsplat.info . Видно только IP-адрес корневого сервера ( 192.5.5.241 ). Так какой именно корневой сервер это был? Давайте узнаем!
Возвращаясь к нашему начальному запросу: корневой сервер F вернул другой набор NS -серверов. Он отвечает за домен верхнего уровня info . dig запрашивает у одного из этих серверов запись A для web01.bugsplat.info , и получает в ответ еще один набор NS -серверов, и потом запрашивает у одного из этих серверов запись A для web01.bugsplat.info. . И, наконец, получает ответ!
Уф! Сгенерировалось бы много трафика, но почти все эти записи были надолго закэшированы каждым сервером в цепочке. Ваш компьютер тоже кэширует эти данные, как и ваш браузер. Чаще всего DNS-запросы никогда не доходят до корневых серверов, потому что их IP-адреса почти никогда не изменяются («Наверно все таки речь идет о большом TTL для записей в их базе. Если у DNS сервера IP адрес вообще ни разу не изменялся, то это не означает, что его база навечно закеширована» — прим. от rrrav). Домены верхнего уровня com , net , org , и т.д. тоже обычно сильно закэшированы.
Другие типы
Заметьте, что MX -запись указывает на имя, а не на IP-адрес.
Еще один тип, который вам скорее всего знаком, это CNAME . Расшифровываетя как Canonical Name (каноническое имя). Он связывает одно имя с другим. Давайте посмотрим на ответ:
Что не так с CNAME
Записи CNAME очень полезны, но есть важный момент: если есть CNAME с каким-то именем, то нельзя создать другую запись с таким же именем. Ни MX , ни A , ни NS , ничего.
Запросы к другим серверам
Давайте представим, что конфигурация DNS испорчена. Вам кажется, что вы исправили проблему, но не хотите ждать когда обновится кэш чтобы удостовериться. С помощью dig можно сделать запрос к публичному DNS-серверу вместо своего дефолтного, вот так:
Символ @ с IP-адресом или хостом заставляет dig прозводить запрос к указанному серверу через порт по-умолчанию. Можно использовать публичный DNS-сервер Гугла или почти-публичный-сервер Level 3 по адресу 4.2.2.2 .
Типичные ситуации
Давайте рассмотрим типичные ситуации, знакомые многим веб-разработчикам.
Редирект домена на www
CNAME для Heroku или Github
С Github похожая история, но там нужно создать специальный файл в корне репозитория, и назвать его CNAME . См. документацию.
Wildcards
Большинство DNS-серверов поддерживают шаблоны (wildcards). Например, есть wildcard CNAME для *.web01.bugsplat.info указывает на web01.bugsplat.info . Тогда любой хост на web01 будет указывать на web01.bugsplat.info и не нужно создавать новые записи:
Заключение
Надеюсь, теперь у вас есть базовое понимание DNS. Все стандарты описаны в документах:
Есть еще пара интересных RFC, в том числе 4034, который описывает стандарт DNSSEC и 5321, который описывает взаимосвязь DNS и email. Их интересно почитать для общего развития.
Эти утилиты существуют не только для линукс, но и для Mac. Аналоги есть и в виде сайтов. Стоит только немного поискать.
1. Whois
Whois - это самый простой путь узнать информацию о владельце, серверах имен, регистраторе домена. Полезная утилита, если есть необходимость узнать детальную информацию о домене, если конечно для домена не включена приватная регистрация.
Команда whois поможет узнать, кто отвечает за домен. Полезна для уточнения серверов имен, которые отвечают за этот домен. В случае проблем их можно опросить о записях в этом домене.
Использовать просто. Нужно в консоли написать 'whois' и дальше через пробел имя домена.
2. Ping
Команда ping позволяет определить доступен ли сервер в данный момент для вас и в рабочем ли он состоянии. С жмите "Crtl+C".
3. Host
Версия для Mac: host
Host - команда, позволяющая преобразовать имя домена в IP адрес сервера. Это самый простой способ это сделать.
Аналог этой команды для Windows - nslookup.
4. Dig
Это самая мощная утилита для работы с доменами. Она позволяет проверять записи в домене, такие как NS, A, MX, AAAA, SRV, TXT, PTR, CNAME, и другие.
Вы можете использовать dig для првоерки настройки NS серверов. Например, чтоб получить NS записи в домене:
В результате вы получите только NS записи для домена. Чтоб опросить конкретный сервер имен, напишите:
Вы получите A запись для домена ubuntu.com с сервера имен ns1.canonical.com. Более глубокая проверка корректности настройки домена - это использование ключа "+trace":
Эта команда обойдет всю цепочку серверов имен, начиная с корневых и выдаст результат опроса каждого сервера.
Как уже было сказано выше, это самый мощный инструмент для работы с серверами имен и доменами.
5. Traceroute
Traceroute покажет вам полный путь прохождения запроса от вас до сервера. Если по пути возникнут какие-либо проблемы, то он сообщит об этом. Так же утилита сообщит о времени задержки при прохождении каждого узла по пути следования соединения.
6. Mtr
Версия для Mac: mtr
Практически - это тот же traceroute, только он проходит путь между вами и сервером постоянно, циклически, при этом статистика ошибок и задержек накапливается и суммируется. Зачастую это гораздо удобнее и нагляднее, чем traceroute.
Во многих случаях мы заинтересованы в том, чтобы контролировать все, что связано с подключением к Интернету. У нас есть много инструментов, которые мы можем использовать для этого. Мы можем проводить тесты, проверять возможные неисправности, которые необходимо устранить, анализировать характеристики сети и т. Д. В этой статье мы поговорим о Копать и как мы можем использовать этот инструмент в повседневной жизни.
Dig, инструмент для запросов к серверам
Dig - это бесплатный инструмент, который мы можем использовать для запросов к серверам. Это команда Unix, которая позволяет пользователям запросить различные DNS учет . Имейте в виду, что его также можно использовать в Windows. Его название происходит от аббревиатуры Domain Information Groper.
Как использовать Dig в Windows
к использовать его в Windows 10 , которая сегодня является наиболее часто используемой операционной системой на настольных компьютерах, нам нужно будет добавить. Он не входит в систему по умолчанию.
Мы должны скачать файл из ISC интернет сайт. Оказавшись там, вам нужно перейти к BIND 9 раздел. Мы должны загрузить текущую версию, которая будет указана Current-Stable (9.16.7 на момент написания этой статьи). Откроется новая страница для выбора версии загрузки.
Как только мы загрузим файл, нам нужно извлечь все содержимое в папку. Мы должны выполнить (с правами администратора) файл BINDInstall.exe . Имейте в виду, что Защитник Windows может предупредить нас о том, что это может быть опасно, поэтому мы должны принять риски и в любом случае установить. В процессе установки нам нужно будет выбрать путь, имя и пароль.
Когда процесс установки будет завершен, нам нужно будет добавить BIND в путь к Windows . Тоже простой процесс. В этом случае вам нужно перейти в Пуск, написать Путь и открыть Изменить системные переменные среды. В расширенных параметрах мы увидим переменные среды. Щелкаем там и ищем Path, нажимаем Edit и в свободную строку добавляем BIND path. Хотя это зависит от того, где он установлен, обычно путь - C: Program FilesISC BIND 9bin.
Команда Dig использует
Команда Dig может предлагать очень разнообразную и подробную информацию в разных разделах. Например, мы можем получить IP-адрес домена, для которого нам просто нужно выполнить команду домен dig + короткий .
Чтобы посмотреть более подробный и завершить ответы мы должны выполнить команду dig domain + noall + answer. Мы можем увидеть все записи DNS домена с помощью команды dig domain ANY.
С другой стороны, мы также можем проконсультироваться по типу записи с помощью команд dig mx (проконсультироваться и получить почтовый обмен), txt, cname, ns или A. Мы также можем выполнить обратный поиск, чтобы получить домен IP-адреса. .
Короче говоря, Копать это бесплатный и интересный инструмент для использования как на Linux и Windows. Мы видели, что в случае Microsoft операционной системы, нам нужно будет установить пакеты, чтобы иметь возможность использовать ее в командной строке. Использование, которое мы можем дать, очень разнообразно.
Веб-интерфейс Dig
Независимо от вариантов, которые мы показали для использования в Windows и Linux, мы также можем использовать веб-интерфейс Dig. Для этого мы должны войти в соответствующая страница . Там мы увидим различные варианты, которые есть в нашем распоряжении.
В нем есть информация и данные, которые мы можем получить, просто используя онлайн-инструмент, который полностью интуитивно понятен и очень прост в использовании. Это также совершенно бесплатно, как если бы мы использовали версию для Linux или Windows в операционной системе.
Читайте также: