web-dev-qa-db-ja.com

Linux、netstat:ポートを使用してプログラムの所有者を表示する方法は?

コマンドnetstatに夢中になっています。
それを読むことができる人では、アクティブなインターネット接続(TCP、UDP、生)の出力で次のようになります。

User:ソケットの所有者のユーザー名またはユーザーID(UID)。

しかし、私がするとき

netstat -natp

出力に所有者(またはUID)が表示されません

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:4713            0.0.0.0:*               LISTEN      2159/pulseaudio  
(...)

また、PIDの所有者を表示するオプションが男性に表示されません。

そこには --numeric-usersオプションですが、何も変更されません。

行方不明のものはありますか?またはnetstatに問題がありますか?
この情報を取得する別の方法はありますか?

ご協力いただきありがとうございます :)

8
Matt C

使用する netstat -natpe

Manページから:

-e, --extend
 Display additional information.  Use this option twice for maximum detail.

泥と同じくらい明確。

これにより、ユーザーとInodeの2つの列が表示に追加されます。

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode      PID/Program name
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      100        13119      1901/mysqld
13
yoonix

または、ユーザーを示すlsof -iを使用することもできます。

COMMAND     PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
httpd     32500  Apache    4u  IPv6   14390      0t0  TCP *:http (LISTEN)
httpd     32501  Apache    4u  IPv6   14390      0t0  TCP *:http (LISTEN)
httpd     32502  Apache    4u  IPv6   14390      0t0  TCP *:http (LISTEN)
httpd     32503  Apache    4u  IPv6   14390      0t0  TCP *:http (LISTEN)
4
Lawrence