この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:guest
更新日時:2026-06-11 07:10:02

タイトル: hostコマンド
SEOタイトル: host コマンド完全ガイド — DNS 正引き/逆引き/MX/TXT/CNAME 確認、dig / nslookup との比較

この記事の要点
  • host軽量な DNS 問い合わせコマンド。BIND 由来で Linux / macOS の bind-utils に同梱
  • 基本: host example.com で A/AAAA レコード正引き、host 8.8.8.8 で逆引き (PTR)
  • -t でレコード種別指定 (A / AAAA / MX / TXT / NS / CNAME / SOA / SRV)
  • -a は ANY 相当の詳細表示。CNAME 連鎖や TTL も併せて表示
  • 同類の dig は詳細出力で運用向け、nslookup は対話的で初学者向け
  • 名前解決の出口が /etc/resolv.conf なのは共通。社内 DNS を指定したい場合は host example.com 192.0.2.53

host コマンドとは

hostBIND (Berkeley Internet Name Domain) に同梱される DNS 問い合わせクライアントです。dig と並んで Linux サーバ管理者が日常的に使うツールで、シンプルな出力が特徴です。

パッケージRHEL/CentOSDebian/UbuntumacOS
同梱パッケージbind-utilsbind9-host / dnsutils標準同梱
導入コマンドdnf install bind-utilsapt install dnsutils

基本: 正引き (ドメイン → IP)

host example.com
# example.com has address 93.184.216.34
# example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946
# example.com mail is handled by 0 .

# 短く出したい場合
host -s example.com   # SOA 関係を抑制

逆引き (IP → ドメイン)

host 8.8.8.8
# 8.8.8.8.in-addr.arpa domain name pointer dns.google.

host 2606:2800:220:1:248:1893:25c8:1946
# domain name pointer www.example.com.

レコード種別を指定: -t オプション

# MX (メールサーバ)
host -t MX example.com
# example.com mail is handled by 10 mx1.example.com.
# example.com mail is handled by 20 mx2.example.com.

# NS (権威サーバ)
host -t NS example.com
# example.com name server a.iana-servers.net.
# example.com name server b.iana-servers.net.

# TXT (SPF / DKIM / DMARC / 認証用)
host -t TXT example.com
# example.com descriptive text "v=spf1 -all"

# SOA
host -t SOA example.com

# CNAME
host -t CNAME www.example.com
# www.example.com is an alias for example.com.

# SRV (XMPP / SIP / LDAP の検出など)
host -t SRV _ldap._tcp.example.com

すべての情報を表示: -a オプション

-a-v -t ANY 相当。CNAME 連鎖、TTL、サーバ情報がまとめて見えます。

host -a www.example.com

# Trying "www.example.com"
# ;; ANSWER SECTION:
# www.example.com.   3600   IN   A     93.184.216.34
# www.example.com.   3600   IN   AAAA  2606:2800:220:1:248:1893:25c8:1946
#
# Received 87 bytes from 192.0.2.53#53 in 5 ms

問い合わせ先 DNS サーバを指定

第 2 引数で参照する DNS サーバを上書きできます。社内 DNS と公開 DNS で結果が違うときの切り分けに便利です。

# Google Public DNS で確認
host example.com 8.8.8.8

# Cloudflare で確認
host example.com 1.1.1.1

# 社内 DNS で確認
host intranet.corp.local 192.168.1.53

# 権威サーバに直接尋ねる
host -t MX example.com a.iana-servers.net

CNAME 連鎖の追跡

多段 CNAME の場合、host は最終的な A レコードまで自動で辿ります。

host www.github.com
# www.github.com is an alias for github.com.
# github.com has address 140.82.121.4

host -a www.github.com
# CNAME 連鎖と最終 A の TTL が全部見える

dig / nslookup との比較

観点hostdignslookup
出力人間に優しい短い文RFC 1035 風の詳細古典的フォーマット
用途サクッと確認運用・トラブルシュート本命初心者・対話型
パッケージbind-utils / dnsutilsbind-utils / dnsutilsbind-utils / dnsutils
権威サーバ直接引数で IP 指定@ プレフィクスserver サブコマンド
スクリプト適性★★★ (短い)★★★★★ (+short 等が便利)★ (整形が手間)
# 同じ問い合わせを 3 つのコマンドで
host -t MX example.com
dig +short MX example.com
nslookup -type=MX example.com

# スクリプトで A レコードだけ抜き出す例
host example.com | awk '/has address/ {print $NF}'
dig +short example.com

TTL を表示する

素の host は TTL を出しませんが、-v-a を付けると見えます。

host -v example.com
# Trying "example.com"
# ;; ANSWER SECTION:
# example.com.   86400   IN   A   93.184.216.34
#                ↑ TTL (秒)

逆引き (PTR) の詳細

逆引きゾーンは in-addr.arpa (IPv4) / ip6.arpa (IPv6) に登録されます。クラウドの IP は逆引きが提供事業者の名前になっていることが多いです。

# 通常の逆引き
host 142.250.196.110
# 110.196.250.142.in-addr.arpa domain name pointer kix07s12-in-f14.1e100.net.

# クラウドの例
host 13.230.10.20
# 20.10.230.13.in-addr.arpa domain name pointer ec2-13-230-10-20.ap-northeast-1.compute.amazonaws.com.

# 逆引きが未設定だと
host 192.0.2.99
# Host 99.2.0.192.in-addr.arpa not found: 3(NXDOMAIN)

よく使うトラブルシュートパターン

症状確認コマンド判断
サイトが繋がらないhost サイト名結果が NXDOMAIN → DNS の問題、IP が返る → 経路 / FW の問題
メールが届かないhost -t MX 受信側ドメインMX が無い / SPF (TXT) ミス
社内 / 社外で結果が違うhost A 8.8.8.8host A 社内DNSキャッシュ古い or split-horizon
SSL 証明書のドメインずれhost -a www で CNAME 連鎖を確認CDN や別 CNAME に飛んでいないか
逆引きが想定と違うhost IPクラウドの自動 PTR、メール送信時 SPF/PTR 一致要件 (RFC 5321)

スクリプトでの利用例

# IP リストを逆引き
for ip in 8.8.8.8 1.1.1.1 9.9.9.9; do
    echo -n "$ip => "
    host "$ip" | awk '{print $NF}'
done

# 8.8.8.8 => dns.google.
# 1.1.1.1 => one.one.one.one.
# 9.9.9.9 => dns.quad9.net.

# 自社ドメインの A レコードを連続監視
while sleep 60; do
    date +%T
    host example.com | grep "has address"
done

FAQ

Q: host: command not found と言われる
A: 最小構成の Linux では bind-utils / dnsutils 未導入のことがあります。dnf install bind-utils または apt install dnsutils を入れてください。コンテナ内で必要なら、デバッグ用の busybox nslookupgetent hosts も代用できます。

Q: hostping で結果の IP が違う
A: ping/etc/nsswitch.conf に従い /etc/hosts も見ます。host は基本的に DNS のみ。getent hosts example.com で「OS としてどう解決するか」を確認できます。

Q: dig と host、どちらを覚えれば良い?
A: 詳細トラブルシュートには dig、サクッと結果が欲しいときは host。本気で運用に関わるなら dig を覚えるのが最終的に得です。