当前位置:首页 > 综合

怎么关闭80端口的服务

怎么关闭80端口的关闭服务

你敲下 netstat -ano 后,看到一堆 :80 的端口的服监听条目,心里咯噔一下——这端口被谁占了?关闭其实80端口就是HTTP默认端口,Apache、端口的服Nginx、关闭IIS,端口的服甚至某个你早忘了的关闭测试脚本都可能蹲在上面。关掉它,端口的服不是关闭杀进程那么简单,得先弄清楚谁在监听。端口的服

我上个月帮朋友排查一个本地环境,关闭他死活启动不了新项目,端口的服一查就是关闭旧版XAMPP的Apache占着80不放。那种感觉就像你搬家时发现前任留下的端口的服旧沙发堵在门口,搬不走也烧不得。关闭先运行 netstat -ano | findstr :80,记下最后一列的PID——那是进程号,像是你的敌人编号。然后打开任务管理器,按PID找对应进程,右键结束任务。干净利落,但如果对方是系统服务,这招就失灵了。

系统服务级别的占用更麻烦。Windows下IIS或World Wide Web Publishing Service常驻后台,你杀了进程它又自动复活。这时候得用服务管理器:Win+R 输入 services.msc,找到 World Wide Web Publishing Service 或 IIS Admin Service,右键停止,最好把启动类型改成“禁用”。Linux上则是 systemctl stop httpd 或 systemctl stop nginx,再 systemctl disable 防止开机自启。别嫌麻烦,这才是根治。

有时候你查到的PID根本不是Web服务器,而是个陌生进程。别急着杀,先用 tasklist /fi "pid eq 你的PID" 看它是什么来路。我遇到过端口被一个叫 vmware-hostd.exe 的进程占用,那是VMware的宿主服务,杀了它虚拟机全断。这种时候得去VMware的配置里改端口,或者干脆换个端口用。80端口不是非用不可,你开发时用8080、3000都行,何必跟系统服务硬刚。

最隐蔽的情况是Windows的HTTP.sys内核驱动占用了80端口。这玩意儿平时看不见,用netstat查了有 :80 监听,但PID显示为4(System进程)。别慌,这不是病毒,通常是IIS或SQL Server Reporting Services在作祟。你运行 netsh http show servicestate 能看到具体是哪个服务注册了URL。找到后停掉对应服务,或者用 netsh http delete urlacl url=http://+:80/ 删掉权限记录——但这招要管理员权限,且得小心别把系统该用的都删了。

关掉80端口后,顺手验证一下:浏览器访问 http://localhost,如果显示“无法访问”,说明真关了。但别高兴太早,有些服务重启电脑后会卷土重来。想彻底清静,去防火墙入站规则里把80端口的TCP连接都拦了——虽然这有点粗暴,但能保证任何程序都监听不了。不过我不推荐这招,因为你哪天想正经跑个Web服务,还得回来解禁,怪折腾的。

最后说个偏方。你要是只为了临时启动另一个服务,根本不用关80,直接改你那新服务的端口号就行。比如Spring Boot用 server.port=8081,Node.js用 app.listen(3000)。省得跟系统服务斗智斗勇。毕竟80端口就像小区大门,谁都抢着用,但你完全可以走后门。

端口这东西,关了是清净,但得知道谁在背后占着茅坑。用上面几步排查下来,基本十拿九稳。要是还搞不定,八成是装了某种安全软件在捣乱——那种情况,我建议你直接卸载重装,别跟它耗。

分享到: