【摘要】 之前在某次安全測試時,遇到一個80端口被占用的坑,將解決方法共享出來。 使用netstat -ano 命令查看是哪個進程正在占用80端口
之前在某次安全測試時,遇到一個80端口被占用的坑,將解決方法共享出來
使netstat -ano 命令查看是哪個進程正在占用80端口

PID為4的進程正在占用80端口。此進程為system進程,無法直接結束進程
使用netsh命令查看http端口使用狀態
netsh http show servicetstate



這里可以看到有兩個進程正在使用http功能。分別為 3164和3196

其中3196是sql server的report服務

可以將其服務關閉。

進程3164對應的是一個svchost服務。

我們也可以將這個服務關閉

再使用 netstat -ano 命令查看確實已經釋放了80端口
但是奇怪的是,50秒之后端口又自動被占用了。

從procmonitor中可以看到,每次關閉服務 BranchCache 每50s后就會繼續被svchost給調用起來。

通過services表中,我們發現這里的BranchCache 依賴了HTTP.SYS這個內核驅動。

那我們手工將其禁用即可
以管理員權限打開cmd命令行

這種方法對80端口占用解決應該是100%
