📅  最后修改于: 2023-12-03 15:17:23.274000             🧑  作者: Mango
在Linux系统中,PID是进程的唯一标识符。如果你想查找某个进程使用的端口,就需要先找到该进程对应的PID。下面介绍几种方法来查询PID使用的端口。
lsof命令可以列出当前系统中所有打开的文件,包括网络连接。可以使用以下命令来查询某个PID所使用的端口:
lsof -i :端口号
lsof -i :80 # 查找使用80号端口的进程
使用lsof还可以找到某个端口被哪个进程占用,例如:
lsof -i :80 | grep LISTEN
其中,grep LISTEN表示只查找处于LISTEN状态的进程,即正在监听端口。
netstat命令可以显示当前系统的网络连接和socket信息。以下命令可以查询某个进程所使用的端口:
netstat -ap | grep 进程名
例如:
netstat -ap | grep nginx
这条命令可以查找所有正在使用nginx作为进程名的进程所使用的端口。
Linux的/proc文件系统提供了系统运行时进程的信息。PID对应的目录就是/proc/PID。在该目录下有一个net目录,里面包含一个类似于TCP连接的文件,其中包含了该进程使用的所有网络链接信息。通过以下命令可以查询某个PID使用的端口:
cat /proc/PID/net/tcp | awk '{print $2}' | awk -F: '{print $2}'
其中,awk命令用于获取TCP文件中的第2列数据,即本地socket地址信息。再通过第二个awk命令的-F参数指定以冒号为分隔符来获取端口号信息。
以上就是三种查询PID使用的端口的方法。在工作中可以根据需求来选择合适的方法。