Как мне освободить мой порт 80 на локальном хосте Windows?

Я установил XAMPP 1.6.8, и по какой-то причине он не работал. Позже выяснилось, что порт 80 не свободен или не слушает. Как я могу его выпустить или сделать бесплатным?

Большое спасибо!


person Community    schedule 25.04.2009    source источник
comment
stackoverflow.com/a/16251034/1339004   -  person amin k    schedule 29.04.2013
comment
stackoverflow.com/questions/750604/freeing- up-a-tcp-ip-порт   -  person mateuszb    schedule 12.07.2013
comment
Я считаю, что это повторяющийся вопрос (пожалуйста, найдите там ответ) - ›stackoverflow.com/questions/1430141/   -  person Dung    schedule 29.03.2017
comment
Дубликат или нет. Это первое обращение в Google.   -  person Bitterblue    schedule 29.03.2018


Ответы (18)


Эта агония для меня разрешена. Я обнаружил, что порт 80 занимает службу http api. Я написал в cmd:

net stop http

Спросил меня: «Следующие службы будут остановлены, вы хотите продолжить?» Нажат y

Фактически остановил ряд сервисов.

Затем написал localhost и wallah, Apache запущен и работает на порту 80.
Надеюсь, это поможет

Важно: Skype по умолчанию использует порт 80, вы можете изменить это в параметрах скайпа> дополнительно> подключение - и снимите флажок «использовать порт 80».

person MuhFred    schedule 26.04.2013
comment
В Windows 7 я не мог остановить процессы из-за отказа в доступе, но он показал мне имена процессов, которые были бы убиты, если бы у меня были права (у меня не было прав на netstat -a -b). - person Pavel V.; 04.12.2014
comment
@PavelV. вы должны запустить командную строку с правами администратора. откройте начало и напишите в поиске cmd, щелкните правой кнопкой мыши на cmd и выберите Запуск от имени администратора. - person MuhFred; 05.12.2014

netstat -ano

Это покажет вам PID процесса, который прослушивает порт 80. После этого откройте Диспетчер задач -> вкладка Процессы. В меню View -> Select Columns включите столбец PID, и вы увидите имя процесса, прослушивающего порт 80.

person Francisco    schedule 25.04.2009
comment
Это хорошо, так как могут быть другие процессы с таким же именем. Мне интересно, есть ли в Windows какая-либо команда kill, которую я могу запустить против найденного PID вместо того, чтобы делать это через диспетчер задач. - person Sundeep; 26.06.2012
comment
taskkill не убивает задачу. Он все еще показывает, что порт 80 работает. @Jijo - person Aakash Thakur; 28.11.2017
comment
Можете ли вы попробовать использовать / f / t в конце, это принудительно убьет задачу, в настоящее время я использую систему Linux, не проверено - person Jijo; 29.11.2017

У меня была эта проблема раньше,

если вы видите диспетчер задач (после включения представления для PID), вы обнаружите, что PID = 4 - это «порт 80, используемый ядром и системой NT;»

Просто зайдите в

  1. Панель управления
  2. Программ
  3. Включение / выключение функций Windows
  4. проверьте, отмечен ли World wide web services под IIS

Если это так, снимите флажок и снова netstat (или TCPVIEW), чтобы проверить, свободен ли 80.

person Eswar Rajesh Pinapala    schedule 21.07.2012
comment
Win7: поиск IIS в меню «Пуск» вызывает диспетчер IIS, в котором можно отключить сервер. - person Philipp; 01.09.2014
comment
Это сработало для меня. Я пытался использовать nginx в Windows, и он не привязывался к ошибке nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions). В Интернете упоминается множество исправлений, но это был самый простой. Мне потребовалась перезагрузка. - person User; 21.07.2021

netstat -a -b

Должен сказать вам, какая программа привязана к порту 80

person Chad Grant    schedule 25.04.2009
comment
он просто дал мне байты, одноадресная передача и т. д. и т. д. не дала того, что привязано к порту 80. Я что-то пропустил? - person ; 25.04.2009
comment
Я попробовал это, и он сказал, что запрошенная операция требует повышения - person createscape; 06.09.2015
comment
Ты Бог! Поклонившись, благодаря этому я смог найти фактическое имя службы, у которой был тот же идентификатор процесса, что и у других, поэтому я не мог понять, прежде чем фактическая служба будет уничтожена из диспетчера задач. Большое спасибо! - person divy3993; 26.07.2020
comment
Для меня это говорит: can not obtain ownership information - что теперь? - person winklerrr; 22.12.2020

используйте netstat -bano в командной строке с повышенными привилегиями, чтобы узнать, какие приложения и какие порты прослушивают.

Но обычно следующие приложения используют порт 80 в Windows.

  1. IIS
  2. Служба публикации в Интернете
  3. Служба администрирования IIS
  4. Службы отчетов SQL Server
  5. Служба агента веб-развертывания

Остановите вышеуказанные приложения, если они запущены, и проверьте !!!

person Rushik Parikh    schedule 09.08.2013
comment
Знаете ли вы каким-либо образом, как убедиться, что эти службы не используют порт 80? - person rahoolm; 07.01.2015
comment
Дафук, это работает, мне были остановлены все службы HTTP, но все еще отказано в использовании порта 80. Теперь он заработал после проверки сервисов вручную Большое спасибо, чувак, да благословит тебя Бог - person Bcktr; 07.02.2021

Используйте TcpView, чтобы найти процесс, который прослушивает порт, и закрыть процесс. .

person MMind    schedule 25.04.2009
comment
или вы можете использовать findstar в пакетном файле windowstechinfo.com/2015/05/ - person Aravinda; 02.05.2015

Другой вариант - остановить службы отчетов SQL Server.

person Kinjal Dixit    schedule 21.01.2011
comment
спасибо, для меня это были службы отчетов SQL Server (MSSQLSERVER), не знаю почему, но когда я завершаю его с помощью консоли служб, обрабатываю с pid 4, не привязанным к 0.0.0.0:80 - person Vladimir Shmidt; 27.10.2011

Вы можете использовать net stop http, он покажет, какой процесс используется. Большинство всемирных веб-сервисов используют

person Warwicky    schedule 06.02.2015

Введите "netstat -ano" в командную строку. Я видел, что это что-то показывает для порта локального адреса 0.0.0.0:80.

Моя проблема заключалась в том, что у меня были службы отчетов SQL Server на порту 80. Поэтому я выполнил эти инструкции и изменил номер порта с 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:

введите описание изображения здесь

Если проблема не исчезла, прочтите этот форум:

http://forum.wampserver.com/read.php?2,66196,66233#REPLY

person Gene    schedule 06.03.2015

Пытаться

netstat -anb -p tcp

которые показывают порты и процессы

person MBaas    schedule 25.04.2009
comment
Состояние моего приложения xampp показывает состояние apache и mysql 1 запуск 1 службы 1 Но браузер по-прежнему не отображает localhost. почему так? какие-нибудь указатели? :( - person ; 25.04.2009

Это всего лишь предположение, но поскольку порт 80 является обычным портом для HTTP, в вашей системе может быть запущен веб-сервер. IIS активен?

Если вы используете IIS, у вас может быть запущена служба веб-фермы. Вот что убивало мой xampp.

person Thomas L Holaday    schedule 25.04.2009
comment
Нет, у меня нет IIS. Раньше я использовал xampp, и он работал. Я предполагаю, что какая-то другая служба сидит на порту 80 и не позволяет переустановить на нем службу Apache. - person ; 25.04.2009
comment
Skype также любит воровать порт 80 - частый неожиданный виновник! - person Simon_Weaver; 17.08.2011

Skype любит использовать порт 80 и блокирует IIS. Это была моя проблема.

person Marcelo Mason    schedule 11.05.2014

У меня тоже была такая же проблема. net stop http не помогло, и параметр Всемирные веб-службы в IIS в Панели управления Windows не был отмечен. Итак, в панели управления XAMPP я просто установил флажок Svc рядом с кнопкой запуска Apache (Установить Apache как службу) и перезагрузил Windows. И теперь каждый раз, когда запускается Windows, Apache запускается автоматически и занимает порт 80 раньше, чем любая другая служба. Сработало у меня!

person user2513149    schedule 25.07.2015

Известные службы Windows, которые прослушивают порт 80

В диспетчере служб (запустите: services.msc) остановите и отключите эти службы Windows, которые, как известно, привязаны к порту 80.

Дважды щелкните «Служба» и измените «Тип запуска» на «Отключено»…

  1. Службы отчетов SQL Server (ReportServer)
  2. Служба агента веб-развертывания (MsDepSvc)
  3. BranchCache (PeerDistSvc)
  4. Служба обмена синхронизацией (SyncShareSvc)
  5. Служба публикации в Интернете (W3SVC)
  6. Информационный сервер Интернета (WAS, IISADMIN)

Skype также использует порт 80 в качестве настройки по умолчанию, и вы можете снять этот флажок.

У вас могут быть установлены и запущены некоторые из этих служб.

В моем случае «Службы отчетов SQL Server» открывали порт 80.

person user3600935    schedule 01.04.2018
comment
Спасибо, это устранило мою проблему. Службы отчетов SQL Server также использовали для меня порт 90. - person borat; 03.09.2020

Я пытался установить 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!

Надеюсь, это поможет.

person Manohar Reddy Poreddy    schedule 13.10.2019

Я столкнулся с той же проблемой и исправил ее, внеся небольшое изменение в файл httpd.conf, который можно получить, нажав кнопку конфигурации вместе с опцией Apache.

Мое изменение заключалось в том, чтобы заменить listen 80 на listen 8080.

person Aditya Jetely    schedule 11.08.2020

Программно идентифицировать реальный процесс

(когда ID процесса показан как 4)

Ответы здесь, как обычно, предполагают уровень интерактивности.

Проблема в том, что что-то прослушивает HTTP.sys; тогда PID всегда равен 4, и, как считает большинство людей, вам понадобится какой-то инструмент, чтобы найти настоящего владельца.

Вот как программно определить нарушающий процесс. Нет TcpView и т. Д. (Как и эти инструменты). Полагается на netsh; но тогда проблема обычно связана с HTTP.sys.

$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

person FSCKur    schedule 22.01.2021

Для меня эта проблема началась, когда я установил VPN-соединение на моем компьютере с Windows 8.

Простое удаление подключения из «Панель управления \ Сеть и Интернет \ Сетевые подключения» решило проблему.

person Zar    schedule 31.01.2014
comment
ответ неактуален. Это вопрос об открытии порта, а не vpn соединения. - person Pouria Ansari; 30.05.2021