添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Linux基本コマンドTips一覧

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ネットワークのソケットの情報などを出力する「ss」コマンドです。

ssコマンドの概要 | 書式 | オプション一覧

  • ソケットの状態を表示する
  • 接続待ち(LISTEN)のソケットも表示する
  • プロセスも表示する
  • ssコマンドとは?

    「ss」コマンドは、ネットワーク通信で利用する「ソケット」についての情報などを出力するコマンドです ※1。従来はnetstatコマンドが使用されていましたが、現在はssコマンドへの移行が進んでいます。

    ipコマンド( 連載第146回 第149回 )と同じiproute2パッケージに、収録されています ※2。

    ※1 ネットワーク通信を行うアプリケーションソフトウェアでは、TCPやUDPなどの(トランスポート層の)プロトコルを直接利用するのではなく、ソケットと呼ばれるAPIを通じて間接的に利用し、開発の手間を省くことが多い。サーバ側とクライアント側ではソケットの使い方が一部異なる。サーバ側では(TCP)ソケットの生成後、LISTEN用のポートにバインド、LISTEN実行、クライアントからのコネクションの受け付け、通信実行、ソケットのクローズというように処理が進む。クライアント側は(TCP)ソケットの生成後、サーバと接続、通信実行、ソケットのクローズというように進む。
    ※2 CentOS 7では「iproute」という名前で提供されている。Ubuntu 17では「iproute2」。移行用にiprouteという名前のダミーパッケージも併せて提供されている。

    -A クエリ --query=クエリ, --socket=クエリ 対象をカンマ区切りで指定する(all、inet、tcp、udp、raw、unix、packet、netlink、unix_dgram、unix_stream、unix_seqpacket、packet_raw、packet_dgramから選択) -F ファイル名 --filter=ファイル名 フィルターの指定をファイルから読み込む

    ssの主なオプション(表示内容関係)

    短いオプション 長いオプション --numeric サービス名の名前解決を行わない(ポート番号を表示) --resolve 名前解決を行う --extended 詳細情報を表示 --options タイマー情報も表示する --memory 各ソケットのメモリの使用量も表示する --processes ソケットを使用しているプロセスも表示する --context -pオプションに加えてセキュリティコンテキストも表示(SELinux) --contexts -Zオプションに加えてソケットコンテキストも表示(SELinux) --info 内部TCPの情報も表示する --summary ソケットの種類ごとに本数を表示する -D ファイル名 --diag=ファイル名 RAW情報をファイルに出力する(画面には何も出力しない)

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

    ss 」で現在のソケットの状態(State)を表示します( 画面1 ではheadコマンドで冒頭部分だけを出力)。「-t」でTCPソケットのみ、「-u」でUDPソケットのみを表示します。「ss -tu」のように同時に指定することも可能です。

    コマンド実行例

    (ソケットなどの状態を表示)( 画面1

    ss -t

    (TCPソケットの状態を表示)( 画面1

    ss -u

    (UDPソケットの状態を表示)

    ss -tu

    (TCPとUDPの両方のソケットの状態を表示)

    画面1 ソケットなどの情報を表示したところ

    目次に戻る

    接続待ち(LISTEN)のソケットも表示する

    「ss」では接続中あるいは終了処理を行っているなど、何らかの動きがあるソケットを表示します。これに対し、「-l」オプションを使うと接続待ちをしているソケットを表示します。「-a」オプションでは両方を表示します。

    コマンド実行例

    ss -l

    (接続待ちのソケットだけを表示)

    ss -a

    (接続待ちを含めた全てを表示する)

    ss -tl

    (TCPで接続待ちのソケットを表示)( 画面2

    画面2 ではTCPソケットの状態を表示しています。3行目にあるように現在、他のPCとsshで接続(ESTABlish)していることが分かります。

    画面2 TCPソケットをさまざまな条件で表示したところ

    目次に戻る

    プロセスも表示する

    「-p」オプションでソケットと結びついたプロセスを同時に表示します。 画面3 では、Firefoxとyum update(rootユーザー)の処理中に「 ss -tp 」を実行しました。

    プロセスによっては一般ユーザーでは表示されないものもあります。タイミングは若干異なりますが、 画面4 では画面3と同じくFirefoxとyum updateを実行中に、rootユーザーで「ss -tp」を実行しています。図3には表示されていなかった、yum updateのプロセス(urlgrabber...)という行が現れました。

    コマンド実行例

    ss -p

    (接続の状態をプロセス付きで表示)

    ss -tp

    (TCPの接続状態をプロセス付きで表示)( 画面3 画面4

    画面3 ソケットとプロセスを同時に表示したところ(一般ユーザー) 画面4 ソケットとプロセスを同時に表示したところ(rootユーザー)

    目次に戻る