目次
はじめに
サーバやPCからインターネットに接続しようとしたとき、ping google.com
が失敗する、ブラウザでサイトが開けない、といったトラブルに遭遇することがあります。
このような場合、ネットワーク自体はつながっていても DNS解決ができていない ことが原因の可能性があります。
この記事では、dig
や nslookup
を使った調査手順と、DNS解決ができないときの具体的な原因と対処方法を解説します。
あわせて読みたい


ネットワーク管理の基本コマンド解説 – ifconfig, ping, traceroute, nslookupを使いこなそう
inuxでのネットワーク設定と管理 – 基本コマンドの使い方 ネットワーク管理はLinuxにおいて非常に重要なスキルです。この記事では、ネットワークの設定と確認に使う代表…
よくある原因
DNS解決ができない場合、以下のような原因が考えられます。
- DNSサーバが指定されていない/誤っている
- ネットワーク設定の不備(resolv.conf や NetworkManager 設定など)
- ファイアウォールやセキュリティ設定によるブロック
- 外部のDNSサーバ障害(Google Public DNSやISPのDNSなど)
調査手順
1. ネットワーク自体が生きているか確認
まずはIP通信ができるか確認します。
ping 8.8.8.8
Google Public DNSのIP(8.8.8.8)にpingが通れば、ネットワーク自体は生きています。
→ この場合は「DNS解決のみ失敗している」ことが分かります。
2. dig で名前解決を試す
dig
はDNS調査に便利なコマンドです。
dig google.com
ANSWER SECTION
にIPアドレスが表示されれば解決成功connection timed out; no servers could be reached
→ DNSサーバに到達できていないSERVFAIL
→ サーバ側の問題、もしくは問い合わせに失敗
DNSサーバを明示的に指定して確認することも可能です。
dig @8.8.8.8 google.com
3. nslookup で確認する
nslookup
もDNS確認に利用できます。
nslookup google.com
失敗した場合は以下のようなエラーが出ます。
server can't find google.com: SERVFAIL
connection timed out; no servers could be reached
4. /etc/resolv.conf を確認する
Linuxの場合、DNSサーバの設定は /etc/resolv.conf
に記録されています。
cat /etc/resolv.conf
例:
nameserver 8.8.8.8
nameserver 1.1.1.1
ここに正しいDNSサーバが設定されていない場合、名前解決はできません。
※ NetworkManager や systemd-resolved を使っている環境では、このファイルが自動管理されていることがあります。
5. ファイアウォールやセキュリティの確認
DNSは通常UDP 53番ポートを利用します。
以下のようなケースでブロックされている可能性があります。
- firewalld/iptables で 53番ポートが遮断されている
- セキュリティソフトやProxyでDNSが制限されている
確認例(firewalld):
firewall-cmd --list-all
解決方法
- resolv.conf / ネットワーク設定を修正
→ ISPや社内ネットワークの正しいDNSサーバを設定
→ 公開DNS(例:Google DNS8.8.8.8
、Cloudflare DNS1.1.1.1
)を利用 - systemd-resolved の再起動
systemctl restart systemd-resolved
- firewalld で53番ポートの通信を許可
firewall-cmd --add-port=53/udp --permanent firewall-cmd --reload
- DNSキャッシュをクリア
systemd-resolve --flush-caches
まとめ
- ネットワーク疎通確認(IPでのping) → DNSだけの問題か切り分け
dig
やnslookup
で詳細調査/etc/resolv.conf
やネットワーク設定を確認- ファイアウォールやセキュリティ設定も忘れずに確認
DNS解決のトラブルは、「ネットワーク自体は生きているのにサイトに繋がらない」状況でよく発生します。上記の手順を踏めば、多くの場合は原因を特定し、迅速に解決できます。
あわせて読みたい


ping は通るのにブラウザでアクセスできない原因と対処方法
Linuxサーバにアクセスできないとき、まず多くの人が試すのが ping コマンドです。 ping example.com これで応答が返ってくれば「ネットワークは生きている」と安心しま…