
CentOS下可指烂以用netstat或者lsof查看,Windows下也可以用netstat查看,不过参数会不同
Linux:
netstat -nap #会列出所有正在使用的端口及关联的进程/应用
lsof -i :portnumber #portnumber要用具体的端口号代替,可以直接列出该端口听使用进程/应用
一、检查端口被哪个进程占用
代码如下复制代码
netstat -lnp|grep 88 #88请换为你的apache需要的端口,如:80
SSH执行以上命令,可以查看到88端口正在被哪个进程使用。如下图,进程号为 1777 。
二、查看进程的详细信息
ps 1777
SSH执行以上命令。查看相应缓逗猜进程号的程序详细路径。如下图。
三、杀掉进程,重新启动apache
代码如下复制代码
kill -9 1777#杀掉编号为1777的进程(请根据实际情况输入)
service httpd start #启动apache
SSH执行以上命令,如果没有问题,apache将可以正常启动。
Windows系统:
netstat -nao #会列出端口关联的的进程号,可以通过任务管理器查看是哪个任务
最后一列为程序PID,再通过tasklist命令:tasklist | findstr 2724
再通过任务管理结束掉这个程序就可以了
linux经常会查询端口是否被占用,被哪些程序占用。
这里使用 netstat 命令查看centos系统的端口占用情况。
(1)查看全部端口占用情况
执行命令:
结果如下:
可以看到:
3306端口 :被 tcp 协议的 PID 为粗燃10818的mysqld所占用,State为LISTEN表示正在 被监听 。
1596端口 :被 udp 协议的 PID 为1596的chronyd所占用,State为空(state为当前连接状态,udp协议无连接状态)。
(2)查询指定端口的占用情况
如查询 3306 端口的袭棚占用情况,可看到如下记录为
(3)查询占用端口的程序
可通过上述查询结果的PID查询占拍凳则用程序的详细情况:
如查询占用3306端口的程序PID为 10818 ,查看程序详情如下:
常用参数说明如下:
-t :显示TCP协议端口
-u :显示UDP协议端口
-l :--listening,只显示正在侦听的套接字(这是默认的选项)
-p : --program,显示套接字所属进程的PID和名称。
-n :--numeric,显示数字形式地址而不是去解析主机、端口或用户名。
查看所有命令详细用法:
State:套接字的状态。因为在RAW协议中没有状态,而且UDP也不用状态信息,所以此行留空。通常它为以下几个值之一:
ESTABLISHED:套接字有一个有效连接。
SYN_SENT:套接字尝试建立一个连接。
SYN_RECV:从网络上收到一个连接请求。
FIN_WAIT1:套接字已关闭,连接正在断开。
FIN_WAIT2:连接已关闭,套接字等待远程方中止。
TIME_WAIT:在关闭之后,套接字等待处理仍然在网络中的分组
CLOSED:套接字未用。
CLOSE_WAIT:远程方已关闭,等待套接字关闭。
LAST_ACK:远程方中止,套接字已关闭。等待确认。
LISTEN :套接字监听进来的连接。如果不设置 --listening (-l) 或者 --all (-a) 选项,将不显示出来这些连接。
CLOSING:套接字都已关闭,而还未把所有数据发出。
UNKNOWN:套接字状态未知。
1开始---->运行---->cmd,或者是window+R组合键散漏,调出命令窗口
2
输入命令:netstat -ano,列出所锋祥有端口的情况。在列表中我们观察被占用的端口,比如是49157,首先找到它。
3
查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49157",回车,记下最后一位数字,即PID,这里是2720
4
继续输入tasklist|findstr "2720",回车,查看是哪个银掘搏进程或者程序占用了2720端口,结果是:svchost.exe
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)