可能重复:
如何找到正在监听端口的exe?
什么在使用端口 80?
我需要设置我制作的本地 Web 服务器并将其绑定到 127.0.0.1:80。但是,我似乎无法弄清楚是什么占用了这台笔记本电脑的 80 端口。我安装了 IIS,但已将其禁用。但是现在,当我在浏览器中访问 127.0.0.1 时,我得到的不是通常的 IIS 欢迎页面(我没有更改),而是显示以下内容:
即使我转到之前在 IIS 中设置的站点目录,它仍然会显示此错误,这证实了我已成功禁用 IIS 的信念。我一直在搜索,发现这个 SU 帖子并尝试了netstat -o
。但正如您在下面看到的,没有与端口 80 关联的 PID,这让我更加困惑。
我也尝试使用,netstat -ab -p tcp -n
但它给出了一个错误。见下图。
是的,我没主意了。有人能帮我找出什么在使用端口 80 吗?还有,为什么看起来像是有一个鬼web 服务器正在运行?我已经检查过了进程探索器XAMPP 也没有运行。事实上,我在进程列表中看不到任何类似于 Web 服务器的东西。我个人可以识别出大多数正在运行的进程,例如 Google 的音乐管理器、iTunes Helper 等。
这是在 Windows 7 32 位安装上。
答案1
该问题具体解决方法:
停止可能正在运行的 SQL Server 或任何其他 Web 服务或相关 IIS 服务(即“SQL Server Reporting Services” - 请参阅下面评论中的 OP 回复)。使用以下方法检查您正在运行的服务2或者3下面。请查看评论,了解我们如何更详细地解决此问题。
我个人还建议使用运行 LAMP 平台的虚拟机,然后直接在开发箱上运行 WAMP 类型的平台。
如果您正在解决类似问题,可以尝试以下步骤
这不是一个确切的解决方案,但它可能会有所帮助,回应,我会随时更新:
捕获网络流量:
下载wireshark,安装并启动并运行。选择您的网络接口并开始捕获流量。打开浏览器并加载本地站点。即使它在本地接口上,Wireshark 仍应捕获它。如果您查看实际 HTTP 响应的所有各个字段,您可能会找到服务器中指定的应用程序的名称或其他一些线索,这些线索可以帮助您识别哪个服务器正在提供该网页。在 HTTP 流量中,您可能能够识别服务器名称(请参阅此条目)维基百科:HTTP 标头列表,尤其是“服务器”字段。
更新:根据 Scott Chamberlain 在下面的评论,在 Windows 上使用 Wireshark 从本地主机捕获可能会很麻烦(但下面是具体做法根据他的评论)。 另外,请参阅5下面。相反,使用代理工具(如 Fiddler、Paros Proxy、Burp Proxy 等)可能会更容易,这些工具可以让您拦截双向流量以读取原始 HTTP。
进程监控
您尝试过 Process Explorer,但是进程监控在这种情况下,来自 sysinternals 的命令可能会更有帮助。这将向您显示执行活动时读取的文件。一定有东西在响应。
正在运行的进程
听起来你已经查看了一些正在运行的进程,但是你检查过所有正在运行的服务吗?你可以使用以下任一选项获取有关正在运行的服务的信息
- 在开始菜单上输入“services.msc”并以图形方式探索
- 在命令行中输入“tasklist /svc”
- 在命令行中输入“net start”
使用 http 诊断工具:取回来自 Microsoft
此工具可以帮助您处理原始连接,可能比使用上面提到的 wireshark 更容易一些,但它实现了相同的目标:找出原始 HTTP 流量中返回的信息。
使用 Chrome 中的开发人员工具下面是我在下面的评论中讨论内容的屏幕截图:
答案2
在现代版本的 Windows 上,IIS 不会直接监听 HTTP 请求。HTTP 的核心由驱动程序完成http.sys
。您可以使用以下命令列出当前配置的地址/端口/URL
netsh http show servicestate
如果 URL 没有任何配置/
,http.sys
则会生成 404 NOT FOUND 响应,而不是提供任何特定的应用程序或服务。