PID: 4 über Port 80

53

Ich habe versucht, Zend Server CE auf meinem Computer zu installieren, aber als ich an dem Punkt angelangt bin, an dem ich den Port für meinen Webserver auswählen muss, heißt es: "Webserver-Port: 80 belegt". Also habe ich beschlossen, zu überprüfen, was Port 80 mit CMD verwendet, indem ich Folgendes eingebe: "netstat -o -n -a | findstr 0.0: 80":

TCP     0.0.0.0:80     0.0.0.0:0     LISTENING     4

Ich überprüfe die PID: 4 in den Prozessen und Diensten des Task-Managers. Scheint, dass PID 4 "System" ist.

Ich möchte wissen, wie ich verhindern kann, dass "System" (PID: 4) Port 80 verwendet.

INFO: Ich benutze: Windows 7 64bit; Zend Server CE 5.5.0

Apokaliptis
quelle
Würde nicht schaden, ein "GET / HTTP / 1.1" auf 127.0.0.1 zu telneten und zu sehen, was auftaucht.
LawrenceC
@ultrasawblade Wie genau mache ich das?
Apokaliptis
1
Führen Sie telnet 127.0.0.1 80diese Zeile aus und drücken Sie zweimal die Eingabetaste. Wenn Sie Windows 7 ausführen, müssen Sie zuerst den Telnet-Client über "Windows-Funktionen hinzufügen und entfernen" installieren.
billc.cn
1
Der WWW-Publishing-Dienst in Windows 8 64 hat für mich den Trick getan.
1
HTTP - Service - Zustand kann Ihnen helfen , die laufenden Dienste bei PID 4. Führen Sie zu identifizieren netsh http show servicestateund schauen registrierten URLs oder Protokollinformationen .
Pazadev

Antworten:

77

Ok, nachdem ich eine Weile im Internet gesucht hatte, fand ich eine Lösung für mein Problem.

Befolgen Sie einfach diese Schritte, um Ihr Problem zu diagnostizieren und zu beheben:

  1. Holen Sie sich die pid, die Port 80 abhört: netstat -nao | find ":80"

  2. Öffnen Sie den Task-Manager, wechseln Sie zur Registerkarte "Prozesse", aktivieren Sie "PID" Menu/View/Select Columns…und suchen Sie den Prozess anhand der im letzten Schritt gefundenen PID.

  3. Wenn es sich um eine normale Anwendung oder IIS handelt, deaktivieren oder deinstallieren Sie sie. Einige Programme (wie Skype) haben die Option, die Verwendung von Port 80 zu deaktivieren.

  4. Wenn es sich um einen Systemprozess ( PID 4) handelt, müssen Sie den HTTP.sys-Treiber deaktivieren, der bei Bedarf von einem anderen Dienst wie Windows Remote Management oder Print Spooler unter Windows 7 oder 2008 gestartet wird.

    Es gibt zwei Möglichkeiten, es zu deaktivieren, aber die erste ist sicherer:

    1.

    • Gehen Sie zum Geräte-Manager, wählen Sie "Versteckte Geräte anzeigen" aus dem Menü / Ansicht, gehen Sie zu "Nicht-Plug & Play-Treiber" / HTTP, doppelklicken Sie darauf, um es zu deaktivieren (oder stellen Sie es auf manuell ein, einige Dienste hängen davon ab).

    • Starten Sie den Computer neu und netstat -nao | find ":80"überprüfen Sie mit, ob 80 noch verwendet wird.

    2.

    • Starten Sie RegEdit.

    • Gehe zu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

    • Ändern Sie den Wert von "start" auf 4, dh deaktiviert.

    • Starte deinen Computer neu.

Meine Lösung war Schritt 4 .

Apokaliptis
quelle
4
Wo befindet sich der Baum "Nicht-Plug & Play-Treiber" im Geräte-Manager von Windows Server 2012?
Maria Ines Parnisari
4
Der Gerätemanager-Ansatz ist ab Windows 8 nicht mehr verfügbar.
Roddy
1
Die Registry-Lösung funktionierte auf Win8. Ich vermisse Linux.
AlikElzin-kilaka
5
Bitte ändern Sie dies ein wenig. Durch Deaktivieren des "HTTP" -Dienstes in Windows werden alle Abhängigkeiten deaktiviert. Der spezifische Dienst, der Port 80 verwendet, ist "W3SVC" (The World Wide Web Publishing Service), eine Abhängigkeit von "HTTP". Dies kann überprüft werden, indem Sie "net stop W3SVC" an einer administrativen Eingabeaufforderung und anschließend "netstat -n -o -a |" ausführen find ": 80" 'um zu verifizieren, dass auf Port 80 nichts mehr aufgelistet ist. Ich empfehle, stattdessen den WWW-Publishing-Dienst (W3SVC) zu deaktivieren (wenn Sie SSDP, den Druckerspooler, die Heimnetzgruppe und die Funktionserkennung nicht deaktivieren möchten).
chriv
1
Ich verstehe diese Anweisung überhaupt nicht. 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).Es gibt Non-Plug and Play Driver”/HTTPnirgendwo einen Menüpunkt.
Martin Erlic
25

Ich hatte gerade dieses Problem nach der Installation von Windows 8 Pro-Build 9200. Ich habe verschiedene Methoden ausprobiert, aber keine davon zum Laufen gebracht. Dieser hat es jedoch behoben.

Sie müssen die gebundene IP-Adresse für HTTP.SYS ändern

netsh http add iplisten ipaddress=::

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

neojp
quelle
Diese Lösung ist ideal, wenn Sie einen Server ausführen müssen, der http.sys nicht verwendet, und einen, der http.sys verwendet.
Thor Jacobsen
Arbeitete auch für mich. Was macht es eigentlich?
Akame
1
Ich dachte, dies behebt mein Problem, weil es den Port frei macht, aber auch einige andere Nebenwirkungen hat. Insbesondere konnte ich nach dieser Änderung keine Bindung an bestimmte Hostnamen über IIS herstellen. Zum Rückgängigmachen benutzte ichnetsh http delete iplisten ipaddress=::
cchamberlain
Dies funktionierte für mich, hatte aber Nebenwirkungen. In meiner Antwort unten finden Sie eine mögliche Alternative, die denselben Befehl, jedoch eine andere IP-Adresse verwendet.
Dave Morton
6

In meinem Fall war es WebMatrix. Mögliche Lösungen (einschließlich dieser) finden Sie hier: http://www.sitepoint.com/unblock-port-80-on-windows-run-apache/

Grundsätzlich gilt:

Öffnen Sie die Dienste in den Verwaltungstools und suchen Sie den Web Deployment Agent-Dienst. Beenden Sie den Dienst und legen Sie den Starttyp auf "Manuell" fest.

Der Web Deployment Agent Service wird mit WebMatrix bereitgestellt und war die Ursache meiner Probleme. Es kann auch mit anderen Anwendungen verteilt werden, die mit dem Microsoft Web Platform Installer installiert wurden.

Martín Coll
quelle
Auch das Problem, das ich hatte (unter Windows 10)
toby1kenobi
5

PID 4 ist fest als der "System" -Prozess codiert, der Teil des Systemkerns ist.

Wenn der Port vom System belegt ist, war IIS wahrscheinlich aktiviert. Siehe https://stackoverflow.com/questions/1430141/port-80-is-being-used-by-system-pid-4-what-is-that

billc.cn
quelle
Ich habe IIS 7.5 Express deinstalliert. Vielleicht muss ich neu starten? Ich werde das versuchen.
Apokaliptis
Nee. Das Problem besteht weiterhin.
Apokaliptis
Haben Sie auch IIS 7.0 (das mit Windows 7 gelieferte) installiert? Normalerweise wird der Port geschlossen, wenn Sie w3svc stoppen.
billc.cn
Nee. Und meines Wissens sollte ich auch keine anderen Webserver installieren.
Apokaliptis
Könnten Sie netstat erneut ausführen, aber nur die Ports posten, die LISTENING sind?
billc.cn
1

Während mit dem Befehl netsh http add iplisten ipaddress=::getan hat, in der Tat, erlaubt Apache auf meinem Windows 10 64 - Bit - System zu starten, wreaked es Chaos mit dem Versuch , localhost zuzugreifen, so dass zu gebunden war ::statt 127.0.0.1, auch mit dem richtigen Eintrag in meiner hosts - Datei. Am Ende habe ich stattdessen diesen Befehl verwendet: netsh http add iplisten ipaddress=0.0.0.0 Dies funktionierte nicht nur, sondern ermöglichte auch den Browser-Zugriff auf localhost. Für mich war das eine überlegene Lösung.

Dave Morton
quelle
0

Öffnen Sie die Liste "Dienste". Suchen Sie nach "WWW-Publishing-Dienst". Beenden Sie den Dienst und stellen Sie ihn auf "Manuell" ein

Aaron
quelle