新Linux入門|ポートとネットワーク状態を確認する:netstatコマンドの基本と活用

今回は、Linuxサーバーのネットワーク状態を確認するのに便利な netstatコマンド を紹介します。
 サーバー管理をしていると、「どのポートが使われているの?」「今どんな通信が発生しているの?」と知りたい場面がよくありますよね。
そんなときに活躍するのがこのコマンドです✨

 AlmaLinux 9.6 では、より新しい ss コマンドが推奨されるようになりましたが、netstat は今でも多くの環境で使われています。
 そのため、ネットワーク管理やトラブルシューティングの基本として netstat を理解しておくことはとても大切です💪

🌐 netstatコマンドとは?

 netstat(network statistics)は、Linuxシステム上で ネットワーク関連の情報を表示するコマンド です。
具体的には、以下のような情報を確認できます👇

  • 現在確立されている通信(TCP/UDP接続)
  • 開いているポート(LISTEN状態)
  • ルーティングテーブル
  • インターフェースの通信統計
  • 各ポートを使用しているプロセス

つまり、「通信の見える化」ができるツールなんです✨

コマンド書式

netstat [オプション]

 オプションを組み合わせることで、表示内容を絞り込んだり、より詳細な情報を取得したりできます。
 ネットワークの状態を定期的にチェックすることで、ポートの競合や不正アクセスの早期発見にも役立ちます🔍

🧩 主なオプション一覧

オプション説明
-tTCP接続の情報を表示
-uUDP接続の情報を表示
-lLISTEN(待ち受け)状態のポートを表示
-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 の活用をマスターしましょう!