遇到了“80端口被占用”的问题,该如何解决?
80端口是为HTTP(HyperText Transport Protocol)即超文本传输协议开放的,一般Web服务器默认配置都是80端口,所以你访问网站时,前缀-http://和端口- :80都是被浏览器隐藏掉的。
某次,我在自己电脑上搭建wnmp,遇到了“80端口被占用”的问题,所以我就想了解一下这是怎么回事。
D:\Program Files\nginx-1.18.0>nginx.exe -q
nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
这是什么问题?
1.我用了管理员启动,确认肯定不是权限问题。
2.端口被占用了吗?但我没运行其他web进程。
我决定检查一下,打开cmd,检查监听端口。
C:\Users\Think>netstat -ano
活动连接 协议 本地地址 外部地址 状态 PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
介绍一下上述命令:
命令格式:netstat [options]
-a表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。
-n表示只以数字形式显示所有活动的TCP连接的地址和端口号。
-o表示显示活动的TCP连接并包括每个连接的进程ID(PID)。
打开Windows任务管理器,查看详细信息。
这是什么进程?
系统的80端口是被W3SVC(万维网发布服务,World Wide Web Publishing Service)占用了,它是系统提供http服务的依赖项。哪些服务使用了这个端口呢?
1.World Wide Web:发布服务;
2.SSDP Discovery:局域网共享所需服务;
3.Print Spooler:打印机交互服务;
貌似这个w3svc服务在办公场景还是有一定作用的。
怎么处理呢?
1.暴力的方法
此方法就是直接不使用这个服务,操作很简单。
C:\Users\Think>net stop http
下面的服务依赖于 HTTP Service 服务。
停止 HTTP Service 服务也会停止这些服务。
World Wide Web 发布服务
SSDP Discovery
Print Spooler你想继续此操作吗? (Y/N) [N]: y
World Wide Web 发布服务 服务正在停止.
World Wide Web 发布服务 服务已成功停止。
SSDP Discovery 服务正在停止.
SSDP Discovery 服务已成功停止。
Print Spooler 服务正在停止.
Print Spooler 服务已成功停止。
HTTP Service 服务已成功停止。
然后禁止服务。
C:\Users\Think>sc config http start= disabled
[SC] ChangeServiceConfig 成功
这样80端口就释放了。
2.迂回方法
如果要用打印机或者共享文件夹的功能, 就能使用此方法,先修改w3svc的监听端口。
C:\Users\Think>netsh http add iplisten ipaddress=::
成功添加 IP 地址
关闭并开启服务
C:\Users\Think>net stop http /y
下面的服务依赖于 HTTP Service 服务。
World Wide Web 发布服务 服务正在停止.
World Wide Web 发布服务 服务已成功停止。
D:\Program Files\nginx-1.18.0>net start http
HTTP Service 服务已经启动成功。
监听端口变了, 而且其他服务都能运行起来。
3.佛系的方法
如果系统要占用端口,那就让它继续占用,我们也可以改用其他端口。
修改nginx.conf
server {
listen
8080;
server_name localhost;
...
}
然后启动nginx,这样就可以完成了。
D:\Program Files\nginx-1.18.0>nginx
C:\Users\Think>netstat -ano
活动连接
协议 本地地址 外部地址 状态 PID
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 30192
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 27272
小结
在这次排障过程中,个人觉得windows自动开80端口是不负责的行为,会给用户带来某些风险,所以不使用时建议将其关掉。同时该操作与linux的原理大同小异,所以操作起来并不复杂。
睿江云官网链接:www.eflycloud.com