host е основна и лесна за използване програма от команден ред за изпращане на запитвания за DNS записи на домейни и получаване на отговори от съответните неймсървъри.
Обикновено се използва за преобразуване на домейн име в IP адрес и обратно. Когато няма въведени опция или домейн, host
показва списък с опции:
$ host
Usage: host [-aCdilrTvVw] [-c class] [-N ndots] [-t type] [-W time]
[-R number] [-m flag] hostname [server]
-a is equivalent to -v -t ANY
-c specifies query class for non-IN data
-C compares SOA records on authoritative nameservers
-d is equivalent to -v
-i IP6.INT reverse lookups
-l lists all hosts in a domain, using AXFR
-m set memory debugging flag (trace|record|usage)
-N changes the number of dots allowed before root lookup is done
-r disables recursive processing
-R specifies number of retries for UDP packets
-s a SERVFAIL response should stop query
-t specifies the query type
-T enables TCP/IP mode
-v enables verbose output
-V print version number and exit
-w specifies to wait forever for a reply
-W specifies how long to wait for a reply
-4 use IPv4 query transport only
-6 use IPv6 query transport only
Както при много Linux команди и host
има много опции, но повечето от тях няма да са необходими за това, което желаете да направите.
В тази статия ще Ви покажем как да използвате командата host
за откриване на различни типове DNS записи на домейн с помощта на някои опции на командата в Linux терминал.
По подразбиране командата host
търси само записи A, AAAA и MX
:
$ host linux.org
linux.org has address 104.21.21.76
linux.org has address 172.67.197.8
linux.org has IPv6 address 2606:4700:3031::6815:154c
linux.org has IPv6 address 2606:4700:3037::ac43:c508
linux.org mail is handled by 10 mx1.improvmx.com.
linux.org mail is handled by 20 mx2.improvmx.com.
Как може да изберете/променяте типа на търсения DNS запис?
Въведете опцията -t
и след нея идентификатор на DNS записа mx
(a, aaaa, ns, cname …), за да определите типа (MX) на заявката:
$ host -t mx linux.org
А (IPv4) запис
A записът (address, a) свързва хост име с IPv4 адрес.
$ host -t a linux.org
linux.org has address 104.21.21.76
linux.org has address 172.67.197.8
АААА (IPv6) запис
AAAA записът (address, aaaa) свързва хост име с 128-битов IPv6 адрес.
$ host -t aaaa linux.org
linux.org has IPv6 address 2606:4700:3037::ac43:c508
linux.org has IPv6 address 2606:4700:3031::6815:154c
MX запис
MX записът (mail exchange, mx) свързва домейн име с мейл сървър/и за управление пощите към този домейн.
$ host -t mx google.com
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.
NS запис
NS записът (name server, ns) свързва домейн име с авторитетни неймсървъри, съдържащи зоновия файл на домейна.
$ host -t ns google.com
google.com name server ns2.google.com.
google.com name server ns1.google.com.
google.com name server ns3.google.com.
google.com name server ns4.google.com.
CNAME запис
CNAME запис (canonical name, cname) на поддомейн означава, че едно домейн име е псевдоним на друго.
$ host -t cname mail.google.com
mail.google.com is an alias for googlemail.l.google.com.
TXT запис
TXT записът (text, txt) позволява на администратора да вмъкне произволен текст в записа. Домейнът може да има много TXT записи. Най-често използваните TXT записи са Sender Policy Framework (SPF), DomainKeys (DK), DomainKeys Identified E-mail (DKIM) и Service (SRV).
$ host -t txt google.com
google.com descriptive text "globalsign-smime-dv=CDYX+XFHUw2wml6/Gb8+59BsH31KzUr6c1l2BPvqKX8="
google.com descriptive text "docusign=1b0a6754-49b1-4db5-8540-d2c12664b289"
google.com descriptive text "apple-domain-verification=30afIBcvSuDV2PLX"
google.com descriptive text "google-site-verification=wD8N7i1JTNTkezJ49swvWW48f8_9xveREV4oB-0Hf5o"
google.com descriptive text "v=spf1 include:_spf.google.com ~all"
CAA запис
CAA записът (certification authority authorization, caa) посочва кои сертифициращи органи (CA) имат право да издават SSL сертификати за домейна.
$ host -t caa yahoo.com
yahoo.com has CAA record 0 iodef "mailto:security@verizonmedia.com"
yahoo.com has CAA record 0 issue "globalsign.com"
yahoo.com has CAA record 0 issue "digicert.com"
PTR (reverse) запис
PTR записът (pointer, ptr) свързва IPv4 адрес с каноничното име за този хост.
$ host 149.20.4.15
15.4.20.149.in-addr.arpa domain name pointer mirror-isc3.debian.org.
WILDCARD запис
WILDCARD записът отговаря на заявки към несъществуващи поддомейни.
$ host *.redhat.com
*.redhat.com mail is handled by 20 mx2.redhat.com.
*.redhat.com mail is handled by 10 mx1.redhat.com.
SOA запис
Записът SOA (start of authority, soa) съдържа информация за главния (master) неймсървър, имейл адреса на администратора на домейна, серийния номер на домейна и няколко времеви настройки, свързани с кеширане на записите в DNS зоната.
$ host -t soa debian.org
debian.org has SOA record denis.debian.org. hostmaster.debian.org. 2018013109 1800 600 1814400 600
Запитване на произволен неймсървър с командата host
За да изпратите запитването към произволен неймсървър, добавете в командата хост името или IP адреса на неймсървъра след домейн името.
$ host -t txt google.com ns1.google.com
Using domain server:
Name: ns1.google.com
Address: 216.239.32.10#53
Aliases:
google.com descriptive text "v=spf1 include:_spf.google.com ~all"
google.com descriptive text "globalsign-smime-dv=CDYX+XFHUw2wml6/Gb8+59BsH31KzUr6c1l2BPvqKX8="
google.com descriptive text "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
google.com descriptive text "docusign=1b0a6754-49b1-4db5-8540-d2c12664b289"
google.com descriptive text "google-site-verification=wD8N7i1JTNTkezJ49swvWW48f8_9xveREV4oB-0Hf5o"
google.com descriptive text "apple-domain-verification=30afIBcvSuDV2PLX"
$ host -t txt google.com 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:
google.com descriptive text "v=spf1 include:_spf.google.com ~all"
google.com descriptive text "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
Рекурсивно запитване с командата host
Ако желаете да получите подробен отговор на запитването (наподобява синтаксиса на командата dig
) трябва да използвате опция -d
:
$ host -d google.com
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60419
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 150 IN A 216.58.212.46
Received 44 bytes from 127.0.1.1#53 in 39 ms
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48539
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN AAAA
;; ANSWER SECTION:
google.com. 80 IN AAAA 2a00:1450:4017:805::200e
Received 56 bytes from 127.0.1.1#53 in 22 ms
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52594
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN MX
;; ANSWER SECTION:
google.com. 600 IN MX 10 aspmx.l.google.com.
google.com. 600 IN MX 40 alt3.aspmx.l.google.com.
google.com. 600 IN MX 20 alt1.aspmx.l.google.com.
google.com. 600 IN MX 30 alt2.aspmx.l.google.com.
google.com. 600 IN MX 50 alt4.aspmx.l.google.com.
Received 136 bytes from 127.0.1.1#53 in 78 ms