新Linux入門|ポートとソケットの状態を確認する:ssコマンドの基本と活用

 Linuxサーバーのネットワーク状態を確認したいとき、「どんなポートが開いているの?」「どのプロセスが通信しているの?」と気になること、ありますよね。
そんなときに役立つのが ssコマンド(socket statistics)です。

ss は、ネットワークソケット(通信の出入口)に関する情報を高速かつ詳細に表示するツールです。
 以前は netstat コマンドがよく使われていましたが、今では AlmaLinux 9.6 などの最新ディストリビューションでは ss が標準 になっています🚀

🌐 ssコマンドとは?

 ss コマンドは、システム上で使用中の ソケット(socket) に関する情報を表示するためのユーティリティです。
「ソケット」は、アプリケーションが通信を行うための仮想的な接続ポイントで、
IPアドレス + ポート番号 + 通信プロトコル(TCP/UDP) の組み合わせで識別されます。

 つまり ss は、「今どのポートで通信が行われているのか?」「どのプロセスがどのポートを使っているのか?」を素早く調べるための強力なツールです💪

⚙️ ssコマンドの基本書式

ss [オプション]

とてもシンプルな構文で、オプションを組み合わせることで多彩な情報を取得できます。
 TCP接続だけを確認したり、UDPの通信状況を見たり、プロセス情報を一緒に表示したりと、ネットワークの可視化にとても役立ちます✨

🧩 主なオプション一覧

オプション説明
-4IPv4ソケットのみを表示
-6IPv6ソケットのみを表示
-tTCP接続を表示
-uUDP接続を表示
-lLISTEN(待ち受け)状態のソケットを表示
-aLISTEN状態のソケットと、確立済み接続の両方を表示
-n名前解決をせず、数値でIPアドレスとポートを表示
-pプロセス情報(PIDやプログラム名)を表示
-i内部TCP情報を表示(詳細診断用)
-oタイマー情報を表示
-eソケットの詳細情報を表示
-mソケットが使用しているメモリ量を表示

💬ポイント
AlmaLinux 9.6 では ss がデフォルトで利用可能で、netstat の後継として完全に置き換えられています。
そのため、これから学ぶなら ss を使いこなすのがベスト です!

🧠 使用例と出力の読み方

✅ TCP接続を確認する

[suzuki@AlmaLinux ~]$ ss -t
State      Recv-Q Send-Q Local Address:Port     Peer Address:Port  
ESTAB      0      0      192.168.122.10:44658  142.250.196.78:https  
ESTAB      0      0      192.168.122.10:44660  142.250.196.78:https  
ESTAB      0      0      192.168.122.10:55234  34.117.59.90:http 

👀ポイント
「ESTAB」は“ESTABLISHED(確立済み)”の略で、通信が現在進行中であることを示します。
この例では、ローカルポート 44658 などから外部サイト(例:142.250.x.x)に通信していることがわかります。

✅ UDP接続を確認する

[suzuki@AlmaLinux ~]$ ss -u
State   Recv-Q Send-Q Local Address:Port  Peer Address:Port  
UNCONN  0      0      127.0.0.1:323      *:*  
UNCONN  0      0      [::1]:323          [::]:*

🌀ポイント
「UNCONN」は未接続状態(UDPは接続を持たないため通常この状態)です。
この出力例から、ChronyなどのNTP関連プロセスが動作していることを推測できます。

✅ LISTEN状態のソケットを表示する

[suzuki@AlmaLinux ~]$ ss -l
Netid  State  Recv-Q Send-Q Local Address:Port  Peer Address:Port  
tcp    LISTEN 0      128    *:22                *:*  
tcp6   LISTEN 0      128    [::]:22             [::]:*  

🔎ポイント
「LISTEN」はサーバー側が接続待ち受け中の状態。
たとえば :22 は SSH デーモンがポート22番で待ち受けていることを示しています。
このように、開放されているポートをすぐに確認できます。

✅ プロセス情報付きで表示する

[root@AlmaLinux ~]# ss -tulpn
Netid  State   Recv-Q Send-Q Local Address:Port  Peer Address:Port  Process
tcp    LISTEN  0      128    *:22                *:*                users:(("sshd",pid=1153,fd=3))
udp    UNCONN  0      0      127.0.0.1:323       *:*                users:(("chronyd",pid=860,fd=5))

💡ポイント
 -p オプションをつけると、どのプロセス(PIDとプログラム名)がそのポートを使用しているのかがわかります。
特にroot権限で実行すると、すべてのプロセス情報を閲覧できます。

📊 表示結果の見方まとめ

列名意味
Stateソケットの状態(LISTEN, ESTABなど)
Recv-Q受信キューのバイト数
Send-Q送信キューのバイト数
Local Address:Portローカル側のアドレスとポート番号
Peer Address:Port通信相手(リモート)のアドレスとポート番号
Process該当ソケットを使用しているプロセス情報(-p指定時のみ)

✅ まとめ

  • ss コマンドは netstat の後継ツール で、より高速・高機能✨
  • TCP・UDP の接続状態、待ち受けポート、プロセス情報などを簡単に確認可能
  • AlmaLinux 9.6 では標準搭載されており、ネットワーク診断やセキュリティ管理に最適

🛠️ポイント
 日常の管理でもトラブルシュートでも、「どのポートが使われているのか?」を即座に確認できるのが ss の魅力です。
ネットワークを“見える化”する最強ツールとして、ぜひ覚えておきましょう🌟