新Linux入門|Linuxで通信状態を調べる基本コマンド解説

 Linuxサーバーを管理しているときに、「どのポートが使われているの?」「ネットワーク通信は問題なく行われているの?」と確認したくなる場面がありますよね。
そんなときに役立つのが、通信状態を調べる基本コマンド です💡

AlmaLinux 9.6 では、通信の確認に使える便利なツールがいくつか用意されています。
この記事では、その中でもよく使われる netstat, ss, lsof の3つのコマンドを中心に解説していきます。

🌐 ポートとは何か?

まず最初に「ポート」について理解しておきましょう。
ポートとは、ネットワーク通信を行う際にアプリケーションが使う通信の入り口です。
 パソコンには「住所(IPアドレス)」があり、その中に複数の「窓口(ポート番号)」があるイメージです。

ポート番号の範囲名称主な用途
0〜1023Well-known PortsSSH(22), HTTP(80), HTTPS(443)など有名なサービス
1024〜49151Registered Ports一般的なアプリケーションが使用
49152〜65535Dynamic/Private Ports一時的な通信やクライアント側で利用

🧠 つまり、同じIPでも複数のサービスが同時に通信できるのはポートのおかげ!
ポートを確認することで、どのサービスが通信しているのかが分かります。

⚙️ 通信状態を調べる主なコマンド

Linuxでは通信状態を確認するために、次の3つのコマンドがよく使われます👇

コマンド名主な目的特徴
netstatネットワーク全体の状態を確認古くから使われている基本ツール
ssソケット情報を高速に取得netstatの後継。より高速で詳細
lsof開かれているファイル・ポートの一覧プロセス単位でポート使用状況を確認できる。

これらを組み合わせることで、システム全体の通信状況を正確に把握できます。

🖥️ netstatコマンド:基本的な通信確認ツール

netstat は、Linuxで長年使われてきたネットワーク確認コマンドです。
通信状態、ルーティングテーブル、インターフェース情報などを表示できます。

📜 コマンド書式

netstat [オプション]

🧩 主なオプション

オプション説明
-tTCP接続を表示
-uUDP接続を表示
-lLISTEN(待ち受け)状態を表示
-aすべての接続とLISTENポートを表示
-n名前解決を行わずに数値で表示
-pプロセス情報(PID・プログラム名)を表示

💻 使用例

[suzuki@AlmaLinux ~]$ netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
udp        0      0 127.0.0.1:323           0.0.0.0:*

👀 この結果から、SSH(22番ポート)とNTP(323番ポート)が動作中であることが分かります。
LISTEN は「待ち受け中」、つまり接続を受け付けている状態を示します。

⚡ ssコマンド:高速・詳細な通信確認

ss(socket statistics)は、netstat の後継として開発されたコマンドで、
より高速・正確にネットワーク状態を確認できます。

📜 コマンド書式

ss [オプション]

🧩 主なオプション

オプション説明
-tTCP接続のみ表示
-uUDP接続のみ表示
-lLISTEN状態のみ表示
-n名前解決を無効化(IPやポート番号で表示)
-pプロセス情報を表示
-aすべてのソケット情報を表示

💻 使用例

[suzuki@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))

💬ポイント
 この出力では、SSHデーモン(sshd)が22番ポートでLISTEN中、ChronyがUDP 323番で通信中であることが分かります。
netstat より出力が速く、プロセス情報(PID、プログラム名)も一緒に確認できるのが便利ですね。

🔍 lsofコマンド:プロセスとポートの関係を確認

 lsof(List Open Files)は、システム上で開いているファイルやネットワークソケットを一覧表示するコマンドです。
Linuxでは「ポートもファイルの一種」として扱われるため、ネットワーク診断にも活用できます📂

📜 コマンド書式

lsof [オプション]

🧩 主なオプション

オプション説明
-iネットワーク接続関連の情報を表示
-Pポート番号を数値で表示
-n名前解決を行わずに表示
grep LISTENLISTEN状態のみに絞り込み表示

💻 使用例

[root@AlmaLinux ~]# lsof -i -P -n | grep LISTEN
sshd     1153 root    3u  IPv4  20124  0t0  TCP *:22 (LISTEN)
cupsd    1387 root   10u  IPv6  21283  0t0  TCP [::1]:631 (LISTEN)
rpcbind   680 rpc    8u  IPv4  17370  0t0  TCP *:111 (LISTEN)

👀ポイント
「sshd」や「cupsd」など、どのプロセスがどのポートを使用しているか一目で分かります。
このコマンドは、ポートとプロセスの対応を調べたいときに特に便利です。

✅ まとめ

  • netstat:古くから使われている通信確認コマンド。全体の把握に最適
  • ss:高速で正確な結果を返す、現代の標準コマンド
  • lsof:プロセス単位でポートを追跡できる便利ツール

 これらのコマンドを理解しておくと、通信トラブルの調査やセキュリティ監視がぐっと効率的になります🔧
 AlmaLinux 9.6 でも引き続き活用できる基本ツールですので、日常的に使いこなせるように練習してみましょう!🌟