usando - ver puertos abiertos windows
¿Cómo puede saber qué proceso está escuchando en un puerto en Windows? (26)
¿Cómo puede saber qué proceso está escuchando en un puerto en Windows?
Obtener PID y nombre de la imagen
Utilice un solo comando:
for /f "tokens=5" %a in (''netstat -aon ^| findstr 9000'') do tasklist /FI "PID eq %a"
donde 9000
debe ser reemplazado por su número de puerto.
La salida contendrá algo como esto:
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
java.exe 5312 Services 0 130,768 K
Explicación:
itera a través de cada línea desde la salida del siguiente comando:
netstat -aon | findstr 9000
de cada línea, el PID (
%a
- el nombre no es importante aquí) se extrae (PID es el5
elemento en esa línea) y se pasa al siguiente comandotasklist /FI "PID eq 5312"
Si desea omitir el encabezado y la devolución del símbolo del sistema , puede utilizar:
echo off & (for /f "tokens=5" %a in (''netstat -aon ^| findstr 9000'') do tasklist /NH /FI "PID eq %a") & echo on
Salida:
java.exe 5312 Services 0 130,768 K
Abra una ventana del símbolo del sistema (como Administrador) Desde "Inicio / Cuadro de búsqueda" Ingrese "cmd", haga clic con el botón derecho en "cmd.exe" y seleccione "Ejecutar como administrador"
Ingrese el siguiente texto y luego presione Enter.
netstat -abno
-a Muestra todas las conexiones y puertos de escucha.
-b Muestra el ejecutable involucrado en la creación de cada conexión o puerto de escucha. En algunos casos, los ejecutables conocidos albergan múltiples componentes independientes, y en estos casos se muestra la secuencia de componentes involucrados en la creación de la conexión o el puerto de escucha. En este caso, el nombre del ejecutable está en [] en la parte inferior, en la parte superior está el componente al que llamó, y así sucesivamente hasta que se llegó a TCP / IP. Tenga en cuenta que esta opción puede llevar mucho tiempo y fallará a menos que tenga suficientes permisos.
-n Muestra las direcciones y números de puerto en forma numérica.
-o Muestra el ID de proceso de propietario asociado con cada conexión.
Encuentre el puerto que está escuchando en "Dirección local"
Mira el nombre del proceso directamente debajo de eso.
NOTA: Para encontrar el proceso en el Administrador de tareas
Anote el PID (identificador de proceso) al lado del puerto que está viendo.
Abra el Administrador de tareas de Windows.
Seleccione la pestaña Procesos.
Busque el PID que anotó cuando hizo el netstat en el paso 1.
Si no ve una columna PID, haga clic en Ver / Seleccionar columnas. Seleccione PID.
Asegúrese de que "Mostrar procesos de todos los usuarios" esté seleccionado.
Con PowerShell 5 en Windows 10 o Windows Server 2016, ejecute el cmdlet Get-NetTCPConnection
. Supongo que también debería funcionar en versiones anteriores de Windows.
El resultado predeterminado de Get-NetTCPConnection
no incluye la ID del proceso por algún motivo y es un poco confuso. Sin embargo, siempre se puede obtener al formatear la salida. La propiedad que busca es OwningProcess
.
Si desea averiguar la ID del proceso que está escuchando en el puerto 443, ejecute este comando:
PS C:/> Get-NetTCPConnection -LocalPort 443 | Format-List LocalAddress : :: LocalPort : 443 RemoteAddress : :: RemotePort : 0 State : Listen AppliedSetting : OwningProcess : 4572 CreationTime : 02.11.2016 21:55:43 OffloadState : InHost
Formatea la salida a una tabla con las propiedades que buscas:
PS C:/> Get-NetTCPConnection -LocalPort 443 | Format-Table -Property LocalAddress, LocalPort, State, OwningProcess LocalAddress LocalPort State OwningProcess ------------ --------- ----- ------------- :: 443 Listen 4572 0.0.0.0 443 Listen 4572
Si desea averiguar el nombre del proceso, ejecute este comando:
PS C:/> Get-Process -Id (Get-NetTCPConnection -LocalPort 443).OwningProcess Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 143 15 3448 11024 4572 0 VisualSVNServer
El modificador -b que se menciona en la mayoría de las respuestas requiere que tenga privilegios administrativos en la máquina. ¡Realmente no necesita derechos elevados para obtener el nombre del proceso!
Encuentre el pid del proceso que se ejecuta en el número de puerto (por ejemplo, 8080)
netstat -ano | findStr "8080"
Encuentra el nombre del proceso por pid
tasklist /fi "pid eq 2216"
Es muy sencillo obtener el número de puerto de pid en windows.
Los siguientes son los pasos:
1) Vaya a ejecutar -> escriba cmd -> presione enter.
2) escribe el siguiente comando ...
netstat -aon | findstr [port number]
(Nota: No incluya corchetes).
3) presiona enter ...
4) Luego, cmd le dará el detalle del servicio que se ejecuta en ese puerto junto con pid.
5) Abra el administrador de tareas y presione la pestaña de servicio y haga coincidir el pid con el de cmd y eso es todo.
Escriba el comando: netstat -aon | findstr :DESIRED_PORT_NUMBER
netstat -aon | findstr :DESIRED_PORT_NUMBER
Por ejemplo, si quiero encontrar el puerto 80: netstat -aon | findstr :80
netstat -aon | findstr :80
Esta respuesta fue publicada originalmente en este hilo .
Hay una GUI nativa para Windows:
- Inicio >> Todos los programas >> Accesorios >> Herramientas del sistema >> Monitor de recursos
o Ejecutar resmon.exe
, o desde la pestaña de rendimiento de TaskManager
Netstat -a muestra todos los puertos de conexión y escucha -b muestra ejecutables -n deja de resolver nombres de host (forma numérica) -o proceso de propiedad
netstat -bano | findstr "7002"
netstat -ano > ano.txt
nirsoft.net/utils/cports.html ayuda a buscar y filtrar.
Para Windows, si desea encontrar cosas que escuchen o estén conectadas al puerto 1234, ejecute lo siguiente en el indicador de cmd:
netstat -na | find "1234"
Para aquellos que usan Powershell, pruebe Get-NetworkStatistics
:
> Get-NetworkStatistics | where Localport -eq 8000
ComputerName : DESKTOP-JL59SC6
Protocol : TCP
LocalAddress : 0.0.0.0
LocalPort : 8000
RemoteAddress : 0.0.0.0
RemotePort : 0
State : LISTENING
ProcessName : node
PID : 11552
Para obtener una lista de todos los ID de proceso asociados con cada conexión:
netstat -ao |find /i "listening"
Si desea finalizar cualquier proceso, tenga el ID y use este comando para que el puerto quede libre.
Taskkill /F /IM pidof a process
Primero, encontramos el ID de proceso de esa tarea en particular que necesitamos eliminar para obtener puerto libre
tipo
netstat -n -a -o
Después de ejecutar este comando en el indicador de línea de comandos de Windows (cmd), seleccione el pid que creo que la última columna suponga que es 3312
Ahora escribe
taskkill / F / PID 3312
Ahora puede realizar una comprobación cruzada escribiendo el comando netstat.
NOTA: a veces las ventanas no le permiten ejecutar este comando directamente en CMD, por lo que primero debe seguir estos pasos desde el inicio del comando> (símbolo del sistema) y hacer clic como administrador)
Programáticamente, necesitas cosas de iphlpapi.h , por ejemplo, GetTcpTable2 (). Estructuras como MIB_TCP6ROW2 contienen el PID propietario.
Puede obtener más información si ejecuta el siguiente comando:
netstat -aon |find /i "listening" |find "port"
el uso del comando ''Buscar'' le permite filtrar los resultados. Buscar / i "escuchar" mostrará solo los puertos que están ''escuchando''. Tenga en cuenta que necesita el / i para ignorar el caso. De lo contrario, escriba find "LISTENING". | encontrar "puerto" limitará los resultados solo a aquellos que contengan el número de puerto específico. Tenga en cuenta que en esto también filtrará los resultados que tengan el número de puerto en cualquier lugar de la cadena de respuesta.
Recomiendo CurrPorts de NirSoft.
CurrPorts puede filtrar los resultados mostrados. TCPView no tiene esta característica.
Nota: Puede hacer clic derecho en la conexión de socket de un proceso y seleccionar "Cerrar las conexiones TCP seleccionadas" (También puede hacer esto en TCPView). Esto a menudo soluciona los problemas de conectividad que tengo con Outlook y Lync después de cambiar las VPN. Con CurrPorts, también puede cerrar las conexiones desde la línea de comando con el parámetro "/ cerrar".
Si desea utilizar una herramienta GUI para hacer esto, hay TCPView .
Si el cambio de puerto no funciona:
Paso 1: ve a los servicios buscando "servicios" en Windows.
Paso 2: Ordene todos los servicios en orden alfabético. (No es necesario)
Paso 3: Detener cualquier servicio relacionado con MYSQL.
Paso 4: inicia mysql desde xampp.
Siga estas herramientas: - Desde cmd : - C:/> netstat -anob
con privilegio de administrador .
http://technet.microsoft.com/en-us/sysinternals/bb896653 - Explorador de procesos
http://technet.microsoft.com/en-us/sysinternals/bb896645 - Proceso de volcado
http://technet.microsoft.com/en-us/sysinternals/bb896644 - Monitor de puerto
Todo desde sysinternals.com
Si solo desea conocer el proceso en ejecución y los subprocesos de cada proceso, le recomiendo que conozca sobre wmic
. Maravillosa herramienta de línea de cmd, que te da mucho más de lo que puedes saber.
Ejemplo: -
c:/> wmic process list brief /every:5
El comando anterior mostrará todos los procesos en breve cada 5 segundos. Para saber más, solo puedes ir con /?
comando de ventanas, por ejemplo,
c:/>wmic /?
c:/>wmic process /?
c:/>wmic prcess list /?
y así sucesivamente y así sucesivamente. :)
Simplemente abre un shell de comandos y escribe: (diciendo que tu puerto es 123456)
netstat -a -n -o | find "123456"
Verás todo lo que necesites.
Los encabezados son:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:37 0.0.0.0:0 LISTENING 1111
esto es como se menciona here
Utilice TCPView si desea una GUI para esto. Es la antigua aplicación Sysinternals que Microsoft compró.
Utilice el siguiente script de proceso por lotes que toma un nombre de proceso como argumento y proporciona un resultado netstat para el proceso.
@echo off
set procName=%1
for /f "tokens=2 delims=," %%F in (''tasklist /nh /fi "imagename eq %1" /fo csv'') do call :Foo %%~F
goto End
:Foo
set z=%1
echo netstat for : "%procName%" which had pid "%1"
echo ----------------------------------------------------------------------
netstat -ano |findstr %z%
goto :eof
:End
netstat -a -o Esto muestra el PID del proceso que se ejecuta en un puerto particular.
Tenga en cuenta la identificación del proceso y vaya a Administrador de tareas y servicios o pestaña de detalles y finalice el proceso que tiene el mismo PID.
Por lo tanto, puede detener un proceso que se ejecuta en un puerto particular en Windows.
netstat -ao
y netstat -ab
te dicen la aplicación, pero si no eres administrador, obtendrás "La operación solicitada requiere elevación".
No es lo ideal, pero si usa el Explorador de procesos de sysinternals, puede ir a las propiedades de los procesos específicos y mirar la pestaña TCP para ver si están usando el puerto que le interesa. Algo de aguja y pajar, pero tal vez ayudará a alguien ...
Utilizando Powershell ...
... este sería tu amigo (reemplaza 8080 con tu número de puerto):
netstat -abno | Select-String -Context 0,1 -Pattern 8080
Salida de muestra
> TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 2920
[tnslsnr.exe]
> TCP [::]:8080 [::]:0 LISTENING 2920
[tnslsnr.exe]
Entonces, en este ejemplo, tnslsnr.exe (base de datos OracleXE) está escuchando en el puerto 8080.
Explicacion rapida
Select-String
se usa para filtrar la salida larga de netstat
para las líneas relevantes.
-Pattern
prueba cada línea contra una expresión regular.
-Context 0,1
producirá 0 líneas -Context 0,1
y 1 línea final para cada coincidencia de patrón.
C:/> netstat -a -b
(agregue -n para evitar que intente resolver nombres de host, lo que lo hará mucho más rápido)
Note la recomendación de Dane para TCPView . Parece muy útil!
-a Muestra todas las conexiones y puertos de escucha.
-b Muestra el ejecutable involucrado en la creación de cada conexión o puerto de escucha. En algunos casos, los ejecutables conocidos albergan múltiples componentes independientes, y en estos casos se muestra la secuencia de componentes involucrados en la creación de la conexión o el puerto de escucha. En este caso, el nombre del ejecutable está en [] en la parte inferior, en la parte superior está el componente al que llamó, y así sucesivamente hasta que se llegó a TCP / IP. Tenga en cuenta que esta opción puede llevar mucho tiempo y fallará a menos que tenga suficientes permisos.
-n Muestra las direcciones y números de puerto en forma numérica.
-o Muestra el ID de proceso de propietario asociado con cada conexión.
netstat -aon | find /i "listening"