Webサイトが表示されない、メールサーバに接続できない、そんなトラブルの原因を調査する上で「DNS情報の確認」は欠かせません。LinuxでDNSの名前解決状況を調べるためのコマンドとしてよく使われるのが「nslookup
」です。
このコマンドを使えば、ドメイン名からIPアドレスを調べたり、逆にIPアドレスからドメイン名を確認したりすることができます。本記事では、Linux環境でのnslookup
コマンドの使い方を実例とともに詳しく解説します。トラブルシューティングやサーバ管理に役立つ知識として、ぜひご活用ください。
nslookupとは?基本的な役割と機能
nslookup
(Name Server Lookup)は、DNS(Domain Name System)の名前解決状況を調査するためのコマンドラインツールです。
ドメイン名を指定すると、そのホスト名に紐づいたIPアドレスを返してくれます。また、逆にIPアドレスを指定することで、そのIPに関連付けられたホスト名(PTRレコード)を確認することも可能です。
nslookup
はLinuxだけでなく、WindowsやmacOSなど多くのプラットフォームで利用できるため、ネットワーク診断ツールとして広く使われています。
nslookupのインストール方法
多くのLinuxディストリビューションではnslookup
が標準でインストールされていますが、インストールされていない場合は以下のようにして追加できます。
Ubuntu / Debian系:
sudo apt update
sudo apt install dnsutils
CentOS / Red Hat系:
sudo yum install bind-utils
インストール後、which nslookup
でパスが通っているか確認しておきましょう。
単純な名前解決の使い方(Aレコードの取得)
最も基本的な使い方は、ドメイン名を指定してそのAレコード(IPv4アドレス)を取得する方法です。
nslookup example.com
出力例:
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: example.com
Address: 93.184.216.34
このように、DNSサーバーの情報と対象のIPアドレスが表示されます。
特定のDNSサーバーを指定して名前解決
nslookup
では、デフォルトのDNSサーバーではなく、特定のDNSサーバーに問い合わせることもできます。
nslookup example.com 1.1.1.1
これはCloudflareのパブリックDNS(1.1.1.1)を使用して名前解決する例です。DNSの設定ミスや地域差などのトラブルを切り分けたい時に便利です。
MXレコード(メールサーバ)の確認
nslookup
はメールサーバ情報(MXレコード)を確認するのにも使えます。
nslookup -query=mx example.com
出力例:
example.com mail exchanger = 10 mail.example.com.
この出力から、そのドメインが使用しているメールサーバーのホスト名や優先度が分かります。
TXTレコード(SPFやDKIMなど)の確認
メールの送信元認証などに関係するTXTレコードも確認できます。
nslookup -query=txt example.com
出力例:
example.com text = "v=spf1 include:_spf.google.com ~all"
このような情報は、メールの送信設定や迷惑メール対策の確認に役立ちます。
逆引き(PTRレコード)の確認
IPアドレスからドメイン名を調べる、いわゆる「逆引き」も可能です。
nslookup 8.8.8.8
出力例:
8.8.8.8.in-addr.arpa name = dns.google.
これはGoogleのパブリックDNSサーバーに対応したホスト名を示しています。
対話モードで詳細なDNS情報を取得する
nslookup
には対話モード(インタラクティブモード)があります。以下のようにコマンドを実行し、プロンプトに入ることでさまざまな情報を連続して確認できます。
nslookup
プロンプトが表示されます:
>
この状態で以下のように操作できます:
> set type=mx
> example.com
また、以下のような設定も可能です:
> set debug
> example.com
set debug
を使うと、より詳細なDNSトランザクション情報が表示され、問題の切り分けに役立ちます。
よく使うオプションまとめ
オプション | 説明 |
---|---|
-query=A | Aレコードを取得(デフォルト) |
-query=MX | MXレコード(メールサーバ情報)を取得 |
-query=TXT | TXTレコード(SPFなど)を取得 |
-query=NS | ネームサーバー情報を取得 |
-query=SOA | ゾーンの管理情報を確認 |
set debug | 詳細なDNS応答情報を表示(対話モード) |
set type=ANY | すべてのレコードタイプを取得 |
nslookupを使ったトラブルシューティングの例
DNSに関するトラブルで、よくある場面とその対処法をnslookup
を使って確認してみましょう。
1. Webサイトが表示されない
nslookup www.example.com
Aレコードが返ってこない場合、そのドメインがDNSに登録されていないか、DNSサーバーに障害が発生している可能性があります。
2. メールが送信できない
nslookup -query=mx example.com
MXレコードが存在しない、または誤って設定されていると、メール配送が正常に行われません。
3. 逆引きできない
nslookup 203.0.113.5
ホスト名が表示されない場合は、逆引きのPTRレコードが設定されていないか、権限のないDNSサーバーを参照している可能性があります。
nslookupの注意点と今後の移行
実はnslookup
は古いツールとされ、BIND開発者は「今後はdig
やhost
の使用を推奨」としています。とはいえ、その簡単な操作性から、現在でも多くの現場で利用されています。
将来的には、より詳細かつ柔軟にDNSを調査できるdig
コマンドに慣れておくこともおすすめです。
まとめ
nslookup
コマンドは、LinuxでDNS情報を素早く確認できる便利なツールです。
Aレコードの確認はもちろん、MXやTXTレコード、逆引きなど幅広い用途に使え、ネットワークのトラブルシューティングにも非常に役立ちます。
「Webサイトが開かない」「メールが届かない」といった問題に直面した時、ぜひnslookup
を活用して、問題解決の第一歩を踏み出してみましょう。