Windows Sever关于80端口之争

默认情况下安装了IIS服务器角色的Windows系统,其80端口就被占用了。但是占用80端口的进程却不是WWW Service更不是IIS Admin Sevice,而是处于kernel地位的Http.sys。通过命令netstat -ano可以轻易发现占用80端口的是PID为4的System进程。该进程是Winodws NT系统的内核进程的别名。硬件系统启动并完成引导后载入的Windows系统内核和其他重要的系统文件,其中包含http.sys。http.sys准确来说是实现http协议的组件,不是一个Windows服务,在系统进程中无法找到,在系统的服务中也无法找到,但却是IIS的重要组件WWW Service所依的关键组件。下图展示了IIS的Http的请求架构,更多关于IIS的架构可以查阅这里

回到主题,http.sys作为kernel地位的组件可不是IIS专属的,许多面向Windows应用和服务都可以调用http.sys的API进行编程,带来了很多方便。但是对于诸如Apache和Nginx这些诞生于Linux的开源软件移植到Windows平台时,就不那么有趣了,他们不使用http.sys的API。那么问题来了,不使用共同的中间件,出现硬件资源冲突在所难免。如果可以确保改系统只用于运行Apache和Nginx这些软件,那可以简单的使用命令net stop http的停掉http.sys。但是依赖http.sys的应用和服务太多了,而且有时我们希望他们能够共存,并解决端口冲突的问题。

那么比较好的解决方案是:限制http.sys监听80端口的ip地址,让http.sys只监听在列表中的IP的80端口,而其他的IP地址的80端口给Apache和Nginx使用。如下:

PS C:\Users\administrator.cloud> netsh
netsh>http
netsh http>add iplisten 172.16.1.1

IP address successfully added

netsh http>show iplisten

IP addresses present in the IP listen list:
-------------------------------------------

    172.16.1.1

netsh http>delete iplisten 172.16.1.1

IP address successfully deleted

netsh http>quit
时间: 2024-07-30 09:30:41

Windows Sever关于80端口之争的相关文章

tomcat7.0 windows部署使用80端口问题

如果安装有.net的IDE,那么80端口容易被IIS内的站点占用,如果不是则手动查找. 1:在命令行中输入netstat -ano,得到端口号对应的PID pid这么来显示 此端口显示是已经被我改过来了,所以不做pid显示了. 发现占用80端口的是进程pid 4 一看进程是 system  .经猜测. SQL Server Reporting Services (MSSQLSERVER) (经验之谈,一般这个服务是占用80端口),那么看下图,禁掉服务ok! tomcat7.0 windows部署

windows系统查看80端口被占用的程序并结束该程序运行

一.背景 最近系统更新以后,我在Idea中适用80端口启动项目的时候发现80端口被占用了,就查了资料看怎么找到占用80端口的程序并结束其运行,下面把解决方式共享给大家. 二.解决步骤 1.首先打开控制台. win+X输入cmd回车 2.使用命令:netstat -ano|findstr "80"进行查看80端口所对应的PID. TCP     127.0.0.1:80       0.0.0.0:0             LISTENING    2448 3.使用命令:taskli

解决windows系统80端口被占用问题

在windows下部署web应用(80端口),启动时提示bind 80端口失败 检查端口占用: netstat -ano | findstr 0.0.0.0:80 发现System进程 (pid=4) 占用了端口 然而本机也没有安装iis,于是排除IIS服务的问题. 解决方式 管理员身份运行cmd net stop http //停止系统http服务 sc config http start= disabled //禁用服务的自动启动,此处注意等号后面的空格不可少 重新启动应用,提示成功!

windows 80端口被占用的解决方法

参考文献: 文献1: http://wenku.baidu.com/view/af4681bcfd0a79563c1e7289.html 文献2: http://www.2cto.com/os/201111/111269.html 文献3: http://wenku.baidu.com/view/af4681bcfd0a79563c1e7289.html 文献4: http://www.cameroncooke.com/2009/01/25/windows-7-uses-port-80-and-

windows 2008 r2 系统默认80端口被系统占用的处理

--windows 2008 r2 系统默认80端口被系统占用的处理 --使用netstat 命令查看指定端口netstat -ano | findstr :80----如下所示:本地的80端口被进程为4的占用 TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       4 TCP    192.168.1.207:60652    221.233.41.28:80       CLOSE_WAIT      1716

解决windows系统80端口被占用问题(转)

在windows下部署web应用(80端口),启动时提示bind 80端口失败 检查端口占用: netstat -ano | findstr 0.0.0.0:80 发现System进程 (pid=4) 占用了端口 然而本机也没有安装iis,于是排除IIS服务的问题. 解决方式 管理员身份运行cmd net stop http //停止系统http服务 sc config http start= disabled //禁用服务的自动启动,此处注意等号后面的空格不可少 重新启动应用,提示成功! 转至

【Nginx】Nginx部署Windows设置80端口

Nginx部署在Windows端口做负载均衡时,配置其监听80端口.Start时会发现无法启动,原因为其80端口已被占用. 即使IIS中关闭全部80端口的网站后访问此80端口出现的是404,而非网络断开连接.可以推断出IIS或相关容器一直监听 导致Nginx无法启动的.通过CMD->netstat -ano | findstr "80"发现PID为4的System进程占用. 目前找到的解决方案是修改注册表,重启服务器可以解决此问题:\HKEY_LOCAL_MACHINE\SYST

Windows 的 80 端口被 System 进程占用解决方案

通过 Windows 的资源监视器(win+R:resmon)可以看到 80 端口已经被占用,下图是已经解决好了,没能截图被占用的情况,下面给出解决方案. PS:贴出两个好用的 windows cmd 命令 查看占用端口程序的 PID(最后一列代表 PID): netstat -aon|findstr "端口号" 查看 PID 对应的程序: tasklist|findstr "PID" 打开设备管理器,点击菜单栏中的查看-->显示隐藏设备,这时候你能看到非即插

Windows之80端口被系统占用

Windows之80端口被系统占用 在安装apache的时候发现80端口被占用 查找占用80端口的应用 释放本地80端口: 1.以管理员身份打开cmd 2.运行以下命令 net stop http sc config http start= disabled 原文地址:https://www.cnblogs.com/zhangcheng94/p/12150342.html