如何在本地主机 Windows 上释放端口80?

我安装了 XAMPP 1.6.8,但由于某些原因它不能工作。后来实现的端口80不是空闲的或没有监听。我怎样才能释放它或使它免费?

非常感谢!

526471 次浏览

这只是一个猜测,但是因为端口80是 HTTP 的常规端口,所以您的系统上可能运行了一个 webserver。IIS 激活了吗?

如果您正在运行 IIS,那么您可能正在运行 Web 农场服务。

使用 TcpView查找侦听端口的进程并关闭该进程。

netstat -a -b

应该告诉您什么程序绑定到端口80

试试看

netstat -anb -p tcp

显示端口和进程的

netstat -ano

这将显示侦听端口80的进程的 PID。 然后,打开“任务管理器-> 流程”选项卡。在 View -> Select Columns菜单中,启用 PID列,您将看到监听端口80的进程的名称。

另一个选择是停止 SQL Server Reporting Services。

我之前遇到过这个问题,

如果您看到任务管理器(在启用 PID 视图之后) ,您会发现 PID = 4是“ NT 内核 & 系统正在使用的80端口;

去吧

  1. 控制面板
  2. 程序
  3. 打开/关闭 Windows 特性
  4. 检查 IIS下的 World wide web services是否被检查

如果是这样,再次取消检查并使用 netstat (或 TCPVIEW)查看80是否是空闲的。

那种痛苦已经为我解决了。我发现接管端口80的是 http api 服务。我用 cmd 写道:

net stop http

问我“以下服务将会停止,你想继续吗?”

实际上它停止了一些服务。

然后写了 localhost和 wallah,Apache 在80端口上运行。
希望这个能帮上忙

重点 : Skype 默认使用端口80,您可以在 Skype 选项 > 高级 > 连接中更改此选项,并取消选中“ use port 80”

在升级的命令提示符中使用 Netstat-bano,查看哪些应用程序在监听哪些端口。

但是通常下面的应用程序在窗口中使用端口80。

  1. IIS
  2. 万维网出版服务
  3. IIS 管理服务
  4. SQL Server Reporting Services
  5. Web 部署代理服务

停止上述应用程序,如果运行和检查! ! !

对我来说,这个问题始于我在 Windows8计算机上托管了一个 VPN 连接。

简单地从 “控制面板网络和 Internet 网络连接”中删除连接就解决了这个问题。

Skype 喜欢使用80端口和阻塞 IIS。这是我的问题。

你可以使用 net stop http它将显示哪个进程正在使用

在命令行中输入“ netstat-ano”。

我的问题是因为我在80号端口有 SQL Server Reporting Services。所以我按照这些指示将端口 # 从80改为81:

Http://seankilleen.com/2012/11/how-to-stop-sql-server-reporting-services-from-using-port-80-on-your-server-field-notes/

下面是我更改 SQL Server Reporting Services 端口号后的命令行图片:

enter image description here

如果你仍然有同样的问题,请阅读这个论坛:

Http://forum.wampserver.com/read.php?2,66196,66233#reply

我也有同样的问题。net stop http没有帮助,在 Windows 控制面板的 IIS下的 万维网服务选项没有被选中。因此,在 XAMPP 控制面板中,我选中了 Apache 启动按钮附近的 Svc 复选框(Install Apache as service)并重新启动了 Windows。现在,每次 Windows 启动时,Apache 都会自动启动,并在其他服务启动之前占据80端口。对我有用!

侦听端口80的已知 Windows 服务

从 Services Manager (run: Services.msc)中,停止并禁用这些已知绑定到端口80的 Windows 服务。

双击“服务”,并将“启动类型”更改为“禁用”..。

  1. SQL Server Reporting Services (reportServer)
  2. Web 部署代理服务(MsDepSvc)
  3. 分支缓存(PeerdistSvc)
  4. 同步共享服务(SyncShareSvc)
  5. 万维网出版服务(W3SVC)
  6. 因特网信息服务器(WAS,IISADMIN)

Skype 也使用端口80作为默认设置,您可以取消选中它。

您可能已经安装并运行了其中的一些服务,也可能没有。

在我的情况下,“ SQL Server Reporting Services”是打开端口80。

我试着从这里安装 nginx-http://nginx.org/en/docs/windows.html

转到 http://localhost/将显示一些东西,至少是一个正确的“未找到”消息
这是因为80是默认端口,它被其他进程占用。

现在运行以下命令:

net stop http


// Above command stopped below services
// - SSDP Discovery
// - Print Spooler
// - BranchCache
// - Function Discovery Resource Publication
// - Function Discovery Provider Host

现在,转到 http://localhost/将失败,链接页面消息中断。

主要工艺为 BranchCache
这个过程,停止后,将在几秒钟内重新启动。
因此,我们需要尽快运行其他需要的命令,下面是一个例子:

// this will stop
net stop http


// immeidately run other command you want to
start nginx

现在,去 http://localhost/给了我:

Welcome to nginx!

希望能帮上忙。

我遇到了同样的问题,通过在 httpd.conf文件中做一个小小的更改来解决这个问题,这个更改可以通过单击配置按钮和 Apache 选项来获得。

我所做的更改是将 listen 80替换为 listen 8080。

以编程方式识别真正的过程

(当进程 ID 显示为4时)

和往常一样,这里的答案需要一定程度的交互性。

问题在于,当有东西正在通过 HTTPsys 监听时,PID 总是4,而且正如大多数人发现的那样,您需要一些工具来找到真正的所有者。

下面介绍如何以编程方式识别违规进程。没有 TcpView 等(和那些工具一样好)。确实依赖于 netsh; 但是,这个问题通常与 HTTPsys 有关。

$Uri = "http://127.0.0.1:8989"    # for example




# Shows processes that have registered URLs with HTTP.sys
$QueueText = netsh http show servicestate view=requestq verbose=yes | Out-String


# Break into text chunks; discard the header
$Queues    = $QueueText -split '(?<=\n)(?=Request queue name)' | Select-Object -Skip 1


# Find the chunk for the request queue listening on your URI
$Queue     = @($Queues) -match [regex]::Escape($Uri -replace '/$')




if ($Queue.Count -eq 1)
{
# Will be null if could not pick out exactly one PID
$ProcessId = [string]$Queue -replace '(?s).*Process IDs:\s+' -replace '(?s)\s.*' -as [int]


if ($ProcessId)
{
Write-Verbose "Identified process $ProcessId as the HTTP listener. Killing..."
Stop-Process -Id $ProcessId -Confirm
}
}

最初发布于此: https://stackoverflow.com/a/65852847/6274530