ネットワーク障害は「なんとなく調べる」より「体系的に切り分ける」ことが重要です。この記事では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.8Step 4:名前解決の確認
# DNSで名前解決できるか
$ dig google.com +short
$ nslookup google.com
# 通らない場合:DNSサーバーの設定を確認
$ cat /etc/resolv.conf
$ resolvectl status
# 別のDNSサーバーで試す
$ dig @8.8.8.8 google.com +shortStep 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.conf | DNSサーバー設定ミス |
| ポートに繋がらない | 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 ネットワーク基礎チートシートで全コマンドをまとめて確認できます。



コメント