Yandex
Обновяване на предпочитанията за бисквитки

Как да откриете MX записа на даден домейн с помощта на командата DIG

За да се осигури ефективна комуникация и достъп до интернет ресурси, е важно да се разбере как работят имената на домейни и DNS. В Linux командата dig (Domain Information Groper) е основният инструмент за работа с DNS. В тази статия ще разгледаме какво представлява командата, как да я използваме и ще дадем практически примери.

Преглед на командата dig linux


Командата dig е помощна програма от командния ред, която ви позволява да правите заявки към DNS сървъри. Тя може да се използва за получаване на IP адреси, откриване на mx записи на домейни (за електронна поща), NS записи (имена на сървъри за имена) и други данни. Тя е мощен инструмент за диагностициране на мрежови проблеми, проверка на DNS настройките и общ анализ на имената на домейни.

Формат на отбора:
dig [@server] domain [query-type] [query-class] [+query-option] [-dig-otion] [%comment]
Параметърът сървър не е задължителен. По подразбиране dig използва DNS сървъра, посочен в /etc/resolv.conf. Можете да зададете сървъра, като го посочите или чрез име на хост, или чрез IP адрес. Ако използвате име на хост, dig първо ще го преобразува в IP адрес, като използва DNS сървъра по подразбиране, а след това ще използва този сървър за извличане на информация за домейна.

Параметърът query-type (тип на заявката) указва типа на заявения запис, например A, SOA, NS или MX запис в dig. За извличане на всички налични данни за домейни можете да зададете query-type като any.

Параметърът query-class указва класа на мрежовата информация. Параметърът +query позволява да промените настройките в DNS заявката или формата на изхода на резултатите. Много от тези опции са същите като опциите на nslookup.

Параметри на командата dig


  • [no]debug: Активира или деактивира режима за отстраняване на грешки.
  • [no]d2: Същото като при режим на пълна настройка.
  • [no]recurse: Определя дали да се използват или не рекурсивни заявки.
  • retry=#: Задава броя на опитите за повторение на заявката.
  • time=#: Задава времето за изчакване между заявките.
  • [no]ko: Позволява опцията да бъде оставена отворена (реализира виртуални връзки).
  • [no]vc: Дали да се използва или не виртуална връзка.
  • [no]defname: Разрешава или забранява използването на домейна по подразбиране.
  • [no]search: Дали да се използва или не списък за търсене.
  • domain=NAME: Задава домейна по подразбиране като NAME.
  • [no]ignore: Пренебрегва или не пренебрегва грешките при съкращаване.
  • [no]primary: Дали да се използва или не основният сървър.
  • [no]aaonly: Флаг за търсене само на авторитетни данни.
  • [no]trace: Показва проследяване на заявката.
  • [no]cmd: Показва аргументите при изпълнение на команда.
  • [no]stats: Показва статистически данни за заявката.
  • [no]Header: Показва основния хедър на отговора.
  • [no]header: Показва флаговете на заглавието.
  • [no]ttlid: Показва стойността на TTL (време за живот).
  • [no]cl: Показва информация за класа на записа.
  • [no]qr: Показва изходящата заявка.
  • [no]reply: Показва отговора на заявката.
  • [no]ques: Показва полето с въпроси.
  • [no]answer: Показва полето за отговор.
  • [no]author: Показва полето за авторитет.
  • [no]addit: Показва полето за допълнителна информация.
  • pfdef: Задава извеждането на флага по подразбиране.
  • pfmin: Задава минималния изход на флага.
  • pfset=#: Задава броя на флаговете за извеждане.
  • pfand=#: Извежда флагове, като използва операцията побитово И.
  • pfor=#: Извежда флагове, използвайки операцията „побитово ИЛИ“.

Параметърът -dig-otion се използва за други опции.

-x   Обратно преобразуване на адреси при нормално изписване.
-f    Чете файл за пакетна обработка.
-T   Време в секунди, докато се активира режимът за пакетна обработка.
-P   Издаване на команда ping след получаване на отговор.
-p   Номерът на порта, който трябва да се използва.
-t    Задайте типа на заявката.
-c    Задайте класа на заявката.
-envsav   Параметрите за изкопаване се запазват за използване по подразбиране по-късно.

Инсталиране на dig


За да се уверите, че командата dig е налична, изпълнете следната команда:
dig -v
Очакваният резултат ще бъде нещо подобно:
DiG 9.11.3-1ubuntu1.1-Ubuntu

Ако командата dig не е инсталирана - ще получите съобщението: „dig: command not found“ (dig: командата не е намерена). За да инсталирате dig, използвайте мениджъра на пакети на вашата дистрибуция.

Инсталиране на dig в Ubuntu и Debian:
apt update && sudo apt install dnsutils
Инсталиране на dig в CentOS и Fedora:
yum install bind-utils
Инсталиране на dig на Arch Linux:
pacman -S bind-tools

Отпечатване само на отговора


Ако трябва да получите само кратък отговор на дадено запитване, използвайте опцията +кратко:
dig linux.org +short
Изходът ще съдържа само IP адресите за записа A:
104.18.59.123
104.18.58.123

За по-подробен отговор използвайте параметрите +noall, за да изключите всички данни, и +answer, за да изведете само раздела с отговора:
dig linux.org +noall +answer
Изходът ще бъде следният:
; <<>> DiG 9.13.3 <<>> linux.org +noall +answer
;; глобални опции: +cmd
linux.org. 67 В А 104.18.58.123
linux.org. 67 В 104.18.59.123

Запитване за конкретен сървър за имена


По подразбиране dig използва сървърите, посочени в /etc/resolv.conf. За да посочите конкретен сървър за имена, използвайте символа @, последван от IP адреса или името на сървъра:
dig linux.org @8.8.8.8.8
Примерен изход за заявка към сървъра на Google (8.8.8.8.8.8):
; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8.8
;; глобални опции: +cmd
;; Получен отговор:
;; ->>>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110
;; флагове: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
;; EDNS: версия: 0, флагове:; udp: 512
;; РАЗДЕЛ С ВЪПРОСИ:
;linux.org. IN A
;; РАЗДЕЛ ЗА ОТГОВОРИ:
linux.org. 299 IN A 104.18.58.123
linux.org. 299 В А 104.18.59.123
;; Време на заявката: 54 msec
;; СЪРВЪР: 8.8.8.8.8#53(8.8.8.8.8)
;; КОГА: Fri Oct 12 14:28:01 CEST 2018
;; Размер на получените съобщения: 70

Запитване за тип запис


Запитване за записи A:
dig +nocmd google.com a +noall +answerИзход:
google.com. 128 В A 216.58.206.206

Запитване за CNAME записи:
dig +nocmd mail.google.com cname +noall +answerИзход:
mail.google.com. 553482 IN CNAME googlemail.l.google.com.

TXT records request:
dig +nocmd google.com txt +noall +answerРезултат:
google.com. 300 IN TXT „facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95“
google.com: В момента се проверява, дали е възможно да се получи информация от Google. 300 IN TXT „v=spf1 include:_spf.google.com ~all“
google.com. 300 IN TXT „docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e“

Как да проверите записа на домейна mx:
dig +nocmd google.com mx +noall +answer
Резултат:
google.com. 494 IN MX 30 alt2.aspmx.l.google.com.
google.com. 494 IN MX 10 aspmx.l.google.com.
google.com. 494 IN MX 40 alt3.aspmx.l.google.com.
google.com. 494 IN MX 50 alt4.aspmx.l.google.com.
google.com. 494 IN MX 20 alt1.aspmx.l.google.com.

Запитване за NS записи:
dig +nocmd google.com ns +noall +answer
Резултат:
google.com. 84527 IN NS ns1.google.com.
google.com. 84527 IN NS ns2.google.com.
google.com. 84527 IN NS ns4.google.com.
google.com. 84527 IN NS ns3.google.com.

Резултат:
google.com. 299 В А 216.58.212.14
google.com. 299 IN AAAA 2a00:1450:4017:804::200e
google.com. 21599 IN NS ns2.google.com.
google.com. 21599 IN NS ns1.google.com.
google.com. 599 IN MX 30 alt2.aspmx.l.google.com.
google.com. 21599 IN NS ns4.google.com.
google.com. 599 IN MX 50 alt4.aspmx.l.google.com.
google.com. 599 IN MX 20 alt1.aspmx.l.google.com.
google.com. 299 IN TXT „docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e“
google.com. 21599 IN CAA 0 issue „pki.goog“
google.com. 599 IN MX 40 alt3.aspmx.l.google.com.
google.com. 3599 IN TXT „facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95“
google.com: В момента се проверява, дали е възможно да се използва в интернет. 21599 IN NS ns3.google.com.
google.com. 599 IN MX 10 aspmx.l.google.com.
google.com. 3599 IN TXT „v=spf1 include:_spf.google.com ~all“
google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60

Обратно търсене на DNS


За да намерите името на хоста по IP адрес, използвайте опцията -x:
dig -x 208.118.235.148 +noall +answer
Резултат:
; <<>> DiG 9.13.3 <<>> -x 208.118.235.235.148 +noall +answer
;; глобални опции: +cmd
148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.

Масови запитвания
Ако трябва да направите запитване за множество домейни, добавете ги във файл (по един на ред) и използвайте параметъра -f, като посочите името на файла:
dig -f domains.txt +short
Пример за съдържанието на файла domains.txt:
lxer.com
linuxtoday.com
tuxmachines.org

Изходни данни:
108.166.170.171
70.42.23.121
204.68.122.43

Заключение


dig is a command-line utility designed to retrieve DNS information and diagnose problems related to domain name systems.
16 Aug 2024, 15:38:35