
新Linux入門|ポートとネットワーク状態を確認する:netstatコマンドの基本と活用
今回は、Linuxサーバーのネットワーク状態を確認するのに便利な netstatコマンド を紹介します。
サーバー管理をしていると、「どのポートが使われているの?」「今どんな通信が発生しているの?」と知りたい場面がよくありますよね。
そんなときに活躍するのがこのコマンドです✨
AlmaLinux 9.6 では、より新しい ss コマンドが推奨されるようになりましたが、netstat は今でも多くの環境で使われています。
そのため、ネットワーク管理やトラブルシューティングの基本として netstat を理解しておくことはとても大切です💪

🌐 netstatコマンドとは?
netstat(network statistics)は、Linuxシステム上で ネットワーク関連の情報を表示するコマンド です。
具体的には、以下のような情報を確認できます👇
- 現在確立されている通信(TCP/UDP接続)
- 開いているポート(LISTEN状態)
- ルーティングテーブル
- インターフェースの通信統計
- 各ポートを使用しているプロセス
つまり、「通信の見える化」ができるツールなんです✨
コマンド書式
netstat [オプション] オプションを組み合わせることで、表示内容を絞り込んだり、より詳細な情報を取得したりできます。
ネットワークの状態を定期的にチェックすることで、ポートの競合や不正アクセスの早期発見にも役立ちます🔍
🧩 主なオプション一覧
| オプション | 説明 |
|---|---|
| -t | TCP接続の情報を表示 |
| -u | UDP接続の情報を表示 |
| -l | LISTEN(待ち受け)状態のポートを表示 |
| -a | 全ての接続およびLISTEN状態のポートを表示 |
| -n | 名前解決を行わず、数値で表示(高速表示) |
| -p | プロセスIDとプログラム名を表示 |
| -r | ルーティングテーブルを表示 |
| -s | プロトコル別の統計情報を表示 |
| -e | 詳細な接続情報を表示 |
| -c | 一定間隔で情報を更新して表示し続ける |
💬ポイント
管理者はよく「-tuln」や「-antp」などを組み合わせて使います。
覚え方としては、t(TCP)+u(UDP)+l(LISTEN)+n(数値表示) が基本セットです💡
🧠 使用例と解説
✅ TCP接続の情報を表示する
[suzuki@AlmaLinux ~]$ netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.122.10:45678 142.250.206.227:https ESTABLISHED
tcp 0 0 192.168.122.10:45680 34.149.100.209:https ESTABLISHED👀ポイント
「ESTABLISHED」は、通信が確立されている状態を示します。
つまり、この出力からブラウザやアプリケーションが外部サイトと通信していることが分かります。
✅ UDP接続の情報を表示する
[suzuki@AlmaLinux ~]$ netstat -u
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp6 0 0 ::1:323 :::*🌀ポイント
UDPは「コネクションレス通信」なので、State(状態)は表示されません。
この例では、Chrony(時刻同期サービス)がポート323番を使用していることが分かります。
✅ リスニング状態のポートを確認する
[suzuki@AlmaLinux ~]$ netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN📡ポイント
「LISTEN」は、サービスが接続を待ち受けている状態を意味します。
上記の例では、SSHデーモンがポート22番で待機していることを示しています。
✅ プロセス情報を含めて表示する
[root@AlmaLinux ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 902/sshd
udp 0 0 127.0.0.1:323 0.0.0.0:* 861/chronyd💡ポイント
「PID/Program name」欄を見ると、どのプロセスがポートを使用しているか一目で分かります。
root権限で実行すると、全てのプロセスの情報を確認できます。
✅ ルーティングテーブルを表示する
[root@AlmaLinux ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default 192.168.122.1 0.0.0.0 UG 0 0 0 enp1s0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 enp1s0🗺️ポイント
ここでは、通信がどのネットワークインターフェースを経由して外部へ送られているかを確認できます。
default 行が、インターネット通信の出口(デフォルトゲートウェイ)を示しています。
📊 出力結果の見方
| 列名 | 意味 |
|---|---|
| Proto | 使用しているプロトコル(TCP/UDPなど) |
| Recv-Q | 受信キューのデータ量 |
| Send-Q | 送信キューのデータ量 |
| Local Address | 自ホスト側のアドレスとポート番号 |
| Foreign Address | 通信相手のアドレスとポート番号 |
| State | 接続状態(ESTABLISHED, LISTENなど) |
| PID/Program name | 使用しているプロセスのIDとプログラム名(-p指定時) |
✅ まとめ
netstat コマンドは、ネットワークの状態を把握するための古くからの定番ツールです✨
- TCP/UDPの接続状況
- 開いているポート
- 使用中のプロセス
- ルーティングテーブル
これらを一括で確認できるので、ネットワークトラブルの原因特定やサーバー監視に欠かせません。
AlmaLinux 9.6 では ss コマンドが後継となっていますが、netstat の理解はその基礎となります。
🧭ポイント
ネットワークの「見える化」を進める第一歩として、ぜひ netstat の活用をマスターしましょう!
