PID: 4 usando a porta 80

53

Eu estava tentando instalar o Zend Server CE no meu computador, mas quando cheguei ao ponto em que precisava escolher a porta do meu servidor da Web, ele dizia: "Porta do servidor da Web: 80 ocupada". Então, decidi verificar o que está usando a porta 80 com o CMD digitando: "netstat -o -n -a | findstr 0.0: 80":

TCP     0.0.0.0:80     0.0.0.0:0     LISTENING     4

Verifico o PID: 4 em Processos e serviços do Gerenciador de tarefas. Parece que o PID 4 é "Sistema".

Então, o que eu quero saber é como posso parar o "Sistema" (PID: 4) de usar a Porta 80?

INFO: Estou usando: Windows 7 64bit; Zend Server CE 5.5.0

apokaliptis
fonte
Não faria mal ao telnet um "GET / HTTP / 1.1" para 127.0.0.1 e ver o que acontece.
LawrenceC
@ultrasawblade Como exatamente faço isso?
Apokaliptis 30/10/11
11
Execute telnet 127.0.0.1 80e depois passe essa linha e pressione enter duas vezes. Se você estiver executando o Windows 7, precisará instalar o cliente telnet de "adicionar e remover recursos do Windows" primeiro.
billc.cn
11
O serviço de publicação na World Wide Web no Windows 8 64 para mim fez o truque.
2
O estado do serviço HTTP pode ajudá-lo a identificar os serviços em execução no caso do PID 4. Execute netsh http show servicestatee verifique as URLs registradas ou as informações de log .
21136 pazadev

Respostas:

78

Ok, depois de pesquisar na web por um tempo, encontrei uma solução para o meu problema.

Basta seguir estas etapas para diagnosticar e resolver seu problema:

  1. Obtenha o pid que está escutando a porta 80: netstat -nao | find ":80"

  2. Abra o gerenciador de tarefas, vá para a guia processos e verifique o “PID” Menu/View/Select Columns…, depois procure o processo usando o PID encontrado na última etapa.

  3. Se for um aplicativo normal ou IIS, desative-o ou desinstale-o. Alguns programas (como o Skype) têm a opção de desativar o uso da porta 80.

  4. Se for um processo do sistema - PID 4 -, será necessário desativar o driver HTTP.sys iniciado por demanda por outro serviço, como o Gerenciamento Remoto do Windows ou o Spooler de Impressão no Windows 7 ou 2008.

    Há duas maneiras de desativá-lo, mas a primeira é mais segura:

    1

    • Vá para o gerenciador de dispositivos, selecione "Mostrar dispositivos ocultos" no menu / exibição, vá para "Driver não Plug and Play" / HTTP, clique duas vezes nele para desativá-lo (ou defina-o como manual, alguns serviços dependem dele).

    • Reinicie e use netstat -nao | find ":80"para verificar se 80 ainda está sendo usado.

    2)

    • Inicie o RegEdit.

    • Vamos para HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

    • Altere o valor de "start" para 4, o que significa desativado.

    • Reinicie o computador.

Minha solução foi a etapa 4 .

apokaliptis
fonte
4
Onde está a árvore "Driver não Plug and Play" no gerenciador de dispositivos do Windows Server 2012?
Maria Ines Parnisari
4
A abordagem do gerenciador de dispositivos não está disponível no Windows 8 em diante.
Roddy
11
A solução de registro funcionou no Win8. Sinto falta do Linux.
AlikElzin-kilaka 04/04
5
Por favor, ajuste isso um pouco. Desativar o serviço "HTTP" no Windows desativa todas as suas dependências. O serviço específico que usa a porta 80 é "W3SVC" (Serviço de Publicação na World Wide Web), uma dependência de "HTTP". Isso pode ser verificado executando "net stop W3SVC" em um prompt de comando administrativo e, em seguida, 'netstat -n -o -a | encontre ": 80" 'para verificar se nada mais está listado na porta 80. Eu recomendo desabilitar o Serviço de Publicação na World Wide Web (W3SVC) (se você não quiser desabilitar o SSDP, o Spooler de Impressão, o Grupo Doméstico e a Descoberta de Funções).
Chriv
2
Não entendo absolutamente Go to device manager, select “show hidden devices” from menu/view, go to “Non-Plug and Play Driver”/HTTP, double click it to disable it (or set it to manual, some services depended on it).nenhuma instrução. Não há Non-Plug and Play Driver”/HTTPitem de menu em nenhum lugar.
Martin Erlic
25

Acabei de ter esse problema depois de instalar o Windows 8 Pro - Build 9200. Tentei vários métodos, mas não consegui fazê-los funcionar. Este, no entanto, consertou.

Você precisa alterar o endereço IP vinculado para HTTP.SYS

netsh http add iplisten ipaddress=::

http://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/

neojp
fonte
Essa solução é ótima, quando você precisa executar um servidor que não use http.sys e um que use.
214132 Thor Jacobsen
Também funcionou para mim. O que ele realmente faz?
akame 10/09/15
11
Eu pensei que isso corrigia o meu problema porque liberava a porta, mas também tinha outros efeitos colaterais. Especificamente, não foi possível vincular a nomes de host específicos via IIS após essa alteração. Para desfazer eu useinetsh http delete iplisten ipaddress=::
cchamberlain 7/03/16
Isso funcionou para mim, mas teve efeitos colaterais. Por favor, veja minha resposta abaixo para uma possível alternativa que usa o mesmo comando, mas um endereço IP diferente.
Dave Morton
6

No meu caso, foi o WebMatrix. Veja as soluções possíveis (incluindo esta) aqui: http://www.sitepoint.com/unblock-port-80-on-windows-run-apache/

Basicamente:

Abra Serviços em Ferramentas Administrativas e localize "Serviço do Agente de Implantação da Web". Interrompa o serviço e defina seu tipo de inicialização como "Manual".

O Serviço do Agente de Implantação da Web foi implantado com o WebMatrix e foi a causa dos meus problemas. Também pode ser distribuído com outros aplicativos instalados usando o Microsoft Platform Installer da Microsoft.

Martín Coll
fonte
Também o problema que eu estava tendo (no Windows 10)
toby1kenobi
5

O PID 4 é codificado para ser o processo "Sistema" que faz parte do kernel do sistema.

Se a porta estiver ocupada pelo sistema, você provavelmente tinha o IIS ativado. Consulte https://stackoverflow.com/questions/1430141/port-80-is-being-used-by-system-pid-4-what-is-that

billc.cn
fonte
Eu desinstalei o IIS 7.5 Express pensando que iria ajudar. Talvez eu tenha que reiniciar? Vou tentar isso.
Apokaliptis 30/10/11
Não. O problema ainda persiste.
Apokaliptis 30/10
Você possui o IIS 7.0 (o que acompanha o Windows 7) instalado? Normalmente, se você parar o w3svc, a porta será fechada.
billc.cn
Não. E, tanto quanto eu sei, também não deveria ter outros servidores da web instalados.
Apokaliptis 30/10/11
Você pode executar o netstat novamente, mas apenas postar as portas que estão ouvindo?
billc.cn
1

Ao usar o comando netsh http add iplisten ipaddress=::, de fato, permitiu que o Apache iniciasse no meu sistema Windows 10 de 64 bits, causou estragos ao tentar acessar o host local, pois isso estava vinculado ao ::invés de 127.0.0.1, mesmo com a entrada adequada no arquivo do meu host. O que acabei fazendo foi usar este comando: netsh http add iplisten ipaddress=0.0.0.0 isso não apenas funcionou, mas também permitiu o acesso do navegador ao host local. Para mim, essa foi uma solução superior.

Dave Morton
fonte
0

Abra a lista Serviços Localize "Serviço de publicação na World Wide Web" Pare e defina-o como Manual

Aaron
fonte