⑨ネットワーク基礎

ネットワークトラブルシューティング【ping・traceroute・nslookup・netstat完全ガイド】

⑨ネットワーク基礎
記事内に広告が含まれています。

ネットワークトラブルが発生したとき、原因を素早く特定するためのコマンドラインツールの使い方を解説します。ping・traceroute・nslookup・netstat・ssはエンジニアが毎日使うトラブルシューティングの基本ツールです。

ping:疎通確認

# 基本的な疎通確認
ping 8.8.8.8
ping hobbyshift.com

# Linux:4回送信して終了
ping -c 4 8.8.8.8

# Windows:4回送信
ping -n 4 8.8.8.8

# 結果の見方
# ICMP応答があれば接続OK
# 「Request timeout」なら接続不可またはICMPブロック中
# RTT(応答時間)が大きければ遅延あり

traceroute / tracert:経路確認

# Linux
traceroute hobbyshift.com

# Windows
tracert hobbyshift.com

# 結果の見方
# 各行が経由したルーター(ホップ)を表す
# * * * が続く → そのルーターがICMPを拒否している(必ずしも問題ではない)
# 特定のホップから急にRTTが増加 → そこがボトルネック

nslookup / dig:DNS確認

# ドメインのIPアドレスを確認
nslookup hobbyshift.com

# 特定のDNSサーバーに問い合わせ
nslookup hobbyshift.com 8.8.8.8

# Linuxではdigが詳細情報を表示
dig hobbyshift.com
dig hobbyshift.com A    # Aレコードのみ
dig hobbyshift.com MX   # メールサーバー

# 逆引き(IPからドメインへ)
nslookup 8.8.8.8

netstat / ss:接続状態確認

# 全接続とリスニングポートを表示
netstat -an

# プロセス名も表示(管理者権限)
netstat -anp

# 特定ポートを確認(例:80番)
netstat -an | grep :80

# Linuxではssが推奨(netstatより高速)
ss -tlnp          # TCPリスニングポートとプロセス
ss -s             # 統計サマリー

# よく使うフラグ
# -t: TCPのみ  -u: UDPのみ  -l: リスニングのみ
# -n: 数値表示  -p: プロセス名表示

curl:HTTP接続確認

# ヘッダーのみ表示(サーバーの応答を確認)
curl -I https://hobbyshift.com

# レスポンス時間を計測
curl -o /dev/null -s -w "時間: %{time_total}s\nHTTPコード: %{http_code}\n" https://hobbyshift.com

# SSL証明書の有効期限を確認
echo | openssl s_client -connect hobbyshift.com:443 2>/dev/null | openssl x509 -noout -dates

トラブルシューティングの手順

症状確認コマンドチェックポイント
Webサイトに繋がらないping → nslookup → curl①DNS解決できるか ②サーバーが応答するか ③HTTP応答コードは何か
特定サーバーに繋がらないping → tracerouteどのホップで止まるか確認
ポートが開いているか確認netstat / ss / ncサービスが起動してリスニングしているか
名前解決が遅いdig / nslookupDNSサーバーのRTTを確認

まとめ

  • pingで疎通確認、tracerouteで経路のどこで詰まっているか確認する
  • nslookup/digでDNSが正しく解決できるか確認する
  • netstat/ssでサービスが正しくリスニングしているか確認する
  • トラブルシューティングは「DNS→疎通→ポート→HTTP応答」の順で切り分ける

コメント

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