Ubuntuでnslookupを使う方法|インストール・使い方・DNS確認手順を完全解説

目次

1. Ubuntuでnslookupを使う基本手順

Ubuntuで「nslookup」を使いたい場合、まず確認すべきは コマンドが利用可能かどうか です。nslookupはDNS(ドメイン名をIPアドレスに変換する仕組み)を確認するためのコマンドで、ネットワークの動作確認やトラブル切り分けに使われます。

Ubuntuのバージョンや環境によっては、初期状態でインストールされていないことがあります。その場合は追加インストールが必要です。

1.1 nslookupとは何か(初心者向け解説)

nslookupは「Name Server Lookup」の略で、DNSサーバーに問い合わせを行い、ドメイン名やIPアドレスの情報を取得するコマンドです。

主な用途は次のとおりです。

  • ドメインからIPアドレスを調べる(正引き)
  • IPアドレスからドメインを調べる(逆引き)
  • MXレコード(メールサーバー情報)などを確認する

似たコマンドに「dig」がありますが、nslookupは出力が比較的シンプルで初心者向きです。高度な解析が必要な場合はdigが使われることもあります。

1.2 Ubuntuでnslookupが使えるか確認する方法

まずはターミナルを開き、次のコマンドを実行します。

nslookup

もし次のようなエラーが出た場合:

Command 'nslookup' not found

→ nslookupはインストールされていません。

1.3 nslookupをインストールする手順

Ubuntuでは、nslookupは「dnsutils」パッケージに含まれています。以下の手順でインストールします。

手順

  1. パッケージ情報を更新
    sudo apt update
    
  1. dnsutilsをインストール
    sudo apt install dnsutils
    
  1. インストール確認
    nslookup -version
    

バージョン情報が表示されれば成功です。

1.4 よくあるつまずきポイントと注意点

sudo権限がない場合

一般ユーザーではインストールできません。管理者権限が必要です。

apt updateを省略する

古いパッケージ情報のままインストールすると失敗する場合があります。

オフライン環境

ネットワーク接続がないとapt installは実行できません。

WSL環境の場合

Windows Subsystem for Linuxでは、ネットワーク設定がWindows側に依存することがあります。名前解決が不安定な場合はWindows側DNS設定も確認してください。

2. nslookupの基本的な使い方(最短で結果を確認する)

nslookupの基本操作は非常にシンプルです。最も多い検索意図は「ドメインのIPアドレスを確認したい」「名前解決が正常か確認したい」というものです。本章では、最短で確認する方法と出力の読み方を解説します。

2.1 ドメインからIPアドレスを調べる(正引き)

Ubuntu nslookup example.com command output

最も基本的な使い方は、ドメイン名を指定する方法です。

nslookup example.com

実行すると、次のような出力が表示されます(内容は環境により異なります)。

Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   example.com
Address: 93.184.216.34

出力の読み方

  • Server / Address → 問い合わせに使用されたDNSサーバー Ubuntuでは 127.0.0.53 が表示されることが多いですが、これは systemd-resolved(ローカルDNS管理サービス)です。
  • Non-authoritative answer → 権威DNSサーバー(公式な管理元)ではなく、キャッシュDNSからの回答という意味。通常は問題ありません。
  • Address → 実際のIPアドレス(IPv4)。 環境によってはIPv6(AAAAレコード)も表示されます。

2.2 IPアドレスからドメインを調べる(逆引き)

IPアドレスからドメイン名を調べることも可能です。

nslookup 8.8.8.8

例:

Non-authoritative answer:
8.8.8.8.in-addr.arpa name = dns.google.

これはPTRレコード(逆引き用DNSレコード)による結果です。

注意点

  • すべてのIPアドレスが逆引きできるわけではありません。
  • 逆引きが設定されていない場合は結果が表示されません。

2.3 よくある失敗と原因

SERVFAILが表示される

DNSサーバー側の問題、またはネットワーク障害の可能性があります。

NXDOMAINが表示される

そのドメインが存在しない、またはDNSに登録されていません。

結果が想定と違う

  • ローカルDNSキャッシュが影響している
  • VPN接続中でDNSが切り替わっている
  • 社内ネットワークのDNSが優先されている

2.4 動作確認のチェック手順

名前解決が正しいか確認する基本フロー:

  1. IP直接通信確認
    ping 8.8.8.8
    
  1. 名前解決確認
    nslookup google.com
    

IPでは疎通できるが、ドメインでは失敗する場合 → DNS設定の問題です。

3. DNSサーバーを指定して調査する方法

名前解決トラブルの切り分けでは、「どのDNSサーバーに問い合わせた結果なのか」が重要です。Ubuntuは環境により、ローカルDNS・ISPのDNS・VPNのDNSなどが自動的に使われます。そのため、特定のDNSサーバーを明示的に指定して確認することで、問題の原因を特定できます。

3.1 特定のDNSサーバーを指定して問い合わせる

基本構文は次のとおりです。

nslookup ドメイン名 DNSサーバーIP

例:Google Public DNSを指定する場合

nslookup example.com 8.8.8.8

よく使われるDNSサーバー例

  • 8.8.8.8(Google Public DNS)
  • 1.1.1.1(Cloudflare DNS)
  • ISP提供のDNS(契約環境により異なる)

活用場面

  • 自分の環境だけ名前解決できない
  • サーバー移転後のDNS反映確認
  • 社内DNSの影響を排除したい場合

もし指定DNSでは正常に解決するが、通常実行では失敗する場合 → ローカルDNS設定に問題がある可能性が高いです。

3.2 インタラクティブモードの使い方

nslookupは対話モードでも利用できます。

nslookup

実行するとプロンプトが表示されます。

>

DNSサーバーを指定:

> server 8.8.8.8

問い合わせ:

> example.com

終了:

> exit

メリット

  • DNSサーバーを固定したまま複数ドメインを調査可能
  • 連続調査に向いている

3.3 /etc/resolv.conf の影響

Ubuntuでは通常、/etc/resolv.conf に使用中のDNSサーバー情報が記載されています。

確認方法:

cat /etc/resolv.conf

ただし注意点があります。

systemd-resolved使用環境

多くのUbuntuでは以下が表示されます:

nameserver 127.0.0.53

これはローカルDNS管理サービス(systemd-resolved)経由で外部DNSへ問い合わせている状態です。

直接外部DNSを確認したい場合は、nslookupでDNSを指定する方が確実です。

3.4 よくある注意点

VPN接続中

VPNが独自DNSを使用する場合、通常の名前解決結果が変わります。

Docker環境

コンテナ内部では別のDNS設定が使われることがあります。

DNS伝播(反映待ち)

ドメイン設定変更後は、世界中のDNSサーバーへ反映されるまで時間がかかります(TTL:有効期限)。

4. 特定レコード(MX・NS・TXTなど)の調べ方

nslookupは単純なIP確認だけでなく、DNSレコードの種類を指定して取得することも可能です。メール設定確認やDNS移行作業では、この機能が重要になります。

DNSレコードとは、ドメインに紐づく設定情報の種類です。用途ごとに複数の種類が存在します。

4.1 MXレコードを確認する(メールサーバー確認)

MX(Mail Exchange)レコードは、メールの送信先サーバーを示します。

確認コマンド:

nslookup -type=mx example.com

出力例:

example.com   mail exchanger = 10 mail.example.com.

確認ポイント

  • 数値(10など)は優先順位(小さいほど優先)
  • メール配送トラブル時の確認に使用
  • メールサービス移行時に必須確認

よくある失敗

  • MXレコードが存在しない → メール受信不可
  • 旧サーバーが残っている → 伝播未完了の可能性

4.2 NSレコードを確認する(権威DNS確認)

NS(Name Server)レコードは、ドメインを管理しているDNSサーバーを示します。

nslookup -type=ns example.com

確認ポイント

  • ドメイン移管直後の確認
  • DNS設定変更後の反映確認
  • どのDNS事業者が管理しているか確認可能

つまずきポイント

  • 想定外のDNSサーバーが表示される → まだ旧DNSが有効な可能性

4.3 TXTレコードを確認する(SPF・認証用途)

TXTレコードは、文字列情報を保持するDNSレコードです。

nslookup -type=txt example.com

主な用途:

  • SPF(メール送信元認証)
  • DKIM確認
  • Google Search Console所有権確認

注意点

  • 複数TXTレコードが存在することがある
  • 反映まで時間がかかる場合がある
  • 表示が長文になることがある

4.4 NXDOMAINが出る場合の意味

** server can't find example.com: NXDOMAIN

意味:

  • ドメインが存在しない
  • タイプミス
  • DNS登録前

レコードタイプ指定時にNXDOMAINが出る場合は、該当レコードが未設定の可能性があります。

4.5 DNS反映(伝播)に関する重要注意

DNS変更後、すぐに世界中へ反映されるわけではありません。

影響要素:

  • TTL(キャッシュ保持時間)
  • 各DNSサーバーの更新タイミング
  • ISP側キャッシュ

確認時は、複数のDNSサーバーを指定して比較することが有効です。

5. nslookupが動かない・結果がおかしい場合の対処法

nslookupが正常に動作しない場合、原因は「ネットワーク」「DNS設定」「ローカル環境」のいずれかに分類できます。本章では、初心者でも順番に確認できる切り分け手順を解説します。

5.1 ネットワーク接続を確認する

まずはインターネットに接続できているか確認します。

ping 8.8.8.8

判定方法

  • 応答がある → ネットワーク接続は正常
  • 応答がない → ネットワーク障害、ルーター、VPN、ファイアウォールの可能性

IPアドレスへの通信ができない場合、DNS以前の問題です。

5.2 ドメイン名での疎通確認

次に、名前解決ができているか確認します。

ping google.com

結果の見方

  • IPが表示される → 名前解決成功
  • 「Temporary failure in name resolution」 → DNS設定に問題あり

5.3 DNS設定を確認する

現在利用中のDNSサーバーを確認します。

cat /etc/resolv.conf

表示例:

nameserver 127.0.0.53

これはsystemd-resolvedが管理している状態です。

5.4 systemd-resolvedの状態確認

Ubuntuでは多くの場合、systemd-resolvedがDNS管理を行っています。

systemctl status systemd-resolved

異常時の対応例

サービス再起動:

sudo systemctl restart systemd-resolved

環境により挙動は異なるため、再起動で改善しない場合はDNS設定全体を見直します。

5.5 VPN接続時の注意

VPN接続中はDNSサーバーが自動変更されることがあります。

確認方法:

nmcli dev show | grep DNS

VPNを切断して再度nslookupを試すことで、切り分け可能です。

5.6 Docker環境での名前解決問題

Dockerコンテナ内では独自DNSが使われることがあります。

確認方法:

cat /etc/resolv.conf

ホストとコンテナでDNSが異なる場合、DockerのDNS設定を確認します。

5.7 よくあるエラーまとめ

エラー表示主な原因
NXDOMAINドメイン未登録・タイプミス
SERVFAILDNSサーバー障害
connection timed outネットワーク遮断
Temporary failure in name resolutionDNS設定不備

5.8 切り分けの基本フロー

  1. IPにpingできるか確認
  2. ドメインにpingできるか確認
  3. DNSサーバーを指定してnslookup
  4. resolv.conf確認
  5. VPN・Docker確認

この順番で確認すると効率的です。

6. nslookupとdigの違い(中級者向け補足)

UbuntuでDNSを確認する際、「nslookup」と並んでよく使われるコマンドが「dig」です。検索でも「ubuntu dig nslookup 違い」といった関連語が多く見られます。本章では両者の違いを明確に整理します。

6.1 nslookupの特徴

nslookupは、シンプルにDNS問い合わせ結果を確認するためのコマンドです。

特徴

  • 出力が比較的読みやすい
  • 基本的な正引き・逆引き・レコード確認が可能
  • 初心者でも扱いやすい
  • インタラクティブモードがある

向いている用途

  • ドメインのIP確認
  • MXレコード確認
  • 名前解決の一次確認
  • 簡易トラブル切り分け

制限事項

  • 詳細なDNS応答情報は表示されない
  • DNSヘッダ情報(TTLやフラグなど)が簡略表示
  • 本格的なDNS解析には不向き

6.2 digの特徴

digは「Domain Information Groper」の略で、より詳細なDNS情報を取得できるツールです。

Ubuntuではdnsutilsに含まれます。

実行例

dig example.com

特徴

  • DNS応答の詳細を表示
  • TTL(キャッシュ有効時間)確認可能
  • 応答ステータス(NOERRORなど)が明確
  • +shortオプションで簡潔表示可能

例:

dig example.com +short

向いている用途

  • サーバー運用
  • DNS障害解析
  • TTL確認
  • 権威DNS確認

6.3 どちらを使うべきか

用途推奨コマンド
初心者の確認nslookup
簡易トラブル調査nslookup
詳細解析dig
TTL確認dig

初心者や通常確認用途ではnslookupで十分です。
DNS運用や障害解析ではdigが適しています。

6.4 注意点

  • digもnslookupも同じDNSサーバー設定の影響を受ける
  • 出力形式が異なるだけで、問い合わせ内容は基本的に同じ
  • 企業環境ではdigの方が推奨されることが多い

7. まとめ(Ubuntuでnslookupを安全に使うために)

本記事では、Ubuntuでnslookupを使用するための基本手順から、DNSサーバー指定、レコード確認、トラブル対処、digとの違いまで体系的に解説しました。ここで、実務で役立つ重要ポイントを整理します。

7.1 最重要ポイントの再確認

  • nslookupはDNS(名前解決)確認コマンド
  • Ubuntuでは dnsutils パッケージに含まれる
  • 基本確認は以下で十分
    nslookup example.com
    
  • 特定DNSサーバーを指定すると切り分け精度が上がる
    nslookup example.com 8.8.8.8
    
  • レコード確認は -type= オプションを使用
    nslookup -type=mx example.com
    

7.2 実務での典型的な利用例

サーバー移転後の確認

  • 新IPが反映されているか確認
  • 旧IPが残っていないか確認
  • 複数DNSで比較確認

メール設定確認

  • MXレコードが正しいか確認
  • SPF(TXTレコード)確認

名前解決エラー発生時

  • IP直打ちで通信確認
  • DNS指定して再確認
  • resolv.conf確認

7.3 トラブル時の基本チェック順

  1. IPにpingできるか
  2. ドメインにpingできるか
  3. nslookupでDNS確認
  4. DNSサーバーを指定して比較
  5. VPN・Docker・systemd-resolved確認

この順序で確認すれば、原因特定まで最短で到達できます。

7.4 よくある誤解

  • Non-authoritative answerはエラーではない
  • NXDOMAINは必ずしも障害ではなく未登録の可能性
  • DNS変更は即時反映されない(TTLの影響)

Ubuntu環境でのDNS確認は、nslookupを正しく理解すれば効率的に行えます。

よくある質問

Q1. Ubuntuで「nslookup: command not found」と表示されます

nslookupはデフォルトでインストールされていない場合があります。
以下を実行してください。

sudo apt update
sudo apt install dnsutils

その後、nslookup を再実行します。

Q2. Non-authoritative answerとは何ですか?

権威DNSサーバー(公式な管理元)ではなく、キャッシュDNSサーバーからの応答という意味です。
通常は問題ありません。エラーではありません。

Q3. NXDOMAINが表示されるのはなぜですか?

NXDOMAINは「そのドメインが存在しない」ことを意味します。

原因例:

  • ドメインの入力ミス
  • DNS未登録
  • レコード未設定

Q4. SERVFAILが出る原因は何ですか?

主な原因は以下です。

  • DNSサーバー障害
  • ネットワーク遮断
  • DNS設定不整合

DNSサーバーを指定して再確認すると切り分けできます。

nslookup example.com 8.8.8.8

Q5. DNS変更後すぐに反映されないのはなぜですか?

DNSはTTL(Time To Live:キャッシュ保持時間)に従って更新されます。
そのため、変更後すぐに全世界へ反映されるわけではありません。環境により数分〜数時間かかる場合があります。

Q6. nslookupとdigはどちらを使うべきですか?

  • 初心者・簡易確認 → nslookup
  • 詳細解析・TTL確認 → dig

用途に応じて使い分けます。

Q7. IPv6アドレスだけ表示されるのはなぜですか?

対象ドメインにIPv6(AAAAレコード)のみ設定されている可能性があります。
IPv4確認を行う場合は、Aレコード指定も可能です。

nslookup -type=a example.com

Q8. VPN接続中に結果が変わるのはなぜですか?

VPNは独自のDNSサーバーを利用することがあります。
VPNを切断して再確認すると、通常環境との差を確認できます。

nmcli dev show | grep DNS