📘
netstat/ss/lsof/fuserコマンドまとめ
自分用にnetstat
/ss
/lsof
/fuser
コマンドについてまとめてみた。
ネットワークファイル(ソケット)の一覧を表示する
$ sudo lsof -i
- これが一番分かりやすい
ネットワーク接続に関する情報を表示する
TCP接続の場合
$ sudo netstat -nta
$ sudo ss -nta
UDP接続の場合
$ sudo netstat -nua
$ sudo ss -nua
ssはnetstatの代替コマンド
指定したプロセスが使用しているポートを表示する
$ sudo lsof -i | grep <コマンド名>
$ sudo lsof -i | grep sshd
指定したプロセスが使用しているリソースの一覧を表示する
$ sudo lsof -p <プロセスID>
$ sudo lsof -p 411
- リソースには、開いているファイル、ソケット、ディレクトリ、デバイスなどが含まれる
lsofがインストールされていない場合、以下である程度確認できる
$ sudo ls -al /proc/<プロセスID>/fd
$ sudo ls -al /proc/411/fd
指定したポートを使用しているプロセスを表示する
$ sudo lsof -i:<ポート番号>
$ sudo lsof -i:22
$ sudo lsof -i tcp:22
$ sudo lsof -i udp:22
- コマンド名が分かる
$ sudo netstat -ntap | grep <ポート番号>
$ sudo netstat -ntap | grep 22
$ sudo netstat -ntlp | grep 22
- コマンド名が分かる
- -a: display all sockets (default: connected)
- -l: display listening server sockets
- -p: display PID/Program name for sockets
$ sudo ss -ntap | grep <ポート番号>
$ sudo ss -ntap | grep 22
$ sudo ss -ntlp | grep 22
- コマンド名が分かる
- -a: display all sockets
- -l: display listening sockets
- -p: show process using socket
$ sudo fuser <ポート番号>/tcp
$ sudo fuser 22/tcp
- プロセスIDが分かる
$ sudo fuser -n tcp <ポート番号> -uv
$ sudo fuser -n tcp 22 -uv
- コマンド名が分かる
- -n: search in this name space (file, udp, or tcp)
- -u: display user IDs
- -v: verbose output
指定したファイルを使用しているプロセスを表示する
$ sudo fuser -uv <ファイルパス>
$ sudo fuser -uv /dev/null
- コマンド名が分かる
ウェルノウンポートを表示する
$ cat /etc/services
Discussion