我怎样才能确定 Linux 中正在监听网络的进程?

我怎样才能确定 Linux 中正在监听网络的进程?

当我使用 netstat -tup 时,它只显示某些进程。其他端口的 PID 也只有一个 -,那么我该如何找出哪些进程正在监听这些端口呢?

答案1

当您显示此列表时,对于没有进程名称的行,您能检查 tcp 套接字的状态吗?

如果它是一个关闭套接字,则该过程可能已断开连接并且 TCP 堆栈可能只是正在清理连接。

其次,您是否netstat有权限运行该命令root
如果您没有该进程的权限,则不会列出其名称。
实际上,如果发生这种情况,大多数 netstat 版本都会在列出输出之前显示有关此情况的警告。

答案2

您还可以使用 lsof。

假设你想知道所有使用端口 80 的进程,你可以输入:

lsof -i :80

并获取正在监听/使用端口 80 的进程列表。以及程序名称和用户。

相关内容