このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

新Linuxコマンド演習57

新Linuxコマンド演習57 概要

 「新Linuxコマンド演習57」では、Linuxシステムにおけるネットワーク通信の状態を確認するための代表的なコマンドである ssコマンドnetstatコマンド の使い方を学びます。
 これらのコマンドを使用することで、サーバー上でどのポートが開いているか、どのホストと通信しているか、通信の状態(LISTEN・ESTABLISHED)などを確認できます。

 AlmaLinux 9.6では、従来のnetstatコマンドに代わり、より高速で詳細なssコマンドが標準搭載されています。
本演習では、両方のコマンドを比較しながら実践的にネットワーク監視の基本を身につけます。

コマンド概要

コマンド主な用途特徴主なオプション
ssソケット通信の状態を高速に確認netstatより高速・正確で、AlmaLinux標準コマンド-t(TCP接続)
-u(UDP接続)
-a(全ての接続)
-l(LISTENポート)
netstatネットワーク接続やルーティングを確認古くから使用されているツール。旧環境でも利用可-t(TCP)
-a(全接続)
-r(ルーティング)
-l(LISTEN)

表の説明
ssはシステムの/proc/net情報を直接読み取るため、処理速度が速く、より正確です。
 netstatは非推奨となりつつありますが、古いシステムやスクリプトで互換性があるため依然として利用価値があります。

主なオプション一覧

オプション対応コマンド説明
-tss / netstatTCP通信を表示
-uss / netstatUDP通信を表示
-ass / netstatすべての接続(LISTEN・ESTABLISHED)を表示
-lss / netstatLISTEN(待機中)のポートのみ表示
-rnetstatルーティングテーブルを表示

表の説明
TCPの通信確認には-t、サーバーが待受中のポート確認には -l が便利です。
また、ルーティング経路を確認する際には -r が使用されます。

演習問題+模範解答例

演習01:Firefoxをバックグラウンドで実行する

問題
Firefoxをバックグラウンドで起動し、TCP通信を発生させてください。

模範解答例

[suzuki@AlmaLinux ~]$ firefox &
[1] 4416
[suzuki@AlmaLinux ~]$ 

解説
コマンド末尾に「&」を付けることで、Firefoxをバックグラウンドジョブとして起動します。
WebサイトにアクセスするとTCP通信が発生し、後の演習で ss や netstat で確認できます。

演習02:TCP接続の状態を確認する(ssコマンド)

問題
ssコマンドを使用して、現在のTCP接続の状態を確認してください。

模範解答例

[suzuki@AlmaLinux ~]$ ss -t
State    Recv-Q    Send-Q         Local Address:Port             Peer Address:Port     
ESTAB    0         0                  10.0.2.15:45936          34.160.144.191:https    
ESTAB    0         0                  10.0.2.15:37996           34.107.243.93:https    
ESTAB    0         0                  10.0.2.15:33218           23.53.193.109:http     
ESTAB    0         0                  10.0.2.15:35028           142.250.76.35:http     
(省略)

解説
ss -t はTCPの確立済み接続(ESTABLISHED)を表示します。
ESTABは「通信中(ESTABLISHED)」を意味します。

演習03:TCP接続を確認する(netstatコマンド)

問題
netstatコマンドを使用してTCP接続の情報を確認してください。

模範解答例

[suzuki@AlmaLinux ~]$ netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 AlmaLinux:45216         80.54.36.34.bc.go:https TIME_WAIT  
tcp        0      0 AlmaLinux:45936         191.144.160.34.bc:https ESTABLISHED
tcp        0      0 AlmaLinux:37996         93.243.107.34.bc.:https ESTABLISHED
tcp        0      0 AlmaLinux:33218         a23-53-193-109.dep:http ESTABLISHED
tcp        0      0 AlmaLinux:45278         80.54.36.34.bc.go:https TIME_WAIT  
tcp        0      0 AlmaLinux:35028         maa03s36-in-f3.1e1:http ESTABLISHED
(省略)

解説
netstat -t でTCP通信の状態を表示します。
Local Address(ローカル側)とForeign Address(通信相手側)を確認できます。

演習04:すべての接続と待受ポートを確認する

問題
すべての接続(LISTENおよびESTABLISHED)を表示してください。

模範解答例

[suzuki@AlmaLinux ~]$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN     
tcp        0      0 AlmaLinux:45936         191.144.160.34.bc:https ESTABLISHED
tcp        0      0 AlmaLinux:37996         93.243.107.34.bc.:https ESTABLISHED
tcp        0      0 AlmaLinux:33218         a23-53-193-109.dep:http TIME_WAIT  
tcp        0      0 AlmaLinux:59108         44.51.49.34.bc.go:https ESTABLISHED
(省略)

解説
-aオプションを使用すると、LISTEN(待機中)とESTABLISHED(通信中)の両方を確認できます。
セキュリティ点検時にも活用されるコマンドです。

演習05:ルーティングテーブルを確認する

問題
ルーティングテーブルを表示し、デフォルトゲートウェイを確認してください。

模範解答例

[suzuki@AlmaLinux ~]$ netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         _gateway        0.0.0.0         UG        0 0          0 enp0s3
10.0.2.0        0.0.0.0         255.255.255.0   U         0 0          0 enp0s3

解説
ルーティングテーブルでは、通信経路とゲートウェイを確認できます。
Iface列には通信に利用するネットワークインターフェースが表示されます。

演習06:LISTEN状態のTCPポートを確認する

問題
ssコマンドを使用して、待機中(LISTEN)のTCPポートを確認してください。

模範解答例

[suzuki@AlmaLinux ~]$ ss -lnt
State      Recv-Q     Send-Q         Local Address:Port          Peer Address:Port     
LISTEN     0          128                  0.0.0.0:22                 0.0.0.0:*        
LISTEN     0          4096               127.0.0.1:631                0.0.0.0:*        
LISTEN     0          128                     [::]:22                    [::]:*        
LISTEN     0          4096                   [::1]:631                   [::]:*

解説
-l でLISTENソケット、-n で数値表示、-t でTCP接続を指定します。
SSHが待受状態にあることが分かります。

演習07:UDPポートを確認する

問題
ssコマンドでUDPポートの状態を確認してください。

模範解答例

[suzuki@AlmaLinux ~]$ ss -u
Recv-Q      Send-Q              Local Address:Port             Peer Address:Port       
0           0                10.0.2.15%enp0s3:bootpc               10.0.2.2:bootps

解説
ss -u はUDPポートを表示します。

まとめ

「新Linuxコマンド演習57」では、
ssとnetstatコマンドを通じて、ネットワーク通信の状態を確認する方法を学びました。
 特に、TCPやUDPの接続状態、LISTEN中のポート、ルーティングテーブルの確認は、ネットワークトラブルの原因特定やセキュリティ監視に欠かせないスキルです。

学習ポイント内容
ssコマンドnetstatの後継コマンド。通信状態を高速・詳細に確認可能。
netstatコマンド古い環境でも利用可能なネットワーク監視ツール。
LISTEN / ESTABLISHEDLISTENは待受状態、ESTABLISHEDは通信中の状態。