1. 首页
  2. 文章列表
  3. 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的进程占用着;

懒得勤快的博客_全栈开发者_互联网分享精神

懒得勤快的博客_全栈开发者_互联网分享精神

接下来按下Ctrl+Alt+esc打开任务管理器,在任务管理器【详细信息】里面,鼠标单击PID这个字段名,按pid给进程排序,然后发现PID=4的是一个叫System的系统进程;

懒得勤快的博客_全栈开发者_互联网分享精神

右键system,打开文件位置,发现是一个位于\Windows\system32\下面文件名叫ntoskrnl.exe的系统程序,

懒得勤快的博客_全栈开发者_互联网分享精神

如何解决问题:

然而我们知道\Windows\system32\下面的程序都是和系统运行相关的一些东西,并且通过这个文件名ntoskrnl.exe我们可以大概知道它是处理系统内核级别的,system这个进程在任务管理器里面结束不了,而且就算把它杀死了,系统也可能会出现不稳定的情况,所以得想想办法,仔细想想,80端口既然是给http用的,那么它很有可能是被某个与http相关的服务占据掉了,通过百度搜出来的结果,虽然搜出来很多的说法,但是都屡试不爽,

懒得勤快的博客_全栈开发者_互联网分享精神

不过,搜出来的这些结果还是给了不少的提示,既然是http服务,那就到服务里面找一下有木有咯,打开服务控制台,h开头的服务就这几个,没找到http,

懒得勤快的博客_全栈开发者_互联网分享精神

通过注册表,最后还是解决了;哎,说了这么多,那到底如何解决呢?下面就说具体的做法了;首先,Windows+R调出【运行】,输入regedit回车,

懒得勤快的博客_全栈开发者_互联网分享精神

展开注册表,找到HKEY_LOCAL_MACHINE目录

懒得勤快的博客_全栈开发者_互联网分享精神

然后按顺序展开到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services;

懒得勤快的博客_全栈开发者_互联网分享精神

到这里,这个Services键就是系统服务的藏身之处,所有的服务都可以通过注册表来管理,接下来展开Services键,往下拉找到HTTP(小提示:将光标定位到下一级目录按H键可快速定位到H开头的目录);

懒得勤快的博客_全栈开发者_互联网分享精神

看到右边有个Start,值为3,然后双击start,弹出一个编辑框,把3改成4,确定;

懒得勤快的博客_全栈开发者_互联网分享精神

好,确定后关闭注册表,检查一下你的系统有没有安装IIS服务,如果安装了IIS服务,那还有接下来的操作,如果没有,那就已经OK了;

如何检查系统是否有IIS?开始菜单搜索“iis”;如果有搜索结果,说明安装有IIS,如果没有搜索结果,就自己看着办吧;我想的话,80端口被占用,你电脑里面多半是装有IIS的;

懒得勤快的博客_全栈开发者_互联网分享精神

有的话,那就打开IIS咯,然后依次展开到这里

懒得勤快的博客_全栈开发者_互联网分享精神

在窗口的最右边菜单里,有个编辑网站->绑定;

懒得勤快的博客_全栈开发者_互联网分享精神

打开绑定设置,有个端口是80的http记录,看到没,选中它,点右边的编辑;

懒得勤快的博客_全栈开发者_互联网分享精神

把端口改成8888或者其它数字,确定,关闭IIS;

懒得勤快的博客_全栈开发者_互联网分享精神

然后重启电脑,再用netstat –ano命令查看端口状态,发现列表里已经没有80和443了,说明80和443端口已经被释放掉了;

懒得勤快的博客_全栈开发者_互联网分享精神

重启之后再用xampp开启Apache服务器就能成功了,看看,是不是很靠谱;

懒得勤快的博客_全栈开发者_互联网分享精神

好,靠谱之后,再把刚才那个注册表的值改回3即可。

懒得勤快的博客_全栈开发者_互联网分享精神

注意:如果你不会用到用VS和IIS的话,你可以不改回来,但是,你以后需要用到IIS或者Visual Studio的话,出现问题,不要忘了,回来把这个注册表的值改回来,我个人建议,为了不会忘记,还是在完事之后先把它改回来再说吧;

小结:

其实80和443端口如果System没占用,有时候也可能被其他的程序给占用掉,比如迅雷等下载工具也有可能会占用,如果发现是其他的程序在占用的话,直接用任务管理器干掉即可;如果你安装了SQL Server,有时候SQL Server ReportingServices (SQLEXPRESS) 服务也可能会占80端口,这个问题直接禁用并停止掉SQL Server ReportingServices就可以了,不过SQL Server一般不会占用http的端口。


下载为Word文档

文章历史版本:

修改次数:1 次 查看历史版本

版权声明:

本文仅用于学习、研究和交流目的,欢迎非商业性质转载。本文链接:https://masuit.com/103

l  博主在此发文(包括但不限于汉字、拼音、拉丁字母)均为随意敲击键盘所出,用于检验本人电脑键盘录入、屏幕显示的机械、光电性能,并不代表本人局部或全部同意、支持或者反对观点。如需要详查请直接与键盘生产厂商法人代表联系。挖井挑水无水表,不会网购无快递。

l  文章内容部分来源于互联网,不代表本人的任何立场;涉及到的软件来源于互联网,仅供个人下载使用,请勿用于商业用途,版权归软件开发者所有,下载后请于24小时内删除,请支持正版!因下载本站任何资源造成的损失,全部责任由使用者本人承担!如果你是版权方,认为本文内容对您的权益有所侵犯,请联系博主,待博主进行严格地审查和背景调查后,情况属实的将在三天内将本文删除或修正。

l  博主的文章没有高度、深度和广度,只是凑字数。由于博主的水平不高(其实是个菜B),不足和错误之处在所难免,希望大家能够批评指出。

l  博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的纯镀 24k 文章,请原谅博主成为一个无耻的文档搬运工!

l  博主只是一名普通的互联网从业者,不懂修电脑,不会卖电脑,不会帮你盗号,不会破解开机密码,找不回你丢失的手机等,如有这样的想法请绕道!


评论区:

    还没有评论哦,赶紧来写评论吧

    分享按钮