2008-09-19 23 views
94

Quiero ser capaz de averiguar qué puerto está usando un programa en particular. ¿Hay algún programa disponible en línea o que venga con ventanas que me digan qué procesos usan qué puertos de mi computadora?¿Qué puerto está usando un programa determinado?

PD: antes de modificar esto por no ser una pregunta de programación, estoy buscando el programa para probar algunos códigos de red.

+6

Independientemente de si va a utilizar esto como parte de algún proyecto de programación, no es un problema de programación. –

Respuesta

144

netstat -b -a enumera los puertos en uso y le proporciona el ejecutable que usa cada uno. Creo que necesita estar en el grupo de administradores para hacer esto, y no sé qué implicaciones de seguridad hay en Vista.

Normalmente también agrego -n para hacerlo un poco más rápido, pero agregar -b puede hacerlo bastante lento.

Editar: Si necesita más funcionalidad que ofrece netstat, vasac suggests que intenta TCPView.

+2

Perfecto, gracias! – AlexeyMK

+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 real – AlexeyMK

+0

Agregué el enlace a TCPView a mi respuesta. –

-1

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

0

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

+0

Yo votaría esto si me quedaran votos. – UnkwnTech

+0

-1: -a no da la ID de proceso – CharlesB

+0

@CharlesB Lo hace si agrega la opción '-o'. – EJP

2

Windows viene con la utilidad netstat, que debe hacer exactamente lo que usted desea.

0

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

41

TCPView puede hacer lo que usted solicitó.

+1

Gracias; netstat es más que suficiente para mis necesidades, pero si alguna vez necesito algo más hardcore, me aseguraré de usar TCPView. Debería agregarse a la respuesta aceptada, pero lamentablemente todavía no tengo derecho a Editar. – AlexeyMK

+0

He estado usando la utilidad Netstat que viene con XAMPP. Pero esta utilidad independiente es muy útil. Gracias. – Shiyaz

3

"netstat -natp" es lo que siempre uso.

6

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

+0

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

10

Es posible que ya tenga instalado Process Explorer (desde Sysinternals, ahora parte de Microsoft). Si no, adelante e instálelo ahora - es simplemente genial.

En Process Explorer: busque 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 la pila que representa el código que abrió ese socket.

22

En Vista, necesita privilegios elevados para usar la opción -b con netstat. Para evitar esto, puede ejecutar "netstat -ano" que mostrará todos los puertos abiertos junto con la identificación de proceso asociada. A continuación, 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 
1

Windows 8 (y probablemente 7 + Vista) también proporcionan una vista en el Monitor de recursos. 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á usando.

Cuestiones relacionadas