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