Ubuntuで「lsof -i」コマンドで、使用(待ち受け)しているネットワークのポート番号を調べる方法です。
lsof -i 使用しているポート番号を調べる
「lsof -i」コマンドで、現在使用(待ち受け)しているネットワークのポート番号を調べることができます。
sudo lsof -i
表示される情報は下記の項目となっています。
ネットワークで使用しているポート番号を調べるだけであれば、「COMMAND」「TYPE」「NODE」「NAME」ぐらいの情報で足りると思います。
項目 | 内容 |
---|---|
COMMAND | 実行しているコマンド |
PID | プロセスID番号 |
USER | 実行ユーザ |
FD | ファイルディスクリプタ |
TYPE | IPプロトコルバージョン(IPv4,IPv6) |
DEVICE | デバイス番号 |
SIZE/OFF | ファイルサイズまたはオフセット |
NODE | インターネットプロトコル(TCP,UDP) |
NAME | 使用しているポート(ネットワークアドレス:ポート番号) |
使用例
実際に「lsof -i」コマンドで使用しているポート番号を表示させてみます。
※表示される数が多いので「head」コマンドで最初の5行のみ表示させています。
$ sudo lsof -i | head -5 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root 86u IPv6 7752 0t0 TCP *:10022 (LISTEN) systemd-r 710 systemd-resolve 14u IPv4 7584 0t0 UDP _localdnsstub:domain systemd-r 710 systemd-resolve 15u IPv4 7585 0t0 TCP _localdnsstub:domain (LISTEN) systemd-r 710 systemd-resolve 16u IPv4 7586 0t0 UDP _localdnsproxy:domain
条件を指定して表示
「-i」の後に下記の項目を指定することで、それぞれ指定したものだけを表示させることができます。
- -i4 IPv4
- -i6 IPv6
- -iTCP TCP
- -iUDP UDP
- -i:ポート番号
ポート番号は「,」で区切ることで複数指定することもできます。
「587」と「993」番ポートを指定してみます。
$ sudo lsof -i:587,993 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dovecot 801 root 35u IPv4 22105 0t0 TCP *:imaps (LISTEN) master 1412 root 17u IPv4 22720 0t0 TCP *:submission (LISTEN)
条件は複数指定できるので、試しに「IPv6」「TCP」「80番ポート」の3つを指定してみます。
$ sudo lsof -i6TCP:80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 961 root 11u IPv6 20066 0t0 TCP *:http (LISTEN) nginx 970 nginx 11u IPv6 20066 0t0 TCP *:http (LISTEN) nginx 971 nginx 11u IPv6 20066 0t0 TCP *:http (LISTEN) nginx 975 nginx 11u IPv6 20066 0t0 TCP *:http (LISTEN)
オプション
私が普段良く使うオプションの紹介をします。
- -n NAME部分のIPアドレスを名前解決しない
- -P ポート番号をポート名に変換しない
- +c 数字 COMMAND部分で表示される文字数を指定(0-15 0はコマンド名を全て表示)
まずは「-i」オプション以外を指定しない状態で「lsof」コマンドを実行してみますので、上記のオプションを指定した場合と比較してどの様に表示内容が変化するのか確認してみてください。
$ sudo lsof -i | head -5 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd-n 692 systemd-network 15u IPv4 2133565 0t0 UDP vpslife.server-memo.net:bootpc systemd-r 717 systemd-resolve 13u IPv4 20737 0t0 UDP localhost:domain systemd-r 717 systemd-resolve 14u IPv4 20738 0t0 TCP localhost:domain (LISTEN) dovecot 801 root 21u IPv4 22093 0t0 TCP *:pop3s (LISTEN)
-n NAME部分のIPアドレスを名前解決しない
「-n」オプションを使用すると、NAME部分のネットワークアドレスを名前解決せずにIPアドレスで表示させることが出来るようになります。
$ sudo lsof -i -n | head -5 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd-n 692 systemd-network 15u IPv4 2133565 0t0 UDP 118.27.106.189:bootpc systemd-r 717 systemd-resolve 13u IPv4 20737 0t0 UDP 127.0.0.53:domain systemd-r 717 systemd-resolve 14u IPv4 20738 0t0 TCP 127.0.0.53:domain (LISTEN) dovecot 801 root 21u IPv4 22093 0t0 TCP *:pop3s (LISTEN)
-P ポート番号をポート名に変換しない
NAME部分に表示されているポート番号は変換できるものはポート名に変換されて表示されています。(例:443番ポートをhttpsと表示)
「-P」オプションを使用すると数字でポート番号が表示されるようになります。
$ sudo lsof -i -P | head -5 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd-n 692 systemd-network 15u IPv4 2133565 0t0 UDP vpslife.server-memo.net:68 systemd-r 717 systemd-resolve 13u IPv4 20737 0t0 UDP localhost:53 systemd-r 717 systemd-resolve 14u IPv4 20738 0t0 TCP localhost:53 (LISTEN) dovecot 801 root 21u IPv4 22093 0t0 TCP *:995 (LISTEN)
+c 数字 COMMAND部分で表示される文字数を指定
「+c 数字(表示させる文字数)」オプションで「COMMAND」部分に表示する文字数を指定することができます。
「+c」オプションを指定しない場合のデフォルト設定は、9文字分が表示されるようになっています。
文字数は「0〜15」を指定することができますが、「COMMAND」(7文字)の長さより短い数字が指定された場合は、その長さまでに表示数が引き上げられます。
「0」を指定した場合は、省略されずに全ての文字が表示されます。
下記の例では「+c 1」と指定していますが、「COMMAND」と同じ長さの7文字分まで表示されています。
$ sudo lsof -i +c 1 | head -5 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 692 systemd-network 15u IPv4 2133565 0t0 UDP vpslife.server-memo.net:bootpc systemd 717 systemd-resolve 13u IPv4 20737 0t0 UDP localhost:domain systemd 717 systemd-resolve 14u IPv4 20738 0t0 TCP localhost:domain (LISTEN) dovecot 801 root 21u IPv4 22093 0t0 TCP *:pop3s (LISTEN)
「0」を指定するとコマンド名は省略されず全てが表示されます。
$ sudo lsof -i +c 0 | head -5 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd-network 692 systemd-network 15u IPv4 2133565 0t0 UDP vpslife.server-memo.net:bootpc systemd-resolve 717 systemd-resolve 13u IPv4 20737 0t0 UDP localhost:domain systemd-resolve 717 systemd-resolve 14u IPv4 20738 0t0 TCP localhost:domain (LISTEN) dovecot 801 root 21u IPv4 22093 0t0 TCP *:pop3s (LISTEN)
コメント