当我使用 netstat -tup 时,它只显示某些进程。其他端口的 PID 也只有一个 -,那么我该如何找出哪些进程正在监听这些端口呢?
答案1
当您显示此列表时,对于没有进程名称的行,您能检查 tcp 套接字的状态吗?
如果它是一个关闭套接字,则该过程可能已断开连接并且 TCP 堆栈可能只是正在清理连接。
其次,您是否netstat
有权限运行该命令root
?
如果您没有该进程的权限,则不会列出其名称。
实际上,如果发生这种情况,大多数 netstat 版本都会在列出输出之前显示有关此情况的警告。
答案2
您还可以使用 lsof。
假设你想知道所有使用端口 80 的进程,你可以输入:
lsof -i :80
并获取正在监听/使用端口 80 的进程列表。以及程序名称和用户。