关于80端⼝号冲突的问题总结(全)
I.Port80简介:
80端⼝是为(HyperText Transport Protocol)即开放的,此为上⽹冲浪使⽤次数最多的协议,主要⽤于WWW(World Wide Web)即万维⽹传输信息的协议。可以通过HTTP地址(即常说的“⽹址”)加“: 80”来访问⽹站,因为浏览⽹页服务默认的都是80,因此只需输⼊⽹址即可,不⽤输⼊“: 80”了。
II.问题描述:
80端⼝是⼀个最为频繁访问的端⼝号,甚为程序员开发更是经常遇到,⽐如我们最熟悉的数据库系统服务进程就是默认访问该端⼝的,还有⽐如Ngnix服务器默认端⼝也是80,所以当使⽤ngnix时发⽣端⼝号冲突了,应该怎么办呢?以下见析。
III.原因:
主要是与http协议有关的进程,进⾏⽹上访问的系统级别的进程最频繁占⽤80端⼝。⽐如Http.sys。它是http 的驱动组件,Http栈。如果该端⼝被Http.sys占⽤,说明⼀些正在使⽤http.sys的应⽤程序在运⾏。
IV.解决办法:辛集一中女篮
1)使⽤命令查看哪个线程占⽤80端⼝
win+R调出doc窗⼝,输⼊cmd,继续输⼊"netstat -ano | more"或者“netstat -aon”
2)寻端⼝号
到“本地地址”栏为0.0.0.0:80的⼀⾏,在⾏的末尾有pid(进程id)为“4”。
3)打开任务管理器(ctrl+alt+del)
查看pid为4的线程,⼀般会显⽰system占⽤;⾃然system是⽆法直接kill的。
使⽤netsh命令查看端⼝使⽤状态:”netsh http show servicetstate“。
可以看到有两个进程正在使⽤http功能。分别为 3164和3196。
其中3196是sql server的report服务;进程3164对应的是⼀个svchost服务。
上海五一旅游 两者都可以关闭,数据库服务的见下述解决⽅式。
【扩展】:
但是,50秒之后端⼝⼜会⾃动被占⽤了。【重新占⽤】
从procmonitor中可以看到,每次关闭服务 BranchCache 每50s后就会继续被svchost给调⽤起来。
通过services表(服务表)中,我们发现这⾥的BranchCache 依赖了HTTP.SYS这个内核驱动。
⼿动禁⽤即可。
端口被占用 4)多版本解决⽅案:
【分析】:
1)SQL Server导致。其中很有可能是SQL Server Reporting Services (MSSQLSERVER),它是 SQL Server 的⽇志系统。渠家大院
看电视软件 2)IIS 服务。如果你电脑安装了这个,很有可能它在运⾏着,那么它就占⽤着80端⼝。(打开IIS的⽅法:打开控制⾯板,点“卸载”,
弹窗⾥左侧有⼀个“打开或关闭windows功能”,再点开会有⼀个弹窗,“Internet信息服务”,到 Internet Information Services,
点加号展开!因为直接点这个⼤项前⾯的⼩⽅块,FTP服务器选项没反应,我图⾥的这⼏个都勾上就⾏了。
然后右下⾓点确定,IIS开启成功了。
关上:开始图标那个win旁边有个圈圈,点开输⼊iis回车就能打开IIS管理器,右击,点停⽌,IIS就算关上了。(win10系统) 3)其他。(⽐如,迅雷等程序或者⼀些其他有上传功能的软件都会占⽤电脑的80端⼝)
A.已知为数据库进程占⽤,最常见:谷雨的诗句 古诗
i.查看“任务管理器”进程栏或者详细信息栏,有没有数据库有关的进程,直接kill就⾏。
ii.打开【管理】->【服务和应⽤程序】->【服务】->到“SQL Server Reporting Service",禁⽤或者⼿动皆可。
以上可以解决基本上90%左右的占⽤问题。
(⼀般来说,可能是近期安装了数据库或者升级了数据库等软件造成的,系统占⽤的端⼝⼀般都是微软官⽅的产品占⽤的。) B.未知进程,即system进程(win7 system默认占⽤):
i.禁⽤http.sys
输⼊net stop http,然后确认继续操作,在输⼊Sc config http start= disabled即可停⽌该项服务。
ii.调出注册表
打开RegEdit:【开始】->【运⾏】->输⼊【regedit】调出 ”注册表“,
到”HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTP“,
到⼀个DWORD值Start,将其改为0,重启电脑,System进程将不会占⽤80端⼝。
【备注】:杀掉进程的命令:taskkill /pid 4 /f ,其中 /f 表⽰强制关闭该进程。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论