PID: 4 utilizzando la porta 80


53

Stavo cercando di installare Zend Server CE sul mio computer ma quando sono arrivato al punto dovevo scegliere la porta per il mio Web Server, dice: "Porta Server Web: 80 occupata". Così ho deciso di verificare cosa sta usando la porta 80 con CMD digitando: "netstat -o -n -a | findstr 0.0: 80":

TCP     0.0.0.0:80     0.0.0.0:0     LISTENING     4

Controllo PID: 4 in Processi e servizi di Task Manager. Sembra che PID 4 sia "Sistema".

Quindi, quello che voglio sapere è come posso impedire a "Sistema" (PID: 4) di usare la Porta 80?

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


Non farebbe male a telnet un "GET / HTTP / 1.1" a 127.0.0.1 e vedere cosa succede.
LawrenceC,

@ultrasawblade Come faccio esattamente?
apokaliptis,

1
Corri telnet 127.0.0.1 80e poi oltre quella linea e premi Invio due volte. Se stai utilizzando Windows 7, devi prima installare il client telnet da "aggiungi e rimuovi funzionalità di Windows".
billc.cn,

1
Il servizio di pubblicazione sul World Wide Web in Windows 8 64 per me ha funzionato.

2
Lo stato del servizio HTTP può aiutarti a identificare i servizi in esecuzione in caso di PID 4. Esegui netsh http show servicestatee osserva gli URL registrati o le informazioni di registrazione .
pazadev,

Risposte:


78

Ok, dopo aver cercato per un po 'sul web ho trovato una soluzione al mio problema.

Segui questi passaggi per diagnosticare e risolvere il problema:

  1. Ottieni pid che è in ascolto sulla porta 80: netstat -nao | find ":80"

  2. Apri Task Manager, vai alla scheda Processi e controlla "PID" in Menu/View/Select Columns…, quindi cerca il processo usando il PID trovato nell'ultimo passaggio.

  3. Se si tratta di un'applicazione normale o IIS, disabilitala o disinstalla. Alcuni programmi (come Skype) hanno la possibilità di disabilitare l'uso della porta 80.

  4. Se si tratta di un processo di sistema —PID 4 — è necessario disabilitare il driver HTTP.sys che viene avviato su richiesta da un altro servizio, ad esempio Gestione remota di Windows o Spooler di stampa su Windows 7 o 2008.

    Esistono due modi per disabilitarlo, ma il primo è più sicuro:

    1.

    • Vai a Gestione dispositivi, seleziona “mostra dispositivi nascosti” dal menu / vista, vai a “Driver non plug-and-play” / HTTP, fai doppio clic per disabilitarlo (o impostalo su manuale, alcuni servizi dipendono da esso).

    • Riavviare e utilizzare netstat -nao | find ":80"per verificare se 80 è ancora utilizzato.

    2.

    • Avvia RegEdit.

    • Vai a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

    • Modificare il valore di "start" su 4, che significa disabilitato.

    • Riavvia il tuo computer.

La mia soluzione è stata il passaggio 4 .


4
Dov'è l'albero "Non Plug and Play Driver" nella gestione dispositivi di Windows Server 2012?
Maria Ines Parnisari,

4
L'approccio gestore dispositivi non è disponibile da Windows 8 in poi.
Roddy,

1
La soluzione di registro ha funzionato su Win8. Mi manca Linux.
AlikElzin-Kilaka,

5
Per favore, modifica questo un po '. La disabilitazione del servizio "HTTP" in Windows disabilita tutte le sue dipendenze. Il servizio specifico che utilizza la porta 80 è "W3SVC" (Il servizio di pubblicazione sul Web), una dipendenza di "HTTP". Ciò può essere verificato eseguendo "net stop W3SVC" da un prompt dei comandi amministrativi, quindi 'netstat -n -o -a | trova ": 80" 'per verificare che nulla sia più elencato sulla porta 80. Consiglio invece di disabilitare il servizio di pubblicazione sul Web (W3SVC) (se non si desidera disabilitare SSDP, lo spooler di stampa, il gruppo home e il rilevamento delle funzioni).
chriv,

2
Non capisco affatto queste istruzioni 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).Non c'è nessuna Non-Plug and Play Driver”/HTTPvoce di menu da nessuna parte.
Martin Erlic,

25

Ho appena avuto questo problema dopo l'installazione di Windows 8 Pro - Build 9200. Ho provato diversi metodi ma non sono riuscito a farli funzionare. Questo, tuttavia, l'ha risolto.

È necessario modificare l'indirizzo IP associato per HTTP.SYS

netsh http add iplisten ipaddress=::

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


Questa soluzione è eccezionale, quando è necessario eseguire sia un server che non utilizza http.sys, sia uno che lo faccia.
Thor Jacobsen,

Ha funzionato anche per me. Ma cosa fa effettivamente?
Akame,

1
Ho pensato che questo risolvesse il mio problema perché liberava la porta ma aveva anche altri effetti collaterali. In particolare, dopo questa modifica non sono riuscito a collegarmi a nomi host specifici tramite IIS. Per annullare ho usatonetsh http delete iplisten ipaddress=::
cchamberlain

Questo ha funzionato per me, ma ha avuto effetti collaterali. Si prega di vedere la mia risposta di seguito per una possibile alternativa che utilizza lo stesso comando, ma un indirizzo IP diverso.
Dave Morton,

6

Nel mio caso era WebMatrix. Vedi le possibili soluzioni (compresa questa) qui: http://www.sitepoint.com/unblock-port-80-on-windows-run-apache/

Fondamentalmente:

Apri Servizi da Strumenti di amministrazione e individua "Servizio agente di distribuzione Web". Arrestare il servizio e impostare il tipo di avvio su "Manuale".

Il servizio Web Deployment Agent è distribuito con WebMatrix ed è stata la causa dei miei guai. Può anche essere distribuito con altre applicazioni installate utilizzando il programma di installazione della piattaforma Web Microsoft.


Anche il problema che stavo avendo (su Windows 10)
toby1kenobi il

5

PID 4 è hard coded per essere il processo "Sistema" che fa parte del kernel di sistema.

Se la porta è occupata dal sistema, probabilmente IIS era abilitato. Vedi https://stackoverflow.com/questions/1430141/port-80-is-being-used-by-system-pid-4-what-is-that


Ho disinstallato IIS 7.5 Express pensando che sarebbe stato d'aiuto. Forse devo riavviare? Lo proverò.
apokaliptis,

No. Il problema persiste ancora.
apokaliptis,

Hai installato anche IIS 7.0 (quello fornito con Windows 7)? Normalmente se si interrompe w3svc, la porta verrà chiusa.
billc.cn,

No. E per quanto ne so, non avrei dovuto installare altri server web.
apokaliptis,

Potresti eseguire di nuovo netstat ma pubblicare solo le porte in ASCOLTO?
billc.cn,

1

Mentre l'uso del comando netsh http add iplisten ipaddress=::, infatti, ha consentito ad Apache di avviarsi sul mio sistema Windows 10 a 64 bit, ha causato il caos nel tentativo di accedere a localhost, come ::invece era associato 127.0.0.1, anche con la voce corretta nel mio file hosts. Quello che ho finito per fare è stato invece usare questo comando: netsh http add iplisten ipaddress=0.0.0.0 questo non solo ha funzionato, ma ha anche permesso l'accesso del browser a localhost. Per me questa è stata una soluzione superiore.


0

Apri l'elenco dei servizi Trova "Servizio Pubblicazione sul World Wide Web" Interrompilo e impostalo su Manuale

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.