PID: 4 utilisant le port 80

53

J'essayais d'installer Zend Server CE sur mon ordinateur, mais lorsque j'ai bien compris, je devais choisir le port de mon serveur Web: "Port du serveur Web: 80 occupés". J'ai donc décidé de vérifier ce qui utilise le port 80 avec CMD en tapant: "netstat -o -n -a | findstr 0.0: 80":

TCP     0.0.0.0:80     0.0.0.0:0     LISTENING     4

Je vérifie le PID: 4 dans les processus et services du gestionnaire de tâches. Semble que le PID 4 est "Système".

Donc, ce que je veux savoir, c'est comment puis-je empêcher "System" (PID: 4) d'utiliser le port 80?

INFO: J'utilise: Windows 7 64 bits; Zend Server CE 5.5.0

apokaliptis
la source
Ne pas nuire à telnet un "GET / HTTP / 1.1" à 127.0.0.1 et voir ce qui se passe.
LawrenceC
@ultrasawblade Comment je fais exactement ça?
apokaliptis
1
Exécutez telnet 127.0.0.1 80puis passez cette ligne et appuyez deux fois sur entrée. Si vous utilisez Windows 7, vous devez d’abord installer le client Telnet à partir de «Ajouter et supprimer des fonctionnalités Windows».
billc.cn
1
Le service de publication World Wide Web sous Windows 8 64 a été mon truc.
2
L'état du service HTTP peut vous aider à identifier les services en cours en cas de PID 4. Exécuter netsh http show servicestateet consulter les URL enregistrées ou les informations de journalisation .
Pazadev

Réponses:

78

Ok, après avoir cherché sur le Web pendant un moment, j'ai trouvé une solution à mon problème.

Suivez simplement ces étapes pour diagnostiquer et résoudre votre problème:

  1. Obtenez le pid qui écoute le port 80: netstat -nao | find ":80"

  2. Ouvrez le gestionnaire de tâches, accédez à l'onglet Processus et cochez la case «PID» Menu/View/Select Columns…, puis recherchez le processus à l'aide du PID trouvé à la dernière étape.

  3. S'il s'agit d'une application normale ou d'IIS, désactivez-la ou désinstallez-la. Certains programmes (tels que Skype) ont la possibilité de désactiver son utilisation du port 80.

  4. S'il s'agit d'un processus système ( PID 4), vous devez désactiver le pilote HTTP.sys démarré à la demande par un autre service, tel que Windows Remote Management ou Print Spooler sous Windows 7 ou 2008.

    Il existe deux façons de le désactiver, mais le premier est plus sûr:

    1.

    • Allez dans le gestionnaire de périphériques, sélectionnez «afficher les périphériques cachés» dans le menu / la vue, allez à «Pilote non Plug-and-Play» / HTTP, double-cliquez dessus pour le désactiver (ou définissez-le sur manuel, certains services en dépendent).

    • Redémarrez et utilisez netstat -nao | find ":80"pour vérifier si 80 est toujours utilisé.

    2

    • Lancez RegEdit.

    • Aller à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

    • Remplacez la valeur "start" par 4, ce qui signifie désactivé.

    • Redémarrez votre ordinateur.

Ma solution était l'étape 4 .

apokaliptis
la source
4
Où se trouve l'arborescence "Pilote non Plug-and-Play" dans le gestionnaire de périphériques de Windows Server 2012?
Maria Ines Parnisari
4
L'approche du gestionnaire de périphériques n'est plus disponible à partir de Windows 8.
Roddy
1
La solution de registre a fonctionné sur Win8. Linux me manque.
AlikElzin-kilaka
5
S'il vous plaît modifier cela un peu. La désactivation du service "HTTP" dans Windows désactive toutes ses dépendances. Le service spécifique utilisant le port 80 est "W3SVC" (service de publication World Wide Web), une dépendance de "HTTP". Cela peut être vérifié en exécutant "net stop W3SVC" à partir d'une invite de commande administrative, puis "netstat -n -o -a | trouver ": 80" 'pour vérifier que rien ne correspond plus au port 80. Je recommande de désactiver le service de publication World Wide Web (W3SVC) à la place (si vous ne souhaitez pas désactiver SSDP, le spouleur d'impression, le groupe de maison et la découverte de fonctions).
chriv
2
Je ne comprends pas cette instruction du tout. 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).Il n'y a aucun Non-Plug and Play Driver”/HTTPélément de menu nulle part.
Martin Erlic
25

Je viens d'avoir ce problème après l'installation de Windows 8 Pro - Build 9200. J'ai essayé plusieurs méthodes, mais aucune d'entre elles n'a pu fonctionner. Celui-ci, cependant, l'a corrigé.

Vous devez modifier l'adresse IP liée pour 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
la source
Cette solution est idéale lorsque vous devez exécuter un serveur n’utilisant pas http.sys et un serveur utilisant
Thor Jacobsen
Également travaillé pour moi. Que fait-il réellement?
Akame
1
Je pensais que cela corrigeait mon problème car il libérait le port, mais il entraînait également d'autres effets secondaires. Plus précisément, je ne pouvais pas me connecter à des noms d’hôte spécifiques via IIS après ce changement. Pour annuler, j'ai utilisénetsh http delete iplisten ipaddress=::
cchamberlain
Cela a fonctionné pour moi, mais a eu des effets secondaires. Veuillez voir ma réponse ci-dessous pour une alternative possible qui utilise la même commande, mais une adresse IP différente.
Dave Morton
6

Dans mon cas, c'était WebMatrix. Voir les solutions possibles (y compris celle-ci) ici: http://www.sitepoint.com/unblock-port-80-on-windows-run-apache/

Fondamentalement:

Ouvrez Services à partir des outils d'administration et localisez le “Service de l'agent de déploiement Web”. Arrêtez le service et réglez son type de démarrage sur «Manuel».

Le service d'agent de déploiement Web est déployé avec WebMatrix et a été la cause de mes malheurs. Il peut également être distribué avec d'autres applications installées à l'aide du programme d'installation Web de Microsoft.

Martín Coll
la source
Aussi le problème que j'avais (sous Windows 10)
toby1kenobi
5

Le PID 4 est codé en dur pour être le processus "Système" qui fait partie du noyau système.

Si le port est occupé par le système, IIS était probablement activé. Voir https://stackoverflow.com/questions/1430141/port-80-is-being-used-by-system-pid-4-what-is-that

billc.cn
la source
J'ai désinstallé IIS 7.5 Express en pensant que cela aiderait. Peut-être que je dois redémarrer? Je vais essayer ca.
apokaliptis
Nan. Le problème persiste encore.
apokaliptis
Avez-vous également installé IIS 7.0 (celui fourni avec Windows 7)? Normalement, si vous arrêtez w3svc, le port sera fermé.
billc.cn
Nan. Et pour autant que je sache, aucun autre serveur Web ne devrait être installé non plus.
apokaliptis
Pourriez-vous relancer netstat mais ne publier que les ports en cours d'écoute?
billc.cn
1

Alors que l’utilisation de la commande netsh http add iplisten ipaddress=::permettait en effet à Apache de démarrer sur mon système Windows 10 64 bits, elle tentait énormément d’essayer d’accéder à localhost, car elle était liée à la ::place de 127.0.0.1, même avec l’entrée correcte dans mon fichier hosts. Ce que j'ai fini par faire, c'est d'utiliser cette commande à la place: netsh http add iplisten ipaddress=0.0.0.0 Cela non seulement fonctionnait, mais autorisait également l'accès du navigateur à localhost. Pour moi, c'était une solution supérieure.

Dave Morton
la source
0

Ouvrez la liste des services. Recherchez "Service de publication World Wide Web", arrêtez-le et réglez-le sur Manuel.

Aaron
la source