2 votes

Le processus du système utilise un port, pourquoi ? Windows 7

Existe-t-il un moyen générique de savoir quel service écoute un port en tant que processus système ?

Dans mon cas, le processus System, PID 4, écoute sur le port 443 (https), donc un autre programme qui a besoin de ce port ne peut pas démarrer.

Avant, pendant de nombreuses années, le système n'utilisait pas ce port, je pouvais donc utiliser un autre programme.

Comment puis-je savoir ce qui pousse le système à écouter ce port ?

netstat -a -b -o exécuté sous une invite élevée montre

TCP 0.0.0.0:443 MyComputerName:0 LISTENING 4
Can not obtain ownership information

J'ai installé Apache, mais lorsque je l'arrête, rien ne change. J'ai désinstallé IIS. Les autres suspects sont Skype, CrashPlan et le serveur MySQL, mais ils fonctionnent sur cet ordinateur depuis des années sans causer ce problème. Skype a l'option [_] Use port 80 and 443 non vérifié. La mise en veille de CrashPlan ne libère pas le port.

J'ai demandé cette question sur StackOverflow, mais il a été jugé hors-sujet là-bas.

Il existe un question similaire sur le port 80, mais les réponses qui y figurent ne disent que d'arrêter tel ou tel service spécifique, ce qui ne se généralise pas à un autre port.

Il y a un autre question similaire mais dans ce cas, l'OP commente que la netstat -ab montre svchost.exe comme source de connexion, et aucune des réponses ne résout le problème dans mon cas.

1voto

frooyo Points 658

D'après mes lectures, les causes peuvent être multiples. F La question de Cornelius : " J'ai l'impression qu'au moins ces trois causes différentes peuvent conduire à une telle chose :

  • HTTP.SYS lié à IIS (le serveur web de Microsoft)
  • Une connexion réseau acceptant une connexion VPN entrante. (Peut-être lié à "Remote Access", une partie de RRAS qui est "Routing and Remote Access").
  • Skype (voir le lien hypertexte plus haut dans ma réponse, pour des images).

Je suppose qu'ils ont des facteurs communs, comme l'utilisation de code Microsoft et probablement d'un pilote de bas niveau.

Je pense qu'il doit y avoir un moyen de vérifier, au lieu de chasser. La pile TCP/IP doit savoir où envoyer le trafic, et nous pouvons vérifier ce que la pile TCP/IP fera à l'aide de la commande netstat commandement. U netstat nous donne le PID du système, qui nous indique un processus nommé "System". Je pense que, de la même manière, le processus "System" doit avoir un moyen de savoir à quel pilote envoyer le trafic. Je n'ai pas encore trouvé le moyen de vérifier cela.

En attendant, je me suis dit que j'allais vous indiquer les multiples causes possibles que j'ai trouvées. J'espère que l'une d'entre elles vous permettra de trouver la réponse que vous cherchez.

Note : La façon dont j'ai trouvé cette cause était en regardant certains des éléments prometteurs "connexes" que Superuser.com affiche dans le cadre de droite. L'une des règles de base de Stack Exchange est d'essayer de faire vos propres recherches préalables. Je suggère qu'une autre bonne règle est qu'après avoir posté une question, vérifiez la section intitulée "Related" dans le cadre de droite, parce qu'IMHO Stack Exchange fait un assez bon travail pour trouver fréquemment des questions très pertinentes.

Sur mon système Microsoft Windows, le PID 4 appartient également au processus Système, il ne semble donc pas que ce PID particulier soit très aléatoire.

Le reste de la question explique simplement certaines choses que j'ai vérifiées sur mon système. Cela ne vous aidera pas beaucoup (Alexander Gelbukh) car je peux dire que vous avez déjà compris la plupart ou la totalité de ces choses. Cependant, j'espère que les personnes qui liront ces informations seront moins enclines à recommander aveuglément les produits suivants netstat comme solution, puisque la sortie de netstat n'est pas une solution complète et suffisante (parce que nous devons faire plus que simplement identifier le processus auquel la pile réseau TCP/IP enverra le trafic).

Je pense qu'il peut y avoir de multiples raisons pour lesquelles netstat -b peut dire Can not obtain ownership information y compris l'absence d'élévation de l'UAC (au moins sur certaines versions de Microsoft Windows ; sur mon Windows 10, j'obtiens des résultats différents lorsque l'exécution n'est pas élevée : netstat indique immédiatement The requested operation requires elevation. et donne deux lignes vides, puis quitte).

J'obtiens les mêmes résultats que vous : Lorsque j'exécute l'élévation, je n'arrive pas à voir les résultats de PID 4.

Proto Local Address Foreign Address State PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 996 RpcSs [svchost.exe] TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 Can not obtain ownership information TCP 0.0.0.0:8732 0.0.0.0:0 LISTENING 4 Can not obtain ownership information

(Cela indique que le PID 996 est svchost.exe, mais aucune information sur le PID 4).

`C:>tasklist /SVC | more

Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ System Idle Process 0 Services 0 4 K System 4 Services 0 4,828 K`

`C:\WINDOWS\system32>powershell "Get-NetTCPConnection -LocalPort 445 | Format-List"

LocalAddress : :: LocalPort : 445 RemoteAddress : :: RemotePort : 0 State : Listen AppliedSetting : OwningProcess : 4 CreationTime : 3/2/2017 9:56:19 PM OffloadState : InHost

`

C:\WINDOWS\system32>

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X