Como você pode descobrir qual processo está escutando em uma porta no Windows?
C:\> netstat -a -b
(adicione -n para pará-lo tentando resolver nomes de host, o que tornará muito mais rápido)
Observe a recomendação de Dane para o TCPView . Parece muito útil!
-a Exibe todas as conexões e portas de escuta.
-b Exibe o executável envolvido na criação de cada conexão ou porta de escuta. Em alguns casos, os executáveis conhecidos hospedam vários componentes independentes e, nesses casos, a sequência de componentes envolvidos na criação da porta de conexão ou escuta é exibida. Nesse caso, o nome do executável está em [] na parte inferior, em cima está o componente chamado, e assim por diante, até que o TCP / IP seja atingido. Observe que essa opção pode ser demorada e falhará, a menos que você tenha permissions suficientes.
-n Exibe endereços e números de porta em formato numérico.
-o Exibe o ID do processo de propriedade associado a cada conexão.
Há uma GUI nativa para o Windows:
ou Execute resmon.exe
ou na guia Desempenho do TaskManager
Use TCPView se você quiser uma GUI para isso. É o antigo aplicativo da Sysinternals que a Microsoft comprou.
netstat -aon | find /i "listening"
Você pode obter mais informações, se você executar o seguinte comando:
netstat -aon |find /i "listening" |find "port"
Usando o comando ‘Find’, você pode filtrar os resultados. encontrar / i “escuta” exibirá apenas as portas que estão “ouvindo”. Note que você precisa do / i para ignorar o Caso, caso contrário você digitaria “LISTENING”. | find “port” limitará os resultados apenas àqueles que contiverem o número de porta específico. Note que isso também filtrará os resultados que tiverem o número da porta em qualquer lugar da string de resposta.
Abra uma janela de prompt de comando (como Administrador) Em “Iniciar \ checkbox de pesquisa” Digite “cmd” e clique com o botão direito do mouse em “cmd.exe” e selecione “Executar como administrador”
Digite o seguinte texto e pressione Enter.
netstat -abno
-a Exibe todas as conexões e portas de escuta.
-b Exibe o executável envolvido na criação de cada conexão ou porta de escuta. Em alguns casos, os executáveis conhecidos hospedam vários componentes independentes e, nesses casos, a sequência de componentes envolvidos na criação da porta de conexão ou escuta é exibida. Nesse caso, o nome do executável está em [] na parte inferior, em cima está o componente chamado, e assim por diante, até que o TCP / IP seja atingido. Observe que essa opção pode ser demorada e falhará, a menos que você tenha permissions suficientes.
-n Exibe endereços e números de porta em formato numérico.
-o Exibe o ID do processo de propriedade associado a cada conexão.
Encontre a porta que você está escutando em “Local Address”
Veja o nome do processo diretamente abaixo disso.
NOTA: Para encontrar o processo no Gerenciador de Tarefas
Observe o PID (identificador de processo) ao lado da porta que você está olhando.
Abra o Gerenciador de Tarefas do Windows.
Selecione a guia Processos.
Procure o PID que você anotou quando fez o netstat na etapa 1.
Se você não vir uma coluna PID, clique em Visualizar / Selecionar Colunas. Selecione PID.
Certifique-se de que “Mostrar processos de todos os usuários” esteja selecionado.
Use apenas um comando:
for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /FI "PID eq %a"
onde 9000
deve ser substituído pelo seu número de porta.
A saída conterá algo como isto:
Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ java.exe 5312 Services 0 130,768 K
Explicação:
itera através de cada linha da saída do seguinte comando:
netstat -aon | findstr 9000
de cada linha, o PID ( %a
– o nome não é importante aqui) é extraído (PID é o 5º elemento nessa linha) e passado para o seguinte comando
tasklist /FI "PID eq 5312"
Se você quiser pular o header e o retorno do prompt de comando , você pode usar:
echo off & (for /f "tokens=5" %a in ('netstat -aon ^| findstr 9000') do tasklist /NH /FI "PID eq %a") & echo on
Saída:
java.exe 5312 Services 0 130,768 K
A opção -b mencionada na maioria das respostas requer que você tenha privilégios administrativos na máquina. Você realmente não precisa de direitos elevados para obter o nome do processo!
Encontre o pid do processo em execução no número da porta (por exemplo, 8080)
netstat -ano | findStr "8080"
Encontre o nome do processo por pid
tasklist /fi "pid eq 2216"
Primeiro, encontramos o id do processo dessa tarefa específica que precisamos eliminar para obtermos a porta livre
tipo
netstat -n -a -o
Depois de executar este comando no prompt de linha de comando do windows (cmd) selecione o pid que eu acho que a última coluna suponha que este seja 3312
Agora digite
taskkill / F / PID 3312
Agora você pode cruzar a verificação digitando o comando netstat.
OBSERVAÇÃO: às vezes o Windows não permite que você execute este comando diretamente no CMD, então primeiro você precisa seguir estas etapas em start-> prompt de comando (clique direito no prompt de comando e execute como administrador)
É muito simples obter o número da porta do pid nas janelas.
A seguir estão as etapas:
1) Vá para executar -> digite cmd -> pressione enter.
2) escreva o seguinte comando …
netstat -aon | findstr [port number]
(Nota: não inclua colchetes.)
3) pressione enter …
4) Em seguida, o cmd fornecerá os detalhes do serviço em execução nessa porta, juntamente com o pid.
5) Abra o gerenciador de tarefas e aperte a aba de serviço e combine o pid com o do cmd e é isso.
Para obter uma lista de todos os IDs do processo proprietários associados a cada conexão:
netstat -ao |find /i "listening"
Se quiser matar algum processo tem o id e use esse comando, para que essa porta fique livre
Taskkill /F /IM pidof a process
Basta abrir um shell de comando e digitar: (dizendo que sua porta é 123456)
netstat -a -n -o | find "123456"
Você vai ver tudo que precisa
Os headers são:
Proto Local Address Foreign Address State PID TCP 0.0.0.0:37 0.0.0.0:0 LISTENING 1111
isso é como mencionado aqui
Se você gostaria de usar uma ferramenta GUI para fazer isso, existe o SysInternals TCPView .
netstat -ao
e netstat -ab
informam o aplicativo, mas se você não for administrador, receberá “A operação solicitada requer elevação”.
Não é o ideal, mas se você usar o sysinternals Process Explorer você pode ir para as propriedades dos processos específicos e olhar para a aba TCP para ver se eles estão usando a porta que você está interessado. Pequena coisa de agulha e palheiro, mas talvez vai ajudar alguém ….
Com o PowerShell 5 no Windows 10 ou no Windows Server 2016, execute o cmdlet Get-NetTCPConnection
. Eu acho que ele também deve funcionar em versões mais antigas do Windows.
A saída padrão de Get-NetTCPConnection
não inclui o ID do processo por algum motivo e é um pouco confuso. No entanto, você sempre pode obtê-lo formatando a saída. A propriedade que você está procurando é OwningProcess
.
Se você quiser descobrir o ID do processo que está escutando na porta 443, execute 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
Formate a saída em uma tabela com as propriedades que você procura:
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
Se você quiser descobrir um nome do processo, execute 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
Digite o comando: netstat -aon | findstr :DESIRED_PORT_NUMBER
netstat -aon | findstr :DESIRED_PORT_NUMBER
Por exemplo, se eu quiser encontrar a porta 80: netstat -aon | findstr :80
netstat -aon | findstr :80
Esta resposta foi originalmente publicada neste tópico .
Eu recomendo CurrPorts da NirSoft.
CurrPorts pode filtrar os resultados exibidos. O TCPView não possui esse recurso.
Nota: Você pode clicar com o botão direito do mouse na conexão de soquete de um processo e selecionar “Fechar Conexões TCP Selecionadas” (Você também pode fazer isso no TCPView). Isso geralmente corrige problemas de conectividade que tenho com o Outlook e o Lync depois que eu alterno as VPNs. Com CurrPorts, você também pode fechar conexões da linha de comando com o parâmetro “/ close”.
Siga estas ferramentas: – A partir do cmd : – C:\> netstat -anob
com privilégio de administrador .
http://technet.microsoft.com/en-us/sysinternals/bb896653 – Process Explorer
http://technet.microsoft.com/en-us/sysinternals/bb896645 – Despejo de processo
http://technet.microsoft.com/en-us/sysinternals/bb896644 – Monitor de porta
Tudo a partir de sysinternals.com
Se você quer apenas saber o processo em execução e os threads em cada processo, recomendo aprender sobre o wmic
. Maravilhosa ferramenta de linha cmd, que lhe dá muito mais do que você pode saber.
Exampe: –
c:\> wmic process list brief /every:5
Acima de comando mostrará toda a lista de processos em breve a cada 5 segundos. Para saber mais, você pode simplesmente ir com /?
comando de janelas, por exemplo,
c:\>wmic /? c:\>wmic process /? c:\>wmic prcess list /?
e assim por diante. 🙂
netstat -a -o Isso mostra o PID do processo em execução em uma porta específica.
Tenha em mente o ID do processo e vá para o gerenciador de tarefas e serviços ou guia detalhes e finalizar o processo que tem o mesmo PID.
Assim, você pode matar um processo em execução em uma porta específica no Windows.
Para aqueles que usam o Powershell, tente 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
Usando o Powershell …
… isso seria seu amigo (substitua 8080 pelo seu número de porta):
netstat -abno | Select-String -Context 0,1 -Pattern 8080
Amostra de saída
> TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 2920 [tnslsnr.exe] > TCP [::]:8080 [::]:0 LISTENING 2920 [tnslsnr.exe]
Portanto, neste exemplo, o tnslsnr.exe (database OracleXE) está escutando na porta 8080.
Explicação rápida
Select-String
é usado para filtrar a saída longa do netstat
para as linhas relevantes.
-Pattern
testa cada linha contra uma expressão regular.
-Context 0,1
irá -Context 0,1
0 linhas principais e 1 linha final para cada correspondência de padrões.
Para o Windows, se você quiser encontrar coisas ouvindo ou conectado à porta 1234, execute o seguinte no prompt do cmd:
netstat -na | find "1234"
Se a mudança de porta não funcionar:
Passo 1: Vá aos serviços pesquisando por ‘serviços’ no Windows.
Etapa 2: Solicitar todos os serviços em ordem alfabética (não é necessário)
Etapa 3: Interrompa todos os serviços relacionados ao MYSQL.
Passo 4: Inicie o mysql do xampp.
Use o script de lote abaixo que usa um nome de processo como argumento e fornece saída netstat para o processo.
@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