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ではssやlsof -iへの移行が推奨されているが、互換性と知名度からnetstatも広く使われ続けている
netstat・ss・その他ツールの比較
主要なネットワーク調査コマンドの位置づけを整理します。
実務でよく使うシーン別コマンド例
【シーン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 793 | TCP(Transmission Control Protocol)の仕様。netstatが表示する接続状態の根拠 |
| RFC 768 | UDP(User Datagram Protocol)の仕様 |
| RFC 1213 | MIB-II。ネットワーク管理情報の標準定義(netstatの統計情報の元となる概念) |