cmd查看占用的端口 在cmd命令中可用什么命令查看端口占用情况



文章插图
cmd查看占用的端口 在cmd命令中可用什么命令查看端口占用情况

文章插图

netsh http show servicestate 找到进程ID , 任务管理器停止相关服务
昨天刚更新了Windows10 , 总体上来说效果还是蛮不错的 , 然而今天在开启Apache服务器的时候却发现 , Apache莫名其妙的打不开了 , 起初以为是权限的问题 , 于是使用管理员身份的控制台去调用命令net start Apache2.4 , 结果依然是无法打开 。手动启动服务报错“Windows不能再本地计算机启动Apache , 有关更多信息 , 查阅系统时间日志 。如果这是非Microsoft服务 , 请与服务厂商联系 , 并参考特定服务错误代码1 。”如下图所示:
Windows不能再本地计算机启动Apache , 有关更多信息 , 查阅系统时间日志 。如果这是非Microsoft服务 , 请与服务厂商联系 , 并参考特定服务错误代码1 。
看到这种情况 , 我有手动cd到Apache的httpd.exe的目录 , 执行了一下httpd , 这下原因找到了 , 如下图所示:
(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试 。: AH00072: make_sock: could not bind to address 127.0.0.1:80 AH00451: no listening sockets available, shutting down AH00015: Unable to open logs
从图中可以看到错误的原因是套接字绑定错误 , 这下可以确定是Apache的80端口被占用了 。于是就使用命令 netstat -ano 来查看一下到底是哪个程序占用了80端口 , 如图所示端口查找的结果:
看到80端口被PID为4的System进程占用 , 呵呵 , 我想说一句我擦嘞什么鬼+_+ 。仔细想了想 , 一般的程序不会占用80 , 遂使用命令 netsh http show servicestate 查看一下当前的http服务状态 , 发现果然有问题 , 如下图所示:
图中可以看到 , 80端口被一个DefaultAppPool的东西占用了 , 如果用过IIS的童鞋 , 这时候肯定一定想到了原因 , 这里我们依然要接着往下找原因 , 图中可以看出控制器进程ID为4640 , 那么就 就继续查看一下4640进程是什么鬼 , 进入任务管理器 , 找到PID4640的进程 , 右键转到服务 , 可以看到当前的进程所在的服务 , 如图所示:
看到图中的服务 , 这里原因也就找到了 , IIS的World Wid Web Publishing Service 万维网服务的问题 。
解决方案:
控制面板–>程序–>启用或者关闭Windows功能–>找到Internet Information Service , 将其关闭即可
最近电脑时不时就发生了80端口被占用的情况,简单百度解决后,当重启电脑的时候又发生被占用的情况.今天非常幸运的是,发生了80端口和8080端口都被占用了情况,忍无可忍决定下定决心解决这个坑爹的问题,经过重新百度完美地解决了这个问题,下面贴出解决方法:
【cmd查看占用的端口 在cmd命令中可用什么命令查看端口占用情况】一:原文地址:http://www.2cto.com/os/201505/399603.html
我的占用原因是 SQL Server Reporting Services , 停止掉这个服务并设置其为手动启动即可
如果你并没有安装 SQL Server , 请参考下文解决
===============================================================================
突然发现 80 端口被莫名占用 , 咋一看还是 System 这个进程
又无法结束这货 , 于是开始慢慢查看到底是什么东西占用了
首先 , 打开 cmd 跑这一句 , 80 端口被System 占用 , 肯定是 HTTP 服务搞的鬼
1
netsh http show servicestate
看到 REPORTSERVER 略显疑惑
我们继续看 , 得到使用 80 端口的 PID了 , 还等什么?开 taskmgr!(任务管理器)
任务管理器查看 PID 的方法:
上方在 cmd 中 , 我们得到 PID = 4212 , 现在我们看看是什么东西在作怪
看到上图的结果 , 恍然大悟!如果大家不确定那是一个什么进程 , 我们对他右键 – 打开文件所在位置
这下大家应该都明白了吧 。我这个占用的根本是 SQL Server 的报告服务
最后我去 services.msc 里停止他并设置这个服务为手动就搞定了 。
如何查看当前 80 端口占用情况:
1
netstat -ano | findstr 0.0.0.0:80
这段命令输入后回车 , 中间无内容即表示无占用
二:原文地址:https://www.caogenjava.com/detail/75.html
今天笔者想在server2008服务器上用80端口跑个项目 , 但是系统提示80端口被占用 , 端口被占用这在开发过程中是常见的事情 , 查一下被谁占用了 , 干掉他不就完了 。一查不要紧 , 结果太诡异 , 使用netstat -ano命令查看 , 80端口被pid的为0的进程给占用了 , 用任务管理器一看 , 这个pid为0的进程竟然是系统闲置进程即system idle process , 这个进程可是干不掉的 , 于是乎一通百度 。
首先在一篇百度文库里找到了一篇帖子 , 说的是被sqlserver数据库给占用了 , 因为我那台服务器确实也安装了该数据库 , 原以为就是它的原因 , 但是按照文章中的说明处理之后80端口还是被占用 , 重启服务器之后依旧 。那篇帖子地址是这个:《解决Windows Server 2008 System进程占用80端口》 。
最终终于在其他帖子里找到了答案 , 废话不多说 , 直接上方案 。
打开设备管理器 , 点击菜单栏中的查看–>显示隐藏设备 , 这时候你能看到非即插即用驱动程序 , 展开 , 找到HTTP,双击切换到驱动程序选项卡 , 将类型设为已禁用 , 确定 , 重启系统 。(注:理论上 , 你直接点停止也是可以的 , 但是我点击之后系统总是卡死 。禁用还是要设置的 , 否则系统重启之后80又被占用了),HTTP驱动通常是打印机之类的设备连接造成的端口占用