阿里云ECS Windows端口異常占用的處理方法
問題現(xiàn)象
服務(wù)器應(yīng)用使用的端口被異常占用導(dǎo)致服務(wù)啟動(dòng)失敗,例如:Windows上安裝的Tomcat無法啟動(dòng),TCP 80端口已經(jīng)被其它應(yīng)用占用。
問題原因
應(yīng)用程序需要使用的TCP/UDP端口被其它程序、或者病毒木馬占用。
排查方法
使用netstat -ano命令可以找出占用端口的進(jìn)程ID,而后使用tasklist /svc命令找出對(duì)應(yīng)的進(jìn)程。
如下給出一例安裝Tomcat后,啟動(dòng)Tomcat提示端口被占用的處理過程。
使用netstat -ano |find ":80" 看到占用端口的進(jìn)程ID是4,注:請(qǐng)根據(jù)實(shí)際情況修改端口
tasklist /svc| find "4" 看到是系統(tǒng)進(jìn)程。 注:請(qǐng)根據(jù)實(shí)際情況修改進(jìn)程ID
嘗試關(guān)閉了IIS ,iisreset /stop
但是發(fā)現(xiàn)80端口仍然被占用。于是使用curl -I 127.0.0.1 查看返回的server是 Microsoft-HTTPAPI/2.0 而不是Server: Microsoft-IIS/7.5
能夠使用Microsoft-HTTPAPI/2.0的只能是微軟的產(chǎn)品。檢查是否有安裝SQL SERVER ,如果有嘗試關(guān)閉SQL Server Reporting Service這個(gè)服務(wù)。
關(guān)閉后再使用curl -I 127.0.0.1 就提示80端口無法連接,說明端口已經(jīng)被釋放。
注意:如果沒有安裝curl還可以使用telnet 127.0.0.1 80 執(zhí)行完,ctrl+c終止就會(huì)出現(xiàn)下面圖片的樣子,也可以看到server:Microsoft-HTTPAPI/2.0 ,當(dāng)然僅靠這個(gè)是不能判斷是哪個(gè)程序的。只能根據(jù)此判斷是微軟的應(yīng)用占用了。具體還需要看ECS上實(shí)際安裝了哪些微軟的應(yīng)用。
如有其他問題,請(qǐng)咨詢北京優(yōu)勝智連阿里云代理商客服,為您提供7*24小時(shí)全天全年的技術(shù)和售后服務(wù)的。