ポート番号を調べるのに lsofコマンドが便利なのでメモ サーバー

ポート番号を調べるのに lsofコマンドが便利なのでメモ

lsofコマンドの使い方
lsofとは
PortやPID、プロセス名からファイルがオープンしている情報を表示するコマンド。
lsofを使ってプロセスが利用しているポートを確認

lsof -i
オプション-i:ポート番号でそのポートを利用しているプロセスを調べることができます。

以下だとapacheが post番号80をつかってる
[root@localhost install]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 14063 root 4u IPv6 161290 0t0 TCP *:http (LISTEN)
httpd 14064 apache 4u IPv6 161290 0t0 TCP *:http (LISTEN)
httpd 14065 apache 4u IPv6 161290 0t0 TCP *:http (LISTEN)
httpd 14066 apache 4u IPv6 161290 0t0 TCP *:http (LISTEN)
httpd 14067 apache 4u IPv6 161290 0t0 TCP *:http (LISTEN)
httpd 14068 apache 4u IPv6 161290 0t0 TCP *:http (LISTEN)
[root@localhost install]#


あるプロセスが開いているポート番号を調べる方法
lsof コマンドを使うとプロセスが開いているファイル(ソケットも含む)を見れるのをそれを使う。
-n は名前解決しないためのオプション。-P はポート番号をポート名に変換しないようするオプション


lsofコマンドは名前解決をかってにしちゃうし、ポート番号をポート名に変えて表示してしまうためわかりにくい。
-n は名前解決しないためのオプション。-P はポート番号をポート名に変換しないようするオプション をつけるとわかりやすい
たくさんでるので grep TCP とかつけるとわかりやすい

[root@localhost kibana]# lsof -n -P | grep TCP ★これめっちゃつかえる
sshd 918 root 3u IPv4 14590 0t0 TCP *:22 (LISTEN)


ポート番号から、プロセスIDを調べる場合は lsof -i:[PORT]
※ 補足: ホスト名まで指定する場合は -i@[HOST]:[PORT]

[root@localhost kibana]# lsof -P -i:5601
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 6358 kibana 10u IPv4 26876 0t0 TCP localhost:5601 (LISTEN)
[root@localhost kibana]#