ネットワーク監視・トラブルシュート

netstat ねっとすたっと

ネットワーク接続ポートソケットTCP/IPトラブルシュートリスニングポート
netstatについて教えて

簡単に言うとこんな感じ!

パソコンが今どこと通信してるか、どのポートで待ち受けてるかを一覧で見せてくれるコマンドだよ!「自分のPCが今どんな回線をつないでるか」をリアルタイムで確認できる、ネットワーク版の「通信記録帳」みたいなものなんだ!


netstatとは

netstat(Network Statistics の略)は、OSに標準で組み込まれているコマンドラインツールで、コンピューターのネットワーク接続状況をリアルタイムで表示します。Windows・macOS・Linuxのいずれでも利用可能で、追加インストール不要で使えるのが特徴です。

具体的には「どのIPアドレス・ポートに接続しているか」「どのポートで外部からの接続を待ち受けているか(リスニング状態)」「通信の状態(確立済み・待機中・終了処理中など)」を一覧表示します。システム担当者が不審な通信を調べたり、アプリがちゃんと起動しているか確認したりする際に日常的に使われます。

近年のLinux環境では後継コマンドの ss(socket statistics) に移行が進んでいますが、Windowsでは引き続き標準コマンドとして広く使われており、「ネットワークの第一調査ツール」として実務での重要度は今も高いです。


netstatで見える情報の構造

主な表示カラムの意味

カラム名意味実務での注目ポイント
Proto通信プロトコル(TCP/UDP)TCPは接続確立型、UDPは無確認型
Local Address自分側のIPアドレス:ポート番号0.0.0.0 は「全インターフェース」を意味する
Foreign Address相手側のIPアドレス:ポート番号知らないIPがあれば要確認
State接続の状態ESTABLISHED・LISTEN・TIME_WAIT などが主要
PID/Program接続しているプロセスのID・名前-b-p オプションで表示(OS依存)

接続状態(State)の読み方

State意味こんなとき
LISTENポートを開けて接続を待っているサービスが起動中のサイン
ESTABLISHED接続が確立して通信中正常な通信
TIME_WAIT接続終了の後処理中大量にあると高負荷の可能性
CLOSE_WAIT相手が切断したがこちらがまだアプリのバグで増えることも
SYN_SENT接続要求を送った直後接続できないときに残ることも

よく使うオプション早見表

# Windows
netstat -ano          → 全接続をPID付きで表示
netstat -an           → 名前解決なし(高速表示)
netstat -b            → プロセス名も表示(管理者権限必要)
netstat -s            → プロトコル別の統計情報

# Linux / macOS
netstat -tuln         → TCP/UDPのリスニングポート一覧
netstat -anp          → 全接続+プロセス名(Linuxのみ)
netstat -s            → 統計情報

覚え方:「-ano」の語呂合わせ

Windowsで一番よく使うオプション -ano は「All(全部)・Numeric(数字で)・Owner(誰が?)」と覚えると忘れない!まず迷ったらこれを打っておけばOKです。


歴史と背景

  • 1983年 — BSD Unix 4.2に初めて実装。TCP/IPスタックの普及とともに誕生した由緒あるツール
  • 1990年代 — Windows NT / 9x にも標準搭載され、OS問わず「ネットワーク調査の定番コマンド」として定着
  • 2000年代 — セキュリティ意識の高まりとともに「不審な外部接続チェック」ツールとしても注目される
  • 2010年代 — Linuxカーネルの進化に伴い、より高速・高機能な ss コマンドが登場。Linuxディストリビューションでは netstat が非推奨(deprecated)となり始める
  • 現在 — Windowsでは netstat が引き続き現役。Linux/macOSでは sslsof -i への移行が推奨されているが、互換性と知名度から netstat も広く使われ続けている

netstat・ss・その他ツールの比較

主要なネットワーク調査コマンドの位置づけを整理します。

ネットワーク調査ツール 比較マップ netstat Windows: 現役標準 Linux: 非推奨(互換) macOS: 利用可 追加インストール不要 古いOSでも動作 表示が少しゆっくり ss Linux推奨の後継ツール 高速・高機能 カーネル直接参照 フィルタ機能が強力 iproute2パッケージ同梱 Windowsでは使えない lsof -i Linux / macOS ファイル+ネット調査 プロセス特定が得意 特定ポートの調査向き 出力が詳細・多め Windowsでは使えない 🏆 Windows定番 🏆 Linux現代標準 🔍 詳細調査向け

実務でよく使うシーン別コマンド例

【シーン1】特定ポートが使われているか確認したい(Windows)
  netstat -ano | findstr :8080
  → ポート8080を使っているプロセスのPIDがわかる

【シーン2】不審な外部接続がないか確認したい(Windows)
  netstat -ano | findstr ESTABLISHED
  → 現在確立中の接続を一覧化

【シーン3】Webサーバーが80番ポートで待ち受けているか確認(Linux)
  netstat -tuln | grep :80
  または
  ss -tuln | grep :80

【シーン4】TIME_WAIT が大量発生していないか確認
  netstat -an | findstr TIME_WAIT
  → 大量にあると接続数が飽和している可能性

関連する規格・RFC

規格・RFC番号内容
RFC 793TCP(Transmission Control Protocol)の仕様。netstatが表示する接続状態の根拠
RFC 768UDP(User Datagram Protocol)の仕様
RFC 1213MIB-II。ネットワーク管理情報の標準定義(netstatの統計情報の元となる概念)

関連用語

  • ポート番号 — 通信の宛先を識別する番号。netstatで必ず登場する概念
  • TCP — netstatが主に表示する接続型プロトコル。状態遷移(LISTEN/ESTABLISHEDなど)の仕組み
  • UDP — TCPと対をなす無確認型プロトコル。netstatで -u オプション付きで確認できる
  • ファイアウォール — 特定ポ