Quel programme utilise ce port ?
Un serveur ne démarre pas sur le port 8080, ou un test s'arrête sur « address already in use ». Soit un programme a déjà le port, soit Windows l'a mis de côté, et les deux erreurs se ressemblent. Voici comment les distinguer.
Deux raisons pour lesquelles un port ne s'ouvre pas
| Ce qui s'est passé | Comment cela se présente | Que faire |
|---|---|---|
| Un programme a le port | L'erreur dit que l'adresse est déjà utilisée (EADDRINUSE, ou erreur Windows 10048). Le programme apparaît dans la liste des sockets. | Fermez ce programme ou choisissez un autre port. |
| Windows a mis le port de côté | L'erreur dit que l'accès est interdit (erreur Windows 10013) alors que rien n'écoute. Aucun programme n'apparaît dans la liste. | Choisissez un port hors de la plage réservée, ou libérez la plage. Redémarrer le service WinNAT suffit souvent. |
Avec ce que Windows fournit déjà
La liste des sockets donne le propriétaire sous forme d'identifiant de processus. Cherchez le port, puis l'identifiant :
netstat -ano | findstr :8080
tasklist /fi "PID eq 4321"
La même chose dans PowerShell, pour TCP et pour UDP :
Get-NetTCPConnection -LocalPort 8080 | Select-Object LocalAddress, State, OwningProcess
Get-NetUDPEndpoint -LocalPort 5353 | Select-Object LocalAddress, OwningProcess
Get-Process -Id 4321
Si aucun programme ne tient le port, demandez quelles plages Windows a mises de côté :
netsh int ipv4 show excludedportrange protocol=tcp
Relancez avec protocol=udp. Les plages sont tenues par protocole : un port peut donc être libre pour UDP et réservé pour TCP.
Avec l'onglet Tools
L'onglet Tools répond aux mêmes questions sans console :
- Sockets liste chaque socket TCP et UDP de l'ordinateur, comme
netstat -ano: ce qui écoute, ce qui est connecté, son état et le programme qui le possède. Aucune session n'est nécessaire. Cherchez aveclport:8080oustate:listen. - Port check pose la question de votre serveur : un programme peut-il utiliser ce port ? Saisissez 8080, une liste comme
80, 443ou une plage comme9000-9100(jusqu'à 1000 ports), puis appuyez sur Check. Chaque port est essayé en TCP et en UDP, en IPv4 et en IPv6, et marqué Free, In use (avec le programme et son PID) ou Reserved by Windows.
C'est pourquoi la réponse est un tableau et non un oui ou un non : Windows réserve des plages par protocole, et un programme à l'écoute en IPv6 peut tenir un port libre en IPv4.
Rien n'est envoyé sur le réseau. Pour chaque port, l'outil le demande à Windows sur l'adresse de bouclage de l'ordinateur et le rend aussitôt.
Une fois que vous savez qui l'a
Faites un clic droit sur une ligne de l'un ou l'autre tableau pour cibler le programme qui tient le port. Cela ne fait que remplir le champ de cible, et rien ne change avant d'appuyer sur START. La suite est dans cibler une application.
Ce qu'il ne fait pas
Il lit, il ne répare pas : il ne ferme jamais un programme et ne libère jamais une plage réservée. Un socket d'un autre compte n'affiche aucun programme, sauf si l'outil s'exécute en administrateur.