2つのポートをリッスンするプロセスがあります:45136/tcpと37208/udp(実際には同じプロセスだと思います)。しかし、netstatはpidを返しません。
netstat -antlp | grep 45136
tcp 0 0 0.0.0.0:45136 0.0.0.0:* LISTEN -
「grep 37208」と同じ結果。
私もlsofを試しました:
lsof -i TCP:45136
しかし、それは何も返しません。これはsqueezeの新規インストールであり、このプロセスが何であるかは本当にわかりません。何か案が ?
[〜#〜] answer [〜#〜]あなたのコメントのおかげで、それが何であるかを知りました。 nfs-server nfs-commonをアンインストールし(dkpg --get-selections | grep nfs searchの後)、不明なプロセスが表示されなくなりました。奇妙なことに、そのカーネルプロセスはまったくマークされていません。
二人ともありがとうございました。 ;)
そこにはプロセスがあります。ユーザーIDは、それが何であるかを知るのに慣れていません。これはlsof
が提供する保護レイヤーであり、これを防ぐことができます。単にコマンドを再実行しますが、代わりにSudo
コマンドを使用してプレフィックスを付けます。
$ Sudo netstat -antlp | grep 45136
上部のlsof
の出力には、これに関する警告さえあります。
(すべてのプロセスを識別できるわけではなく、所有されていないプロセス情報は表示されません。すべてを表示するにはrootである必要があります。)
$ netstat -antlp | grep 0:111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -
$ Sudo netstat -antlp | grep 0:111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1248/rpcbind
netstat
で運がない場合は、おそらくss
で十分です。それでもSudo
を使用する必要があり、出力は少し不可解になる可能性があります。
$ ss -apn|grep :111
LISTEN 0 128 :::111 :::*
LISTEN 0 128 *:111 *:*
$ Sudo ss -apn|grep :111
LISTEN 0 128 :::111 :::* users:(("rpcbind",1248,11))
LISTEN 0 128 *:111 *:* users:(("rpcbind",1248,8))
TCP使用中のポートに関連付けられたPIDが存在しない場合があります。NFSについては、 @ derobertの回答 で読むことができます。他にもあります。IMAPなどのサービスに接続するためにsshトンネルを使用している場合があります。これらはプロセスIDなしでも表示されます。
いずれの場合も、より詳細な形式のnetstat
を使用できます。これにより、最終的にTCPポートを使用しているプロセスをさらに詳しく知ることができます。
$ netstat --program --numeric-hosts --numeric-ports --extend
$ netstat --program --numeric-hosts --numeric-ports --extend |grep -- '-' | head -10
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 192.168.1.103:936 192.168.1.3:60526 ESTABLISHED root 160024310 -
tcp 0 0 192.168.1.1:2049 192.168.1.3:841 ESTABLISHED sam 159941218 -
tcp 0 0 127.0.0.1:143 127.0.0.1:57443 ESTABLISHED dovecot 152567794 13093/imap-login
tcp 0 0 192.168.1.103:739 192.168.1.3:2049 ESTABLISHED root 160023970 -
tcp 0 0 192.168.1.103:34013 192.168.1.3:111 TIME_WAIT root 0 -
tcp 0 0 127.0.0.1:46110 127.0.0.1:783 TIME_WAIT root 0 -
tcp 0 0 192.168.1.102:54891 107.14.166.17:110 TIME_WAIT root 0 -
tcp 0 0 127.0.0.1:25 127.0.0.1:36565 TIME_WAIT root 0 -
tcp 0 0 192.168.1.1:2049 192.168.1.6:798 ESTABLISHED tammy 152555007 -
出力にINODESが含まれていることに気付いた場合は、この情報を使用してプロセスに戻ることができます。
$ find -inum 152555007
これにより、プロセスにつながる可能性のあるファイルが表示されます。
別のオプションは、ソケットがプロセスに属しておらず、カーネルに属していることです。これの一般的な例の1つはNFSです。
Watt:~# netstat -ltp | egrep -- '-[[:space:]]*$'
tcp 0 0 *:nfs *:* LISTEN -
tcp 0 0 *:48131 *:* LISTEN -
tcp6 0 0 [::]:55607 [::]:* LISTEN -
tcp6 0 0 [::]:nfs [::]:* LISTEN -
一般的に、これらを特定するための良い方法はわかりません。 NFSの特定のケースでは、rpcinfo
はしばしば私たちに伝えることができます:
anthony@Watt:~$ rpcinfo -p | grep 48131
100021 1 tcp 48131 nlockmgr
100021 3 tcp 48131 nlockmgr
100021 4 tcp 48131 nlockmgr
残念ながら、これはIPv4でのみ機能します。 v6を入手するには、除外する必要があります-p
、これは愚かな方法でポート番号を表示します:IPアドレスの2つの追加オクテットとして。したがって、ポート55607は217.55になります(217×256 + 55 = 55607のため):
anthony@Watt:~$ rpcinfo | grep -i 217.55
100021 1 tcp6 ::.217.55 nlockmgr superuser
100021 3 tcp6 ::.217.55 nlockmgr superuser
100021 4 tcp6 ::.217.55 nlockmgr superuser