プロセスPIDはリッスンしているポートを一覧表示します(好ましくはiproute2ツールを使用)。

プロセスPIDはリッスンしているポートを一覧表示します(好ましくはiproute2ツールを使用)。

PIDが現在リッスンしているすべてのポートを一覧表示しようとしています。

プロセスに関するデータを取得するにはどうすればよいですか?

答え1

iproute2パッケージが利用可能ですss(に似ていますnetstat)。

ss -l -p -n | grep "pid=1234,"

または(以前のiproute2バージョンの場合):

ss -l -p -n | grep ",1234,"

1234をプログラムのPIDに置き換えます。

答え2

ツールの使い方がわかりませんiproute2。しかし、回避策としてこれを試してみることができます。

lsof -Pan -p PID -i

あなたが探している情報を提供する必要があります。


出力

lsof -Pan -p 27808 -i
COMMAND   PID   USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
httpd   27808 apache    5u  IPv6 112811294      0t0  TCP *:80 (LISTEN)
httpd   27808 apache    7u  IPv6 112811298      0t0  TCP *:8443 (LISTEN)
httpd   27808 apache    9u  IPv6 112811303      0t0  TCP *:443 (LISTEN)

ここでこのコマンドを受けました。ここしかし、すべての内容をメモに書き留めたので、正確なリンクはわかりません。しかし、そこでも見ることができます。

答え3

netstatこれを使用して、各リスニングプロセスのpidを見つけることができます。

netstat - ネットワーク接続、ルーティングテーブル、インターフェイス統計、仮面舞踏会接続、およびマルチキャストメンバーシップを印刷します。

-a、--all受信と非受信(TCPの場合は確立された接続を意味します)ソケットを表示します。タグ付けされていないインターフェイスを表示するには、--interfaces オプションを使用します。

--numeric, -n シンボル ホスト、ポート、またはユーザー名を解決する代わりに、数値アドレスを表示します。

-p, --program 各ソケットが属するプログラムのPIDと名前を表示します。

例は次のとおりです。

# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1507/rpcbind
tcp        0      0 0.0.0.0:51188               0.0.0.0:*                   LISTEN      1651/rpc.statd
tcp        0      0 0.0.0.0:1013                0.0.0.0:*                   LISTEN      1680/ypbind
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1975/sshd
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1763/cupsd
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      2081/master
tcp        0      0 127.0.0.1:27017             0.0.0.0:*                   LISTEN      2119/mongod
tcp        0     48 172.16.33.73:22             172.16.127.110:51850        ESTABLISHED 25473/sshd
tcp        0      0 172.16.33.73:22             172.16.127.110:51214        ESTABLISHED 24699/sshd
tcp        0      0 :::111                      :::*                        LISTEN      1507/rpcbind
tcp        0      0 :::9200                     :::*                        LISTEN      1994/java
tcp        0      0 :::9300                     :::*                        LISTEN      1994/java
tcp        0      0 :::22                       :::*                        LISTEN      1975/sshd
tcp        0      0 ::1:631                     :::*                        LISTEN      1763/cupsd
tcp        0      0 ::1:25                      :::*                        LISTEN      2081/master
tcp        0      0 :::59162                    :::*                        LISTEN      1651/rpc.statd

答え4

lsofPIDを知らず、プログラム名だけを知っている場合は、他の方法があります。

lsof -Pa -p $(pgrep [programName]) -i

関連情報