監視・分析

netstatコマンド入門|ネットワーク接続状況を監視する

ネットワーク netstat 接続監視

netstatコマンド入門
ネットワーク接続状況を監視する

netstatはアクティブなネットワーク接続、リッスンポート、ルーティングテーブルなどを表示するコマンドです。不審な接続の検出やポート競合の確認に役立ちます。

こんな人向けの記事です

  • どのポートが使用中か確認したい人
  • 不審なネットワーク接続を検出したい人
  • ネットワーク接続のトラブルシューティングをしたい人

Step 1netstatとは

netstat(Network Statistics)は、ネットワーク接続、ルーティングテーブル、インターフェース統計などを表示するコマンドラインツールです。現在アクティブな接続の一覧表示や、どのプログラムがどのポートをリッスンしているかを確認できます。

ポイント: 最新のLinuxディストリビューションではnetstatはssコマンドに置き換えられつつありますが、多くのシステムではまだ利用可能です。Windowsでは現在も広く使われています。

Step 2基本的な使い方

全てのアクティブな接続を表示:

ターミナル
netstat

リッスンポートを表示:

ターミナル
# Windows
netstat -an | findstr LISTENING

# Linux/macOS
netstat -tuln

結果の例(Linux):

ターミナル
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp6       0      0 :::80                   :::*                    LISTEN

Step 3出力の読み方

項目意味
Protoプロトコル(TCP/UDP)
Local Address自コンピュータのIP:ポート。0.0.0.0は全インターフェース
Foreign Address接続先のIP:ポート
State接続状態(LISTEN/ESTABLISHED/TIME_WAIT等)
Recv-Q / Send-Q受信/送信キューのバイト数。通常は0

Step 4主なオプション一覧

機能WindowsLinux/macOS説明
全接続表示-a-aリッスン状態を含む全接続を表示
数値形式-n-n名前解決なしで数値表示
TCPのみ-p tcp-tTCP接続のみ表示
UDPのみ-p udp-uUDP接続のみ表示
リッスンのみ-an | findstr LISTENING-lリッスン状態のみ表示
プロセスID-o-p接続に関連するプロセスを表示
統計情報-s-sプロトコル別統計を表示
ルーティング-r-rルーティングテーブルを表示

ポイント: Linux/macOSでよく使われる組み合わせは netstat -tulpn で、TCP/UDPのリッスンポートをプロセス情報付きで数値形式表示します。

Step 5実践的な使用例

特定のポートが使用中か確認:

ターミナル
# Windows
netstat -an | findstr :80

# Linux/macOS
netstat -tuln | grep :80

ポートを使用しているプロセスを特定(管理者権限が必要):

ターミナル
# Windows
netstat -aon | findstr :80

# Linux/macOS
sudo netstat -tulpn | grep :80

ネットワーク統計情報の確認:

ターミナル
netstat -s

ルーティングテーブルの確認:

ターミナル
netstat -r

Step 6トラブルシューティング

問題確認コマンド対処法
ポート競合でアプリが起動しないnetstat -tuln | grep :8080使用中のプロセスを停止またはポートを変更
不審な接続の検出netstat -anop見慣れないIPやプログラムをファイアウォールでブロック
大量のTIME_WAITnetstat -an | grep TIME_WAIT高負荷サーバーでは正常。クライアントでは問題の兆候
大量のCLOSE_WAITnetstat -an | grep CLOSE_WAITアプリケーションが接続を適切にクローズしていない(バグの可能性)

注意: netstatの出力にはIPアドレスやポート番号などセンシティブな情報が含まれます。スクリーンショットの共有時は注意してください。Linuxではより高速なssコマンド(ss -tuln)も検討しましょう。