¿Qué puerto utiliza un programa determinado? [cerrado]

99

Quiero poder averiguar qué puerto está usando un programa en particular. ¿Hay algún programa disponible en línea o que venga con Windows que me diga qué procesos están usando qué puertos en mi computadora?

PD: antes de que reduzca esto por no ser una cuestión de programación, estoy buscando el programa para probar algún código de red.

AlexeyMK
fuente
7
Independientemente de si va a usar esto como parte de algún proyecto de programación, no es un problema de programación.
Lightness Races in Orbit

Respuestas:

149

netstat -b -aenumera los puertos en uso y le da el ejecutable que está usando cada uno. Creo que debe estar en el grupo de administradores para hacer esto, y no sé qué implicaciones de seguridad hay en Vista.

Por lo general, también agrego -npara hacerlo un poco más rápido, pero agregar -bpuede hacerlo bastante lento.

Editar : si necesita más funcionalidad de la que proporciona netstat, vasac sugiere que pruebe TCPView .

Graeme Perrow
fuente
1
Si alguien tiene los derechos para editar una respuesta, considere agregar la respuesta de vasac a continuación (TCPView) para cualquiera que necesite una versión más completa de esto con una interfaz
gráfica de usuario
Agregué el enlace a TCPView a mi respuesta.
Graeme Perrow
1
¿Hay alguna forma con el firewall?
Mohammad Kermani
42

TCPView puede hacer lo que solicitó.

vasac
fuente
1
Gracias; netstat es más que suficiente para mis necesidades, pero si alguna vez necesito algo más duro, me aseguraré de usar TCPView. Debería agregarse a la respuesta aceptada, pero lamentablemente aún no tengo derecho a editar.
AlexeyMK
He estado usando la utilidad Netstat que viene con XAMPP. Pero esta utilidad independiente es muy útil. Gracias.
Shiyaz
25

En Vista, necesita privilegios elevados para usar la opción -b con netstat. Para evitarlo, puede ejecutar "netstat -ano", que mostrará todos los puertos abiertos junto con la identificación del proceso asociado. Luego, puede usar la lista de tareas para buscar qué proceso tiene la identificación correspondiente.

C:\>netstat -ano

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  ...
  TCP    [::]:49335             [::]:0                 LISTENING       1056
  ...

C:\>tasklist /fi "pid eq 1056"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
sqlservr.exe                  1056 Services                   0     66,192 K
Jim Olsen
fuente
13

Es posible que ya tenga instalado Process Explorer (de Sysinternals, ahora parte de Microsoft). Si no es así, instálelo ahora, es así de genial.

En Process Explorer: localice el proceso en cuestión, haga clic con el botón derecho y seleccione la pestaña TCP / IP. Incluso le mostrará, para cada socket, un seguimiento de pila que representa el código que abrió ese socket.

Adam Mitz
fuente
7

Si prefiere una interfaz GUI, CurrPorts es gratuito y funciona con todas las versiones de Windows. Muestra puertos y qué proceso los tiene abiertos.

ctcherry
fuente
otra buena alternativa. wow, no sabía que este era un tema tan popular :)
AlexeyMK
5

"netstat -natp" es lo que siempre uso.

Steve Baker
fuente
4

Windows 8 (y probablemente 7 + Vista) también proporcionan una vista en Resource Monitor. Si selecciona la pestaña Red, hay una sección llamada 'Puertos de escucha'. Puede ordenar por número de puerto y ver qué proceso lo está utilizando.

Mikezx6r
fuente
exactamente lo que necesitaba, ¡10x!
soninob
3

Windows viene con la netstatutilidad, que debería hacer exactamente lo que desea.

Adam Rosenfield
fuente
1

En una línea de comando, netstat -a le dará mucha información.

CodeRot
fuente
Votaría esto si me quedaran votos.
UnkwnTech
-1: -a no proporciona ID de proceso
CharlesB
@CharlesB Lo hace si agrega la -oopción.
Marqués de Lorne
1

Puede usar el comando 'netstat' para esto. Hay una descripción de hacer este tipo de cosas aquí .

tkerwin
fuente
-1

la mayoría de los programas de firewall decentes deberían permitirle acceder a esta información. Sé que Agnitum OutpostPro Firewall lo hace.

Toby Mills
fuente