80端口被占用时的终极解决方法

80端口被占用时的终极解决方法

【摘要】 之前在某次安全测试时,遇到一个80端口被占用的坑,将解决方法共享出来。 使用netstat -ano 命令查看是哪个进程正在占用80端口

之前在某次安全测试时,遇到一个80端口被占用的坑,将解决方法共享出来

使netstat -ano 命令查看是哪个进程正在占用80端口

80端口被占用时的终极解决方法

PID为4的进程正在占用80端口。此进程为system进程,无法直接结束进程

使用netsh命令查看http端口使用状态

netsh http show servicetstate

80端口被占用时的终极解决方法

80端口被占用时的终极解决方法

80端口被占用时的终极解决方法

这里可以看到有两个进程正在使用http功能。分别为 3164和3196

80端口被占用时的终极解决方法

其中3196是sql server的report服务

80端口被占用时的终极解决方法

可以将其服务关闭。

80端口被占用时的终极解决方法

进程3164对应的是一个svchost服务。

80端口被占用时的终极解决方法
我们也可以将这个服务关闭

80端口被占用时的终极解决方法

再使用 netstat -ano 命令查看确实已经释放了80端口

但是奇怪的是,50秒之后端口又自动被占用了。

80端口被占用时的终极解决方法

从procmonitor中可以看到,每次关闭服务 BranchCache 每50s后就会继续被svchost给调用起来。

80端口被占用时的终极解决方法

通过services表中,我们发现这里的BranchCache 依赖了HTTP.SYS这个内核驱动。

80端口被占用时的终极解决方法

那我们手工将其禁用即可

以管理员权限打开cmd命令行

80端口被占用时的终极解决方法

这种方法对80端口占用解决应该是100%