开发者社区> 问答> 正文

ECS Windows端口异常占用的处理

服务器应用使用的端口被异常占用导致服务启动失败,例如: Windows 上安装的 Tomcat 无法启动,TCP  80 端口已经被其它应用占用。

展开
收起
开发者说 2019-07-15 09:25:29 1279 0
1 条回答
写回答
取消 提交回答
  • 问题原因

    应用程序需要使用的TCP/UDP端口被其它程序、或者病毒木马占用。

    排查方法

    使用netstat -ano命令可以找出占用端口的进程ID,而后使用tasklist /svc命令找出对应的进程。

    如下给出一例安装Tomcat,启动Tomcat提示端口被占用的处理过程。

    <1> 使用netstat -ano |find ":80" 看到占用端口的进程ID是4,注:请根据实际情况修改端口

    <2> tasklist /svc| find "4" 看到是系统进程。 注:请根据实际情况修改进程ID

    <3> 尝试关闭了IIS ,iisreset /stop

    <4> 但是发现80端口仍然被占用。于是使用curl -I 127.0.0.1  查看返回的server是 Microsoft-HTTPAPI/2.0 而不是Server: 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终止就会出现下面图片的样子,也可以看到server:Microsoft-HTTPAPI/2.0 ,当然仅靠这个是不能判断是哪个程序的。只能根据此判断是微软的应用占用了。具体还需要看ECS上实际安装了哪些微软的应用。

    2019-07-22 11:28:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
大规模云服务器高效使用及管理最佳实践 立即下载
TAKING WINDOWS 10 KERNEL 立即下载
ECS运维指南之Windows系统诊断 立即下载