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」パッケージに含まれています。以下の手順でインストールします。
手順
- パッケージ情報を更新
sudo apt update
- dnsutilsをインストール
sudo apt install dnsutils
- インストール確認
nslookup -version
バージョン情報が表示されれば成功です。
1.4 よくあるつまずきポイントと注意点
sudo権限がない場合
一般ユーザーではインストールできません。管理者権限が必要です。
apt updateを省略する
古いパッケージ情報のままインストールすると失敗する場合があります。
オフライン環境
ネットワーク接続がないとapt installは実行できません。
WSL環境の場合
Windows Subsystem for Linuxでは、ネットワーク設定がWindows側に依存することがあります。名前解決が不安定な場合はWindows側DNS設定も確認してください。
2. nslookupの基本的な使い方(最短で結果を確認する)
nslookupの基本操作は非常にシンプルです。最も多い検索意図は「ドメインのIPアドレスを確認したい」「名前解決が正常か確認したい」というものです。本章では、最短で確認する方法と出力の読み方を解説します。
2.1 ドメインからIPアドレスを調べる(正引き)

最も基本的な使い方は、ドメイン名を指定する方法です。
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 動作確認のチェック手順
名前解決が正しいか確認する基本フロー:
- IP直接通信確認
ping 8.8.8.8
- 名前解決確認
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 | ドメイン未登録・タイプミス |
| SERVFAIL | DNSサーバー障害 |
| connection timed out | ネットワーク遮断 |
| Temporary failure in name resolution | DNS設定不備 |
5.8 切り分けの基本フロー
- IPにpingできるか確認
- ドメインにpingできるか確認
- DNSサーバーを指定してnslookup
- resolv.conf確認
- 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 トラブル時の基本チェック順
- IPにpingできるか
- ドメインにpingできるか
- nslookupでDNS確認
- DNSサーバーを指定して比較
- 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

