一、进程,服务,端口的关系
进程:运行的程序,通过API从操作系统取得各种服务。
服务:通常,服务是一个向应用程序和其他服务(本地和远程)提供一系列功能的实体。服务依赖于隐式声明的本地服务列表。在电脑中,需要各种服务支持各种功能。网络服务需要打开至少一个端口。
端口:如果进程需要进行网络通信,就要取得网络服务,从而必须要打开某些端口。
二、不同平台下查看打开端口的进程,及端口上运行的服务
【Windows】
1、命令行下,执行 netstat -ano|findstr "端口号",查询占用该端口进程的pid;
2、命令行下,执行 tasklist|findstr "pid",查询该pid是哪个进程;或直接打开任务管理器查看;
【linux】
方法一:
执行 lsof -i:端口号,查询占用该端口进程及其pid;
方法二:
netstat -anp|grep 端口号 查出占用端口的进程号
ps -ef|grep 进程号 查处该进程号对应的进程
【solaris】
方法一:
1、使用下面shell script,先建立一个port.sh文件:
# more /tmp/port.sh
#!/bin/sh
for pid in `ls /proc`
do
pf=`/usr/bin/pfiles $pid 2>/dev/null`
if echo $pf | grep $1 > /dev/null 2>&1
then
echo $pid
/usr/bin/pargs $pid
fi
done
2、运行port.sh, 传入端口号,比如60129:
# /tmp/port.sh 60129
3、查看运行结果。也可用 pfiles pid 或者 pargs pid查看详细信息。
其实实质就是先用 ls /proc 列举出所有进程号,再用pfiles 进程号|grep 端口号 ,依次判断。
方法二:
最简单的方法,就是在/proc目录下,执行 pfiles *|grep 端口号 。