まず結論:名前解決の確認はこの1行から
ホスト名に対応するIPアドレスを調べるには、digコマンドが最速です。ほぼすべての実務環境で利用でき、出力も読みやすく、スクリプトへの組み込みにも適しています。
dig +short example.com
+shortオプションを付けるとIPアドレスだけが返ります。詳細な診断が必要な場合はオプションなしで実行してください。digがインストールされていなければ、以下でインストールできます。
# Debian/Ubuntu系
sudo apt install bind9-dnsutils
# RHEL/AlmaLinux/Rocky Linux系
sudo dnf install bind-utils
出力の読み方と確認すべき3か所
+shortなしで実行すると詳細な応答が返ります。見るべき箇所は3点です。
$ dig example.com
; <<>> DiG 9.18.x <<>> example.com
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 3600 IN A 93.184.216.34
;; Query time: 12 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Sun Aug 10 10:00:00 JST 2026
;; MSG SIZE rcvd: 56
まず ANSWER SECTION に記載されているIPアドレスが名前解決の結果です。次に status: NOERROR が「正常に解決できた」ことを示します。NXDOMAIN が返る場合はホスト名が存在しないか、DNSに未登録です。最後に Query time で応答速度がわかります。極端に遅い場合はDNSサーバーへの経路に問題があることが多いです。
特定のDNSサーバーを指定して問い合わせる
DNSの設定変更後に「このサーバーに反映されているか」を確認したい場合は、@でDNSサーバーを指定します。社内DNSと外部DNSの結果が異なる場合のキャッシュ切り分けにも有効です。
# Google Public DNSに直接問い合わせる
dig @8.8.8.8 example.com +short
# Cloudflare DNSに直接問い合わせる
dig @1.1.1.1 example.com +short
IPv6アドレス(AAAAレコード)も確認する
デフォルトでは dig はAレコード(IPv4)を問い合わせます。IPv6アドレスが必要な場合はクエリタイプを明示してください。
# IPv6アドレス(AAAAレコード)を取得
dig example.com AAAA +short
# IPv4とIPv6をまとめて確認
dig example.com A +short
dig example.com AAAA +short
デュアルスタック環境でのトラブルシューティングでは、AとAAAAの両方を確認する習慣が原因特定を早めます。
nslookupでシンプルに確認する
nslookupも同様の確認が可能です。構文がシンプルなため、手軽に使いたい場面や dig が入っていない環境で役立ちます。
# ホスト名からIPアドレスを調べる
nslookup example.com
# 特定のDNSサーバーを指定する場合
nslookup example.com 8.8.8.8
出力の Non-authoritative answer は、権威DNSサーバーではなくキャッシュDNSから返った結果であることを意味します。通常の問い合わせではこの表示が出るのが正常です。
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: example.com
Address: 93.184.216.34
詳細な診断情報(TTL・ネームサーバー・応答時間など)が必要な場面では、digのほうが情報量の面で優れています。
systemd-resolved環境での落とし穴
Ubuntu 18.04以降やRHEL 8以降など、近年の主要ディストリビューションではsystemd-resolvedが名前解決を管理しています。この環境では /etc/resolv.conf の nameserver が 127.0.0.53(スタブリゾルバー)を指しています。
cat /etc/resolv.conf
# nameserver 127.0.0.53 ← スタブリゾルバー(systemd-resolvedが受ける)
この場合、digやnslookupの問い合わせ先はあくまで 127.0.0.53 であり、実際に上流のどのDNSサーバーへ転送されているかは別途確認が必要です。上流サーバーを確認するには resolvectl を使います。
# 実際に使われているDNSサーバーと設定を確認
resolvectl status
# resolvectlで名前解決を直接確認することも可能
resolvectl query example.com
ある運用現場では、DNS設定変更後も dig が想定外のサーバーへ問い合わせていることに気づかず、「変更が反映されない」と長時間悩んだケースがありました。systemd-resolved環境では resolvectl status で上流サーバーを確認する手順をセットにしておくことをお勧めします。
また、/etc/resolv.conf がシンボリックリンクになっている場合があります。直接編集する前に確認してください。
# シンボリックリンクかどうかを確認
ls -la /etc/resolv.conf
# NetworkManager経由でDNSサーバーを恒久的に変更する場合
# (接続名は nmcli connection show で確認)
nmcli connection modify "接続名" ipv4.dns "192.168.1.1 8.8.8.8"
nmcli connection up "接続名"
注意:NetworkManagerやsystemd-resolvedが管理する環境では、/etc/resolv.conf への直接書き込みは再起動・再接続時に上書きされます。恒久的な変更は必ずネットワーク管理ツール側の設定から行ってください。
「コマンドは打てる。次は"現場で通用する型"を最短で身につけたい」——そんなあなたへ。
ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。
>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)
※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。
