LinuCレベル2 201試験の例題と解説

2.03.2高度なネットワーク構成

LinuC 201試験の試験範囲から「2.03.2 高度なネットワーク構成」についての例題を解いてみます。

Linucレベル2 201試験 出題範囲


例題

Linuxサーバにおいて、TCPで待ち受けているポート番号をすべて表示したい。
次のコマンドラインのうち、正しいものを2つ選択してください。

  1. ip port show
  2. netstat -lt
  3. ss -lt
  4. route -n

※この例題は実際の試験問題とは異なります。


解答と解説

答えは「2. netstat -lt」と「3. ss -lt」です。

netstatはネットワーク接続状態を表示するためのコマンドです。 netstatコマンドを使用すれば、TCP/UDPで待ち受けているソケットの情報を表示することができます。 例えば、UDPで待ち受けているソケットの一覧を表示する場合、下記のようにnetstatコマンドを使用します。

------ 実行例 ------
$ netstat -lu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*
udp        0      0 localhost:323           0.0.0.0:*
udp6       0      0 localhost:323           [::]:*
------ ------ ------

本例では -lu オプションを指定しており、下記の意味があります。  
-l = 待受ソケットだけを表示するオプション
-u = UDPソケットを表示するオプション  

TCPソケットを表示する場合は -t オプションを指定します。
 
-t = TCPソケットを表示するオプション    

ssはソケットの状態を表示するためのコマンドです。
ssコマンドを使用すれば、TCP/UDPで待ち受けているソケットの情報や通信中のソケット情報等を表示することができます。
netstatと同じように使用することができます。
例えば、UDPで待ち受けているソケットの一覧を表示する場合、下記のようにssコマンドを使用します。

------ 実行例 ------
$ ss -lu
State       Recv-Q Send-Q Local Address:Port                 Peer Address:Port
UNCONN      0      0                 *:bootpc                          *:*
UNCONN      0      0         127.0.0.1:323                             *:*
UNCONN      0      0               ::1:323                            :::*
------ ------ ------

例題の選択肢について解説します。  
1. ip port show 誤っています。
ipコマンドは、IPアドレス情報やルーティング情報を表示・設定するためのコマンドです。
ip OBJECT COMMAND の形式で使用します。

------ 実行例 ------
$ ip route show
default via 172.16.0.1 dev eth0 proto dhcp metric 100 
172.16.0.0/24 dev eth0 proto kernel scope link src 172.16.0.52 metric 100 
172.16.1.0/24 dev eth1 proto kernel scope link src 172.16.1.158 metric 101
------ ------ ------

本例では、ルーティング情報を表示しています。  
選択肢で指定している port というOBJECTは存在しません。  
2. netstat -lt 正解です。  

------ 実行例 ------
$ netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN
tcp6       0      0 [::]:http               [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN
------ ------ ------

3. ss -lt 正解です。

------ 実行例 ------
$ ss -lt
State       Recv-Q Send-Q Local Address:Port                 Peer Address:Port
LISTEN      0      50                *:mysql                           *:*
LISTEN      0      128               *:ssh                             *:*
LISTEN      0      100       127.0.0.1:smtp                            *:*
LISTEN      0      128              :::http                           :::*
LISTEN      0      128              :::ssh                            :::*
LISTEN      0      100             ::1:smtp                           :::*
------ ------ ------

4. route -n 誤っています。
routeコマンドは、IPルーティングテーブルを表示・設定するためのコマンドです。

------ 実行例 ------
$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         ohno-pc         0.0.0.0         UG    100    0        0 eth0
172.16.0.0      0.0.0.0         255.255.255.0   U     100    0        0 eth0
172.16.1.0      0.0.0.0         255.255.255.0   U     101    0        0 eth1
------ ------ ------

ss,netstatコマンドを使用してTCP/UCPソケットの状態を表示できるようにしておきましょう。


例題作成者

株式会社デージーネット OSS研究室 大野公善

ページトップへ