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

124

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

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

informatik01
источник
Я считаю, что это повторяющийся вопрос (пожалуйста, найдите там ответ) -> stackoverflow.com/questions/1430141/…
Dung
Дубликат или нет. Это первое попадание в Google .
Bitterblue

Ответы:

113

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

net stop http

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

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

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

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

MuhFred
источник
В Windows 7 я не мог остановить процессы из-за «отказа в доступе», но он показал мне имена процессов, которые были бы убиты, если бы у меня были права (у меня не было прав на netstat -a -b).
Павел В.
1
@PavelV. вы должны запустить командную строку с правами администратора. откройте «Пуск» и напишите в поиске «cmd», щелкните правой кнопкой мыши на cmd и выберите «Запуск от имени администратора».
MuhFred
67

netstat -ano

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

Франциско
источник
1
Это хорошо, так как могут быть другие процессы с таким же именем. Мне интересно, есть ли в Windows какая-либо команда kill, которую я могу запустить против найденного PID вместо того, чтобы делать это через диспетчер задач.
Sundeep
taskkill не убивает задачу. Он все еще показывает, что порт 80 работает. @Jijo
Aakash Thakur
1
Вы можете попробовать использовать / ф / т в конце концов, он будет принудительно убить задачу, я в настоящее время в системе Linux, не проверено
Jijo
41

netstat -a -b

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

Чад Грант
источник
1
он просто дал мне байты, одноадресная передача и т.д. и т.д. не дал то, что привязано к порту 80. Я что-то пропустил?
6
ntoskrnl.exe - что теперь?
Тим Ловелл-Смит,
1
Я попробовал это, и он сказал: «Запрошенная операция требует повышения»
createdcape
Ты Бог! Поклонившись , благодаря этому я смог найти фактическое имя службы, у которой был тот же идентификатор процесса, что и у других, поэтому я не мог понять, прежде чем фактическая служба будет уничтожена из диспетчера задач. Действительно спасибо!
divy3993
36

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

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

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

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

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

Эсвар Раджеш Пинапала
источник
2
Win7: в меню «Пуск» при поиске «IIS» появляется «диспетчер IIS», где вы можете отключить сервер.
Филипп
34

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

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

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

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

Рушик Парих
источник
Знаете ли вы каким-либо образом, как убедиться, что эти службы не используют порт 80?
rahoolm
18

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

MMind
источник
или вы можете использовать findstar в командном файле windowstechinfo.com/2015/05/…
Аравинда
6

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

Кинджал Диксит
источник
спасибо, для меня это были службы отчетов SQL Server (MSSQLSERVER), не знаю почему, но когда я завершаю их с помощью консоли служб, обрабатываю с pid 4 без привязки с 0.0.0.0:80
Владимир Шмидт
6

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

Warwicky
источник
6

Пытаться

netstat -anb -p tcp

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

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

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

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

Томас Л. Холадей
источник
1
Нет, у меня нет IIS. Раньше я использовал xampp, и он работал. Я предполагаю, что какая-то другая служба сидит на порту 80 и не позволяет переустановить службу Apache на нем.
2
Skype также любит воровать порт 80 - частый неожиданный виновник!
Simon_Weaver
5

Введите "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

Ген
источник
4

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

Марсело Мейсон
источник
4

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

user2513149
источник
2

Известные службы 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.

user3600935
источник
0

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

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

Зар
источник
0

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

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

Манохар Редди Поредди
источник
-1

в моем случае окно iis для остановки службы агента веб-развертывания. введите cmd

 net stop msdepsvc 
gogog
источник