¿Cómo encuentro qué aplicación está usando mi puerto? [cerrado]

79

No puedo iniciar GlassFish porque sigue mostrando este mensaje de error:

SEVERE: Shutting down v3 due to startup exception : No free port within range: 8080=com.sun.enterprise.v3.services.impl.monitor.MonitorableSelectorHandler@ed7d1

¿Cómo puedo encontrar qué aplicaciones están usando qué puertos en Windows Vista? He intentado usar nmap zenmap usando el siguiente objetivo:

http://127.0.0.1:8080

Pero todo lo que obtengo es esto:

Starting Nmap 5.51 ( http://nmap.org ) at 2011-08-05 12:05 Central Daylight Time

NSE: Loaded 57 scripts for scanning.

Read data files from: C:\Program Files\Nmap
Nmap done: 0 IP addresses (0 hosts up) scanned in 4.55 seconds
           Raw packets sent: 0 (0B) | Rcvd: 0 (0B)
WARNING: No targets were specified, so 0 hosts scanned.
Flethuseo
fuente
Esto me salvó el día, pero pertenece a superuser.com, desearía que hubiera una manera de mover las preguntas entre los sitios de
stackexchange
Mientras desarrollaba servicios web en VS 2017 en C #, esta pregunta / respuesta me impidió reiniciar mi computadora cada 2 horas ... aunque no es directamente relevante para la programación, indirectamente es extremadamente útil para todos los que desarrollamos sockets.
Miguel Mateo
Entonces, ¿está buscando qué aplicación está usando el puerto 8080? Primero, ingrese este comando en cmd ..... netstat -ano | findtr: 8080 esto o similar verá TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 4492 ahora conoce la identificación de la aplicación que usa el puerto 8080 y luego encuentra esa aplicación usando el tipo de identificación en este código con su identificación, (en mi caso 4492) lista de tareas | Findstr 4492 y aquí tienes. Tomcat9.exe 4492 Servicios 0 77.988 K
Konstantin F

Respuestas:

112

¿Qué tal netstat?

http://support.microsoft.com/kb/907980

El comando es netstat -anob.

(Asegúrese de ejecutar el comando como administrador)

Yo obtengo:

C:\Windows\system32>netstat -anob

Conexiones activas

     Proto  Local Address          Foreign Address        State           PID
  TCP           0.0.0.0:80                0.0.0.0:0                LISTENING         4
 Can not obtain ownership information

  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       692
  RpcSs
 [svchost.exe]

  TCP    0.0.0.0:443            0.0.0.0:0              LISTENING       7540
 [Skype.exe]

  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
 Can not obtain ownership information
  TCP    0.0.0.0:623            0.0.0.0:0              LISTENING       564
 [LMS.exe]

  TCP    0.0.0.0:912            0.0.0.0:0              LISTENING       4480
 [vmware-authd.exe]

Y si desea verificar el puerto en particular, el comando a usar es: netstat -aon | findtr 8080 de la misma ruta

Peter Kellner
fuente
26
hizo netstat -anob | findtr "8080", me dio la identificación de la tarea. Sería bueno saber qué aplicación la está usando desde el PID, ¿hay un comando para hacer esto? por cierto: no a través del administrador de tareas, odio tener que buscar en esa lista
Flethuseo
8
Puede usar el tasklistcomando para ver la lista de todos los procesos en ejecución con su PID.
Amir Oveisi
3
pregunta marcada fuera de tema, pero esta respuesta me salvó el día, ¡encontré el cuprit usando 8099! Gracias.
LaBracca
2
Esto funcionó para mí, pero después de usarlo taskkill /pid 8516, obtuve. ERROR: The process "8516" not found.Resulta que si se está ejecutando un proceso secundario, Windows mantendrá el socket. Matar el proceso hijo liberó el enchufe. serverfault.com/questions/181015/…
jtpereyda
En mi caso, Oracle TNS Listener fue el culpable: lista de tareas | Findstr "5676" TNSLSNR.EXE 5676 Servicios 0 5,140 K
nicordesigns
10

Para ver qué puertos están disponibles en su máquina, ejecute:

C:>  netstat -an |find /i "listening"
Carlos Quintanilla
fuente
7

Es posible que no se esté ejecutando ninguna otra aplicación. Es posible que el socket no se haya apagado limpiamente desde una sesión anterior, en cuyo caso puede que tenga que esperar un rato antes de que TIME_WAIT expire en ese socket. Desafortunadamente, no podrá usar el puerto hasta que expire ese socket. Si puede iniciar su servidor después de esperar un rato (unos minutos), entonces el problema no se debe a que alguna otra aplicación se esté ejecutando en el puerto 8080.

ritesh
fuente
3

En el símbolo del sistema, haga:

netstat -nb
Jontsai
fuente
No funciona, me está lanzando un error que dice "La operación solicitada requiere elevación".
Sohail Qureshi
@SohailQureshi Simplemente ejecute el símbolo del sistema como administrador.
Revnic Robert-Nick