ポートは開いている/リッスンしているが、関連するプロセスがない

ポートは開いている/リッスンしているが、関連するプロセスがない

の出力で、不明nmap -p- localhostなオープン TCP ポートが表示されますが、これは再起動ごとに異なります。どのプロセスがポートを開いてリッスンしているかを判断するにはどうすればよいでしょうか。一般的なツール ( netstat、、) を多数試しましたが、原因がわかりません。例: PID/プログラム名が表示されません。sslsofsudo netstat -pan -Ainet | grep <PORT>

tcp 0 0 0.0.0.0:<PORT> 0.0.0.0:* LISTEN -

起動シーケンスを分析する必要があるかもしれません。しかし、どのようにすればよいのでしょうか?

誰か助けてくれませんか?

答え1

としてほのめかしたss答えを提供できます。構文は次のとおりです。

sudo ss --tcp --listening --processes 'sport = 1234'

1234nmap スキャンからの今日のポートはどこにありますか。これにより、出力が TCP ポートに制限され、そのポートでリッスンしているプロセス名と PID が表示されます。プロセス名と PID を提供するフラグがsudo必要な場合にのみ必要です。--process

答え2

Netstat は、root として正しいフラグを使用して実行すると、まさに要求どおりに動作します。

sudo netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      1931/dnsmasq    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      32296/cupsd     
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      1550/postgres   
tcp6       0      0 :::80                   :::*                    LISTEN      3198/docker-proxy

また、ssはの置き換えでありnetstat、ほぼ同じフラグを取りますが、出力のフォーマットが異なります。

答え3

カーネルや特定のサービス(NFS、OCFS、sshトンネル)によって開かれたポートの一部は、netstatやssでは表示されません。

関連情報