ポート番号からポート番号を利用しているプロセスがどれかを調べる方法を以下に記述します。
以下、CentOS6を利用して確認しました。
$ nc -l localhost 12345 (ncコマンドがインストールされていなかったので、rootユーザでyum install ncを実行)
lsof -i:ポート番号複数のポート番号を調べる
lsof -i:ポート番号,ポート番号尚、lsofコマンドですが、rootであればPATHが通ってますが、一般ユーザではPATHが通っていません。
$ /usr/sbin/lsof -i:12345 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nc 2680 sakura 3u IPv4 19922 0t0 TCP localhost.localdomain:italk (LISTEN)出力結果のCOMMANDにncと表示されています。
lsofをフルパスで指定すれば一般ユーザでも動作しますし、上記のようにコマンドを起動したユーザとlsofのユーザが同じであればlsofによる出力結果が表示されます。 以下に一般ユーザとrootで確認してみます。
[sakura@centos6 ~]$ /usr/sbin/lsof -i:22 [sakura@centos6 ~]$何も出力されませんでした。
[root@centos6 ~]# lsof -i:22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1522 root 3u IPv4 12332 0t0 TCP *:ssh (LISTEN) sshd 1522 root 4u IPv6 12334 0t0 TCP *:ssh (LISTEN)rootであれば、問題なくポート番号22のCOMMAND, PIDなどが表示された。
参考まで
[root@centos6 ~]# lsof -i:22,25 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1522 root 3u IPv4 12332 0t0 TCP *:ssh (LISTEN) sshd 1522 root 4u IPv6 12334 0t0 TCP *:ssh (LISTEN) master 1640 root 12u IPv4 12752 0t0 TCP localhost.localdomain:smtp (LISTEN)