Команда dig в Linux

Команда dig (domain information groper) — многофункциональный инструмент для опроса DNS-серверов. Она позволяет получить больше информации о конкретном домене, для того чтобы, например, узнать используемые им IP-адреса.

Этот инструмент может оказаться полезным сетевым администраторам для выявления неисправностей DNS. Аналоги чаще всего предлагают меньше функций и возможностей, чем может предоставить утилита командной строки dig. В этой статье мы рассмотрим что из себя представляет команда dig Linux, а также как ею пользоваться.

Синтаксис команды dig

Использовать команду dig несложно. Достаточно ввести название сервера, имя домена и передать команде подходящие опции:

$ dig @сервер доменное.имя тип записи флаги

  • @cервер — IP-адрес или доменное имя DNS-сервера (если не указано, dig будет обращаться к DNS-серверу, используемому по умолчанию);
  • доменное.имя — доменное имя интернет-ресурса, о котором необходимо получить информацию;
  • тип записи — позволяет указать, для какого типа записи необходим вывод, например A, NS, MX или TXT;
  • флаги — с помощью флагов утилите dig отдаются дополнительные команды; оговаривается, каким должен быть вывод команды (что в нём должно быть, а чего нет).

Опции и флаги dig

Во время работы утилиты dig могут использоваться следующие флаги:

  • +[no]all — отображает или скрывает все установленные по умолчанию флаги отображения;
  • +[no]answer — отображает только ответ на запрос;
  • +[no]fail — эта опция указывает, должна ли утилита переключаться на следующий DNS сервер, если текущий не отвечает (по умолчанию стоит +fail);
  • +short — сокращает вывод утилиты;
  • +[no]cmd — отключает вывод заголовка и информации об использованных опциях утилиты;
  • +[no]identify — используется вместе с флагом +short и отображает информацию об IP-адресе сервера;
  • +[no]comments — удаляет все комментарии из вывода утилиты;
  • +[no]trace – позволяет вывести список DNS серверов через которые прошёл запрос на получение информации о домене, по умолчанию отключено.

Вместе с dig можно применять следующие опции:

  • -4 — позволяет использовать только IPv4;
  • -6 — позволяет использовать только IPv6;
  • -x — предназначена для получения домена по IP;
  • -f — используется для чтения списка доменов из файла;
  • -b IP-адрес — позволяет указать исходящий IP-адрес, с которого отправлен запрос к DNS-серверу, полезно, если к компьютеру подключено несколько сетевых карт;
  • -r — предотвращает чтение настроек из файла

Здесь указаны лишь некоторые флаги и опции. Если необходимо узнать больше, используйте команду:

Примеры использования dig

1. Получение информации о домене

Для того чтобы получить информацию о домене необходимо передать имя домена команде. Например, для google.com:

AWoEvxXdEwy1AAAAAElFTkSuQmCC

Рассмотрим каждую секцию вывода подробнее:

  • HEADER — отображает информацию о версии утилиты, ID запроса, полученных ошибках и использованных флагах вывода. Выводится и другая важная информация о количестве запросов, обращений к DNS-серверу и т. д.;
  • QUESTION SECTION — секция, которая отображает текущий запрос;
  • ANSWER SECTION — секция, в которой отображается результат обработки созданного запроса (в данном случае это IP-адрес домена).

По умолчанию утилита выводит много лишней информации. Для получения только основных данных используйте запрос с флагом +short. Например:

dig google.com +short

wJk6y+sBeTRZwAAAABJRU5ErkJggg==

Если использовать команду dig вместе с +noall, вы ничего не увидите, поскольку этот флаг отключает вывод всех секций.

dig google.com +noall

B3QBYZUV1MWfAAAAAElFTkSuQmCC

Если вместе с флагом +noall использовать флаг +answer, dig выведет только ту информацию, которая есть в секции ANSWER (IP-адрес, тип записи и пр.).

dig доменное.имя +noall +answer

jbGwz6X8BNOpRti0WYhwAAAAASUVORK5CYII=

Для создания комбинированного запроса можно использовать текстовый файл со списком сайтов, например, sites.txt. Чтобы создать текстовый документ с таким именем, введите следующую команду в терминале:

SDeZvk6JPmAAAAAElFTkSuQmCC

В файл необходимо добавить список доменов, для которых необходимо получить данные, например:

google.com
ya.ru
losst.ru

BV9nxnBcIYCKAAAAAElFTkSuQmCC

Для того чтобы получить информацию о перечисленных в файле sites.txt доменах, используйте команду:

dig -f sites.txt +noall +answer

xwAAAAASUVORK5CYII=

2. Получение определённой записи

Согласно синтаксису команды dig linux, тип записи указывается после доменного имени. Для того чтобы получить MX-запись домена google.com, используйте команду:

dig google.com MX +noall +answer

M4GttM+r8AKWjf3SlHBwAAAABJRU5ErkJggg==

Чтобы получить NS-запись для домена, введите в терминале такую команду:

dig google.com NS +noall +answer

FR6UJVK6q0GU5gbUxPo26NSCv+z+MsbDPpv55hy7uFvzu1AAAAAElFTkSuQmCC

Запрос записи A происходит по умолчанию. Однако мы можем прописать этот запрос отдельно, чтобы обеспечить её вывод без дополнительной информации:

dig google.com A +noall +answer

jdJ7u2cr37T7AAAAABJRU5ErkJggg==

Для вывода записи TXT аналогичным образом используйте команду вида:

dig google.com TXT +noall +answer

ZAAAAAElFTkSuQmCC

Для просмотра всех типов записей одновременно используйте запрос вида:

dig google.com ANY +noall +answer

Z4Zfj60weQSBhWN1R+ZncjwphElBYPbINiIyjlqYaPgMpp3YwPfWKVArEcjiXHmLcBWhzKQM0Bje5yCwUQr4susHv57njO4+59nRAMEMFt5L5WULCoT7qX8nCkTvq7JkLVSEiygxzD2RCAhTELnPiPSgDNeiwilMyiyyCuJ0SxUBAkjOs48mZoA9cyk+VrrQ6hVVygwnsBamD6PuWpGu+D+Ps7HNpP8FrjgWvr5mrXcAAAAASUVORK5CYII=

3. Использование определённого DNS-сервера

Если DNS-сервер не был указан, как это было показано в предыдущих примерах, утилита dig linux будет по очереди пробовать все серверы из файла /etc/resolv.conf. Если же и там ничего нет, dig отправит запрос на localhost.

Указывать DNS-серверы можно в формате IPv4 или IPv6. Это не имеет значения и не повлияет на вывод dig. Отправим запрос на публичный DNS-сервер Google. Его IP-адрес: 8.8.8.8. В этом случае запрос в dig будет выглядеть следующим образом:

dig @8.8.8.8 google.com +noall +answer

jGGwz6X8D1czKx8MBhr8AAAAASUVORK5CYII=

Как видно, для домена google.com используется IP-адрес: 142.250.75.14.

4. Получение домена по IP

Для того чтобы узнать имя домена с помощью команды dig по IP, используйте опцию -x. Например, для того, чтобы узнать домен, привязанный к IP адресу 87.250.250.242 выполните такую команду:

dig -x 87.250.250.242

Как видите, это IP адрес яндекса. Правда такой способ получения доменов работает не всегда. Если к IP привязано несколько доменов программа может вывести только первый. Для того чтобы сократить вывод и оставить только нужную нам информацию, можно ввести запрос следующим образом:

dig -x 87.250.250.242 +short

Команда отображает информацию о том, что это google.com. Как видите команда dig Linux способна на многое.

Выводы

В этой небольшой статье мы рассмотрели, как можно использовать dig для опроса DNS-серверов. Несмотря на то что команда достаточно простая, она позволяет получить много полезной информации. А чем вы пользуетесь для обращения к серверам DNS? Напишите об этом в комментариях ниже.

Нет похожих записей

alt=”Creative Commons License” width=”” />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Вы пропустили

AEGIS Algorithms Android Angular Apache Airflow Apache Druid Apache Flink Apache Spark API API Canvas AppSec Architecture Artificial Intelligence Astro Authentication Authorization AutoGPT AWS AWS Aurora AWS Boto3 AWS EC2 AWS Lambda Azure Babylon.js Backend bash Beautiful Soup Bento UI Big Data Binary Tree Browser API Bun Career Cassandra Charts ChatGPT Chrome Extension Clean Code CLI ClickHouse Coding Codux Combine Compose Computer Context Fusion Copilot Cosmo Route CProgramming cron Cryptography CSS CTF Cypress DALL-E Data Analysis Data science Database dbt dbt Cloud deno Design Design Patterns Detekt Development Distributed Systems Django Docker Docker Hub Drizzle DRY DuckDB Express FastAPI Flask Flutter For Beginners Front End Development Game Development GCN GCP Geospatial Git GitHub Actions GitHub Pages Gitlab GMS GoFr Golang Google Google Sheets Google Wire GPT-3 GPT3 Gradio Gradle Grafana Graphic Design GraphQL gRPC Guidance HMS Hotwire HTML Huawei HuggingFace IndexedDB InfoSec Interview iOS Jackknife Java JavaScript Jetpack Compose JSON Kafka Kotlin Kubernetes LangChain Laravel Linux LlaMA LLM localStorage Logging Machine Learning Magento Math Mermaid Micro Frontends Mobile Mobile App Development mondayDB MongoDB Mongoose MySQL Naming NestJS NET NetMock Networks NextJS NLP Node.js Nodejs NoSQL NPM OOP OpenAI OTP Pandas PDF PHP Playwright Plotly Polars PostgreSQL Prefect Productivity Programming Prometheus Puppeteer Pushover Python Pytorch Quarkus Rabbitmq RAG Ramda Raspberry Pi React React Native Reactor Redis REST API Revolut Riverpod RProgramming Ruby Ruby on Rails Rust Scalene SCDB ScyllaDB Selenium Servers Sklearn SLO SnowFlake Snowkase Software Architecture Software Development Solara Solid Spring Boot SQL SQLite Streamlit SudoLang Supabase Swift SwiftUI Tailwind CSS Taipy Terraform Testing Transformers TURN TypeScript Ubuntu UI Design Unix UX UX Design Vim Vite VSCode Vue Web Architecture Web Components Web Development Web Frameworks Web Scraping Web-разработка Webassembly Websocket Whisper Widgets WordPress YAML YouTube Zed Наука о данных Разное Тренды

Современный подход к разработке с использованием Next.js