Linuxインフラ実践

ネットワークトラブルシューティング完全ガイド【体系的な切り分け手順】

Linuxインフラ実践
記事内に広告が含まれています。

ネットワーク障害は「なんとなく調べる」より「体系的に切り分ける」ことが重要です。この記事ではOSI参照モデルの下層から順番に確認していく体系的なアプローチを解説します。

トラブルシューティングの基本原則

物理層 → ネットワーク層 → トランスポート層 → アプリケーション層」の順に下から確認します。下層の問題が解決していないと上層のデバッグは意味がありません。

Step 1:物理・インターフェースを確認

# インターフェースが UP になっているか
$ ip link show
# state DOWN → sudo ip link set eth0 up

# インターフェースにIPアドレスが設定されているか
$ ip addr show

# ケーブル・NICの確認
$ ethtool eth0 | grep "Link detected"

Step 2:同一ネットワーク内の疎通確認

# デフォルトゲートウェイを確認
$ ip route show

# ゲートウェイへpingが通るか
$ ping -c 3 192.168.1.1

# 通らない場合:サブネットマスクが正しいか確認
$ ip addr show eth0 | grep "inet "

Step 3:インターネット疎通確認

# パブリックIPへpingが通るか(DNSを使わず)
$ ping -c 3 8.8.8.8

# 通らない場合:ゲートウェイの設定を確認
$ ip route show | grep default

# 経路をトレース
$ traceroute 8.8.8.8

Step 4:名前解決の確認

# DNSで名前解決できるか
$ dig google.com +short
$ nslookup google.com

# 通らない場合:DNSサーバーの設定を確認
$ cat /etc/resolv.conf
$ resolvectl status

# 別のDNSサーバーで試す
$ dig @8.8.8.8 google.com +short

Step 5:サービス・ポートの確認

# 目的のポートがLISTENしているか
$ sudo ss -tulnp | grep :80

# ファイアウォールがブロックしていないか
$ sudo ufw status
$ sudo iptables -L -n

# リモートからポートに繋がるか
$ nc -zv サーバーIP 80

# ログでエラーを確認
$ sudo journalctl -u nginx -n 50
$ sudo tail -50 /var/log/nginx/error.log

チェックリスト早見表

症状確認コマンドよくある原因
pingが通らないip link, ip addr, ip routeインターフェースDown、IP未設定、GW未設定
名前解決できないdig, cat /etc/resolv.confDNSサーバー設定ミス
ポートに繋がらないss -tulnp, ufw statusサービス未起動、ファイアウォールブロック
遅いping, mtr, iostatネットワーク混雑、サーバー高負荷

まとめ

  • トラブルシューティングは「物理→IP→DNS→サービス」の順番で下から確認
  • Step1: ip link/addr でIF確認 → Step2: ゲートウェイにping → Step3: 8.8.8.8にping
  • Step4: dig でDNS確認 → Step5: ss とファイアウォール確認
  • ログ(journalctl・/var/log/)は必ず確認する習慣をつける

📋 Phase 3 ネットワーク基礎チートシートで全コマンドをまとめて確認できます。

コメント

タイトルとURLをコピーしました