PIDが現在リッスンしているすべてのポートを一覧表示しようとしています。
プロセスに関するこの種のデータをどのように取得することをお勧めしますか?
Iproute2パッケージのss
を使用できます(これはnetstat
に似ています):
ss -l -p -n | grep "pid=1234,"
または(古いiproute2バージョンの場合):
ss -l -p -n | grep ",1234,"
1234をプログラムのPIDに置き換えます。
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)
私はこのコマンドを here から取得しましたが、すべてのノートをノートに書き留めているため、正確なリンクはわかりません。しかし、そこからチェックアウトすることもできます。
これに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
@ jofelの答え は、使用する適切なツールss
を示しています。これは、iproute2の他のネットワークツールの代替品です。
非推奨のコマンドとそれらに対応するiproute2は次のとおりです。
deprecated replacement(s)
========== ==============
- arp ip n (ip neighbor)
- ifconfig ip a (ip addr), ip link, ip -s (ip -stats)
- iptunnel ip tunnel
- iwconfig iw
- nameif ip link, ifrename
- netstat ss, ip route (for netstat-r), ip -s link (for netstat -i),
ip maddr (for netstat-g)
- route ip r (ip route)
基本的なリストはウィキペディアにもあります: http://en.wikipedia.org/wiki/Iproute2 。
lsof
のもう1つの方法は、PIDがわからない場合はプログラムの名前だけです。
lsof -Pa -p $(pgrep [programName]) -i