lsof
コマンドはプロセスがオープンしているファイルの一覧を表示します。
manには下記のように記載されている。
lsof - list open files
ファイルはディスク上のファイルだけでなく、ネットワークソケット、デバイスなども含まれるため、オープンしているファイルを調べることで、ネットワークのリッスンしているポート(待受ポート)などもわかりネットワーク周りの調査でもよく使うコマンド。
表示項目
項目 | 説明 |
---|---|
COMMAND | プロセス名(+c num で必要な文字数取れる) |
PID | プロセスID |
USER | 実行ユーザー |
FD | ファイルディスクリプター(それに続く英字1文字は r read access、w write access、u read and write access を指す) |
TYPE | ファイルの種別、例) IPv4 は IPv4 socket、LINK は symbolic link fileとか |
DEVICE | デバイス番号 |
SIZE/OFF | ファイルサイズまたはオフセット、0t または 0x で始まる場合はオフセット |
NODE | ファイルのノード番号 だったりインターネットプロトコルだったりする |
NAME | ファイル名だったりマウントポイント名だったり リモートアドレス( <net>:[<node>:]<port> とそれに続いて接続状態も表示される場合もある ) だったりする |
オプション
オプション | 説明 |
---|---|
-n |
名前解決をせずにIPアドレスを表示する。名前解決をしないので高速に表示されます |
-P |
ポート番号をポート名に変換しない。 例) 443 ポートを https に変換しない |
+c |
プロセス名の表示数(15まで、0を指定すると最大になる) |
-i |
ネットワークファイルのみを対象とする。色々書き方があり、-iTCP だとTCPのみ、-i:ポート番号 で利用しているポートで絞り込める 形式は→ [46][protocol][@hostname|hostaddr][:service|port] |
-U |
Unix domain socketの一覧を取得する |
よく使うコマンド
UDP一覧
lsof -n -P +c 0 -iUDP
複数の特定ポート
lsof -n -P +c 0 -i:8080,3000