linux-connections

LinuxシステムのTCP/IPネットワーク接続情報を照会します。/proc/net/ディレクトリのプロトコル別ファイルをパースし、/proc/ディレクトリでソケットinodeとプロセスIDのマッピング情報を収集して、各接続の詳細情報を構造化されたフィールドとして返します。

コマンドプロパティ

項目説明
コマンドタイプドライバークエリ
必要な権限管理者
ライセンス使用量集計あり
並列実行非対応
分散実行データノードで実行(mapper)

構文

linux-connections

出力フィールド

フィールドタイプ説明
pid32ビット整数プロセスID。ソケットinodeに対応するプロセスが見つからない場合はnullを返します。
rx_queue64ビット整数受信キューの長さ(バイト)
tx_queue64ビット整数送信キューの長さ(バイト)
protocol文字列プロトコル。tcptcp6udpudp6rawraw6icmpicmp6のいずれか
local_ipIPアドレスローカルIPアドレス
local_port32ビット整数ローカルポート番号
remote_ipIPアドレスリモートIPアドレス
remote_port32ビット整数リモートポート番号
state文字列接続状態。UNKNOWNESTABLISHEDSYN_SENTSYN_RECVFIN_WAIT1FIN_WAIT2TIME_WAITCLOSEDCLOSE_WAITLAST_ACKLISTENCLOSINGのいずれか

エラーコード

パースエラー
エラーコードメッセージ説明
95040no-read-permission管理者権限なしに実行した場合
ランタイムエラー

該当なし

説明

linux-connectionsコマンドは以下のファイルからTCP/IPネットワーク接続情報を収集します:

  • /proc/net/tcp
  • /proc/net/tcp6
  • /proc/net/udp
  • /proc/net/udp6
  • /proc/net/raw
  • /proc/net/raw6
  • /proc/net/icmp
  • /proc/net/icmp6(ファイルが存在する場合のみ)

各ファイルから接続エントリをパースした後、/proc/ディレクトリの各プロセスのファイルディスクリプタ情報を照会して、ソケットinodeとプロセスIDをマッピングします。これにより、各接続に対応するプロセスIDをpidフィールドに割り当てます。ソケットinodeに対応するプロセスが見つからない場合はpidフィールドにnullを割り当てます。

このコマンドには管理者権限が必要であり、権限がない場合はパース段階でエラーが発生します。

使用例

  1. 全ネットワーク接続情報を照会する

    linux-connections
    

    現在のシステムのすべてのTCP/IPネットワーク接続情報を照会します。

  2. LISTEN状態のTCP接続を照会する

    linux-connections
    | search state == "LISTEN" and protocol == "tcp"
    

    TCPプロトコルでLISTEN状態の接続のみをフィルタリングします。

  3. プロトコル別の接続数を集計する

    linux-connections
    | stats count by protocol
    

    プロトコル別の接続数を集計します。