如何查找占用特定端口的进程以及确定进程的具体程序或文件?
1. 确定哪个进程占用了特定端口
-
Windows:
使用
netstat
命令查看网络连接,端口和进程:netstat -ano | findstr "8081"
解释:
-a
: 显示所有活动网络连接和监听端口。-n
: 显示数字形式的地址和端口号,而不尝试确定它们的名称。-o
: 显示与每个连接关联的进程ID。
-
Linux:
使用
netstat
命令查看网络统计信息:netstat -tulnp | grep 8081
解释:
-t
: 显示TCP连接。-u
: 显示UDP连接。-l
: 仅显示监听套接字。-n
: 显示数字形式的地址和端口号。-p
: 显示与每个套接字关联的进程的PID和名称。
或使用
lsof
命令查看打开的文件和进程:lsof -i :8081
解释:
lsof
: "list open files"的缩写。在Unix系统上,所有东西(包括网络套接字)都被视为文件。-i
: 选择套接字。:8081
指定了要查找的端口号。
-
MacOS:
同样使用
lsof
命令:lsof -i :8081
2. 在Linux上确定进程对应的具体程序或文件
-
通过/proc文件系统:
查看进程的完整命令行:
cat /proc/[PID]/cmdline
-
使用ps命令:
查看特定进程的详细信息。
ps -fp [PID]