问题现象
服务器应用程序使用的端口被异常占用,导致服务启动失败。比如安装在Windows上的Tomcat就无法启动。
TCP 80端口已被其他应用程序占用。
问题的原因
应用程序需要使用的TCP/UDP端口被其他程序或病毒木马占用。
调查方法
使用netstat -ano命令找出占用端口的进程ID,然后使用tasklist /svc命令找出对应的进程。
下面举例说明安装Tomcat后启动Tomcat提示端口被占用的过程。
1.使用netstat-ano | find ":80 "查看被占用端口的进程ID是4。注:请根据实际情况修改端口。
2.使用task list/SVC | Find“4”查看它是一个系统进程。注意:请根据实际情况修改进程ID。
3.试图关闭IIS,iisreset /stop。
4.但是,发现端口80仍然被占用。所以用curl -I 127.0.0.1检查返回的服务器是不是Microsoft-HTTPAPI/2.0。
不是服务器:Microsoft-IIS/7.5。
只有微软的产品才能使用Microsoft-HTTPAPI/2.0。检查是否安装了SQL SERVER,以及是否有人试图将其关闭。
SQL Server Reporting Service服务。
关闭后使用curl -I 127.0.0.1会提示80端口无法连接,表示该端口已被释放。
注意:如果没有安装curl,可以使用telnet 127.0.0.1 80来完成执行。ctrl c终止时会出现下图,也可以看到服务器:
微软-HTTPAPI/2.0,当然仅凭这个是无法判断是哪个程序的。只能由此判断微软的应用被占用了。细节还是要看的
服务器上实际安装了哪些Microsoft应用程序?
更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。