Windows为什么会出现端口占用?如何处理端口异常占用?
在使用小鸟云服务器建站的过程中,体验还是挺不错的,但今天发现服务器使用的端口被异常占用,一直没有办法启动,TCP 80端口也显示已经被其它应用占用,在提交了工单咨询之后,又在网上查找了很多资料参考,本篇文章作为整理记录,仅供参考。
1.出现端口占用的原因:
TCP上有端口重叠技术,创建socket时设置overlap标记就可以。 但TCP一个端口上只能有一个监听,一个TCP客户端,独占端口起到了唯一识别上层应用的效果。出现端口占用有可能是因为应用程序需要使用的TCP/UDP端口被其它程序、或者病毒木马占用。
2.如何处理端口被占用?
排查:使用netstat -ano命令可以找出占用端口的进程ID,而后使用tasklist /svc命令找出对应的进程。参考:https://www.niaoyun.com/docs/15874/?utm_source=phpc-1209
例子:如果安装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端口无法连接,说明端口已经被释放。
平时建议安装一些杀毒软件(例如:360安全卫士、火绒安全,电脑管家),更新最新病毒库,进行杀毒扫描;或者是使用webshell查杀工具进行后门木马查杀(D盾、河马)。
上一篇: php怎么删除字符串首尾空格
下一篇: python中set不常用吗