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