特定のポートを利用しているプロセスを調べる

lsofはUnix系のOSでディスク上のファイル・パイプ・ネットワークソケット・デバイスドライバを開いているプロセスリストを出力するコマンドです。 FreeBSDの場合 sysutils/lsof にあるのでportsからインストール可能です。

port:22 を利用しているプロセス一覧

※port番号を指定する場合は-iオプションを使います。 複数のポートを調べる場合カンマ区切りで指定することも可能です。

例)isof -i:22,23

# lsof -i:22
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
sshd     2097  root    3u  IPv6 0xffffff003e7766e0      0t0  TCP *:ssh (LISTEN)
sshd     2097  root    4u  IPv4 0xffffff003e776370      0t0  TCP *:ssh (LISTEN)
sshd    45789  root    3u  IPv4 0xffffff01741cc6e0      0t0  TCP ns.omakase.org:ssh->d915.omakase.org:51097 (ESTABLISHED)
sshd    45792 tooru    3u  IPv4 0xffffff01741cc6e0      0t0  TCP ns.omakase.org:ssh->d915.omakase.org:51097 (ESTABLISHED)

プロセス名を指定して調べる

プロセス名を指定する場合は-cオプションを使います。

# lsof -c ntp
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF     NODE NAME
ntpd    1081 root  cwd   VDIR               0,73      512        2 /
ntpd    1081 root  rtd   VDIR               0,73      512        2 /
ntpd    1081 root  txt   VREG               0,77   382360 16156832 /usr/sbin/ntpd
ntpd    1081 root  txt   VREG               0,73   246776    70663 /libexec/ld-elf.so.1
以下略

この他にもプロセス番号やユーザ名やipアドレスを指定して調べることも可能です。

created:

Back to top