80和443端口被PID=4的System进程占用解决方案
操作系统的两个重要的端口,一个是80端口,一个是443端口,这两个端口在网络通信的时候,起着至关重要的作用,在这里,先简单地介绍一下80端口和443端口所起的作用;
80端口是为HTTP即超文本传输协议开放的,此为上网冲浪使用次数最多的协议,主要用于WWW即万维网传输信息的协议。可以通过HTTP地址(即常说的“网址”)加“:80”来访问网站,因为浏览网页服务默认的端口号都是80,因此只需输入网址即可,不用输入“:80”了,而其他端口则必须加上。
443端口即网页浏览端口,主要是用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。在一些对安全性要求较高的网站,比如银行、证券、购物等,都采用HTTPS服务,这样在这些网站上的交换信息其他人都无法看到,保证了交易的安全性。网页的地址以https://开始,而不是常见的http://。
好了,概念神马的看不懂不要紧,关键是你知道它是干嘛使的就OK了,有时候,你要用到80端口或者443端口,而这两端口却被系统占据着,逼着你不改端口不让你用,这是很痛苦的一件事,以前,小编我做web开发的时候,想搭建web服务器,然而80和443端口被系统占用着弄死释放不出来,不得已只有用其他端口来代替,很麻烦,网上也查不到具体怎么解决,因为这个事情也是折腾了我好些天,所以我现在就把这个问题的解决方法贡献给大家。
先说说小编我之前是怎么个情况吧,以前在做web服务器的时候,安装xampp,安装好之后弄死启动不了Apache的服务,没办法,在网上找资料,都说只有改端口,改了端口才终于能启动Apache服务了。
我相信,只要你要做web服务器,你可能也会遇到这样的问题,但是,遇到困难了也不要紧,总会有解决办法的,好,现在就开始讲如何来发现,如何去解决了;
如何查看端口的状态以及被哪个程序占用着:
查看端口的工作状态,其实很简单,Windows+R调出【运行】窗口,输入cmd回车,进入到命令提示符,接着输入netstat –ano | find ”0.0.0.0:80”回车,便看到80端口的状态,果然,80端口被一个PID为4的进程占用着;
http://ww3.sinaimg.cn/large/87c01ec7gy1fsq5rqwi88j208p052jrw.jpg
http://ww3.sinaimg.cn/large/87c01ec7gy1fsq5rrbjblj20g302umxe.jpg
接下来按下Ctrl+Alt+esc打开任务管理器,在任务管理器【详细信息】里面,鼠标单击PID这个字段名,按pid给进程排序,然后发现PID=4的是一个叫System的系统进程;
http://ww2.sinaimg.cn/large/87c01ec7gy1fsq5rrr2qyj20d40bx0u4.jpg
右键system,打开文件位置,发现是一个位于\Windows\system32\下面文件名叫ntoskrnl.exe的系统程序,
http://ww1.sinaimg.cn/large/87c01ec7gy1fsq5rs4yidj20bh040q3x.jpg
如何解决问题:
然而我们知道\Windows\system32\下面的程序都是和系统运行相关的一些东西,并且通过这个文件名ntoskrnl.exe我们可以大概知道它是处理系统内核级别的,system这个进程在任务管理器里面结束不了,而且就算把它杀死了,系统也可能会出现不稳定的情况,所以得想想办法,仔细想想,80端口既然是给http用的,那么它很有可能是被某个与http相关的服务占据掉了,通过百度搜出来的结果,虽然搜出来很多的说法,但是都屡试不爽,
http://ww2.sinaimg.cn/large/87c01ec7gy1fsq5rsfujsj20d60bg756.jpg
不过,搜出来的这些结果还是给了不少的提示,既然是http服务,那就到服务里面找一下有木有咯,打开服务控制台,h开头的服务就这几个,没找到http,
http://ww1.sinaimg.cn/large/87c01ec7gy1fsq5rsz59oj208y05omys.jpg
通过注册表,最后还是解决了;哎,说了这么多,那到底如何解决呢?下面就说具体的做法了;首先,Windows+R调出【运行】,输入regedit回车,
http://ww4.sinaimg.cn/large/87c01ec7gy1fsq5rtdpoxj207t04jgm2.jpg
展开注册表,找到HKEY_LOCAL_MACHINE目录
http://ww3.sinaimg.cn/large/87c01ec7gy1fsq5rtn6yxj206004jt9c.jpg
然后按顺序展开到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services;
http://ww2.sinaimg.cn/large/87c01ec7gy1fsq5rtyrycj206006bgmh.jpg
到这里,这个Services键就是系统服务的藏身之处,所有的服务都可以通过注册表来管理,接下来展开Services键,往下拉找到HTTP(小提示:将光标定位到下一级目录按H键可快速定位到H开头的目录);
http://ww1.sinaimg.cn/large/87c01ec7gy1fsq5rubw1qj20es095ac9.jpg
看到右边有个Start,值为3,然后双击start,弹出一个编辑框,把3改成4,确定;
http://ww1.sinaimg.cn/large/87c01ec7gy1fsq5rumpppj207w056t93.jpg
好,确定后关闭注册表,检查一下你的系统有没有安装IIS服务,如果安装了IIS服务,那还有接下来的操作,如果没有,那就已经OK了;
如何检查系统是否有IIS?开始菜单搜索“iis”;如果有搜索结果,说明安装有IIS,如果没有搜索结果,就自己看着办吧;我想的话,80端口被占用,你电脑里面多半是装有IIS的;
http://ww4.sinaimg.cn/large/87c01ec7gy1fsq5ruwx90j207w09o0tk.jpg
有的话,那就打开IIS咯,然后依次展开到这里
http://ww1.sinaimg.cn/large/87c01ec7gy1fsq5rv79o4j205f056t9a.jpg
在窗口的最右边菜单里,有个编辑网站->绑定;
http://ww2.sinaimg.cn/large/87c01ec7gy1fsq5rvl7r4j205d06ldgc.jpg
打开绑定设置,有个端口是80的http记录,看到没,选中它,点右边的编辑;
http://ww3.sinaimg.cn/large/87c01ec7gy1fsq5rvwnqpj20eg06oq3q.jpg
把端口改成8888或者其它数字,确定,关闭IIS;
http://ww2.sinaimg.cn/large/87c01ec7gy1fsq5rw777aj20ed06n0ti.jpg
然后重启电脑,再用netstat –ano命令查看端口状态,发现列表里已经没有80和443了,说明80和443端口已经被释放掉了;
http://ww4.sinaimg.cn/large/87c01ec7gy1fsq5rwma1lj20dq08yn0d.jpg
重启之后再用xampp开启Apache服务器就能成功了,看看,是不是很靠谱;
http://ww1.sinaimg.cn/large/87c01ec7gy1fsq5rx59o9j20dd08n40z.jpg
好,靠谱之后,再把刚才那个注册表的值改回3即可。
http://ww1.sinaimg.cn/large/87c01ec7gy1fsq5rxozkaj207204m74j.jpg
注意:如果你不会用到用VS和IIS的话,你可以不改回来,但是,你以后需要用到IIS或者Visual Studio的话,出现问题,不要忘了,回来把这个注册表的值改回来,我个人建议,为了不会忘记,还是在完事之后先把它改回来再说吧;
小结:
其实80和443端口如果System没占用,有时候也可能被其他的程序给占用掉,比如迅雷等下载工具也有可能会占用,如果发现是其他的程序在占用的话,直接用任务管理器干掉即可;如果你安装了SQL Server,有时候SQL Server ReportingServices (SQLEXPRESS) 服务也可能会占80端口,这个问题直接禁用并停止掉SQL Server ReportingServices就可以了,不过SQL Server一般不会占用http的端口。 看帖要回,回帖才健康,在踩踩,楼主辛苦了! 确实不错,顶先 不错 支持下 我是个凑数的。。。 楼下的接上。。。。 打酱油的人拉,回复下赚取积分 我也是坐沙发的 呵呵,低调,低调! 众里寻他千百度,蓦然回首在这里!