「サーバーに繋がらない…どこで確認すればいい?」ネットワーク障害の切り分けに役立つコマンドをこの記事で解説します。
ネットワーク問題の診断フロー
ネットワーク障害は「どの層で問題が起きているか」を順番に確認することで素早く特定できます。

ping:疎通確認の基本
ping はICMP echo request/replyを使ってホストへの疎通を確認するコマンドです。
# 4回送信して終了(-c を付けないと無限ループ)
$ ping -c 4 google.com
# IPアドレス直接指定
$ ping -c 4 8.8.8.8
# 間隔を指定(-i 秒数)
$ ping -c 10 -i 0.5 192.168.1.1
curl:HTTPリクエストを送る
curl(Client URL)はHTTP/HTTPS/FTPなど多様なプロトコルでデータを送受信できる汎用ツールです。APIのテストやファイルダウンロードに広く使われます。
# HTTPヘッダーのみ取得(レスポンスコード確認)
$ curl -I https://example.com
# コンテンツを取得して表示
$ curl https://example.com
# ファイルに保存(-o = 指定名、-O = 元のファイル名)
$ curl -o myfile.html https://example.com
$ curl -O https://example.com/file.zip
# POSTリクエスト
$ curl -X POST -H "Content-Type: application/json" \
-d '{"key":"value"}' https://api.example.com/endpoint
# リダイレクトに追従(-L)
$ curl -L https://example.com
wget:ファイルのダウンロード
wget はファイルダウンロードに特化したコマンドです。再開機能(-c)やミラーリングなどcurlにない機能があります。
# ファイルをダウンロード
$ wget https://example.com/file.zip
# ダウンロードを途中から再開(-c)
$ wget -c https://example.com/largefile.iso
# バックグラウンドでダウンロード(-b)
$ wget -b https://example.com/file.zip
ss:ポートとソケットの確認
ss(socket statistics)はネットワークソケットの状態を表示するコマンドです。かつて使われていた netstat の後継で、Ubuntu 20.04以降では netstat はデフォルトで非標準となっています。
# リスニング中のTCP/UDPポートを確認(-t=TCP -u=UDP -l=listen -n=数値表示)
$ ss -tuln
# プロセス名も表示(-p)
$ sudo ss -tulnp
# 特定ポートを確認
$ ss -tuln | grep :80
# 確立済みの接続を確認
$ ss -tn
ip コマンド:IPアドレスとルーティング
ip コマンドはIPアドレスやルーティングを確認・設定するコマンドです。古い ifconfig の後継です(ifconfig はnet-toolsパッケージが必要)。
# IPアドレスを確認
$ ip addr
$ ip addr show eth0 # 特定NICのみ
# ルーティングテーブルを確認
$ ip route
# デフォルトゲートウェイを確認
$ ip route show default
コマンド早見表

まとめ
ping -c 4 ホスト:疎通確認(-cで回数指定必須)curl -I URL:HTTPヘッダー確認。-oでファイル保存wget URL:ファイルダウンロード。-cで再開可能ss -tuln:リスニングポートを確認(netstatの後継)ip addr:IPアドレス確認(ifconfigの後継)dig ドメイン:DNS解決の詳細確認
関連記事
📋 Linux入門チートシート完全版で全コマンドを一気に復習できます。



コメント