Como você pode descobrir qual processo está escutando uma porta no Windows?
windows
networking
port
Somente leitura
fonte
fonte
Respostas:
Nova resposta, PowerShell
Resposta antiga, cmd
(Adicione -n para interromper a tentativa de resolver nomes de host, o que tornará muito mais rápido.)
Nota Recomendação de Dane para 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, 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 de escuta é exibida. Nesse caso, o nome do executável está em [] na parte inferior, na parte superior está o componente chamado e assim por diante até o TCP / IP ser atingido. Observe que essa opção pode ser demorada e falhará, a menos que você tenha permissões suficientes.
-n Exibe endereços e números de porta em formato numérico.
-o Exibe o ID do processo proprietário associado a cada conexão.
fonte
1234
-, você poderátasklist /fi "pid eq 1234"
descobrir o nome e outros detalhes do processo.Há uma GUI nativa para Windows:
Ou Executar
resmon.exe
, ou na guia Desempenho do Gerenciador de Tarefas .fonte
Use o TCPView se desejar uma GUI para isso. É o antigo aplicativo Sysinternals que a Microsoft comprou.
fonte
Para Windows:
fonte
netstat -aon | find /i "abhören"
para alemão.FIND: Parameter format not correct
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)
Encontre o nome do processo por pid
fonte
Você pode obter mais informações se executar o seguinte comando:
usar o comando 'Localizar' permite filtrar os resultados.
find /i "listening"
exibirá apenas as portas que estão 'ouvindo'. Observe que você precisa/i
ignorar maiúsculas e minúsculas; caso contrário, digite "LISTENING".| find "port"
limitará os resultados apenas àqueles que contêm o número da porta específico. Observe que isso também filtrará os resultados com o número da porta em qualquer lugar da sequência de respostas.fonte
FIND: Parameter format not correct
. Você precisa adicionar um espaço após os critérios de localização. Isso vai deixar você comnetstat -aon | find /i "listening" | find "1234 "
.{back tick}
" listening{back tick}
"" | find "{back tick}
" port{back tick}
" "(<- observe as aspas que escaparam - desculpe o termo,back tick
pois eu não posso adicionar o caractere real, pois ele acha que é um recorte)"Abra uma janela do prompt de comando (como administrador) Em "Iniciar \ caixa de pesquisa", digite "cmd" e clique com o botão direito do mouse em "cmd.exe" e selecione "Executar como administrador"
Digite o texto a seguir 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, 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 de escuta é exibida. Nesse caso, o nome do executável está em [] na parte inferior, na parte superior está o componente chamado e assim por diante até o TCP / IP ser atingido. Observe que essa opção pode ser demorada e falhará, a menos que você tenha permissões suficientes.
-n Exibe endereços e números de porta em formato numérico.
-o Exibe o ID do processo proprietário associado a cada conexão.
Encontre a porta que você está ouvindo em "Endereço local"
Veja o nome do processo diretamente abaixo.
NOTA: Para encontrar o processo no Gerenciador de tarefas
Observe o PID (identificador do processo) próximo à porta que você está visualizando.
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 Exibir / selecionar colunas. Selecione PID.
Verifique se a opção "Mostrar processos de todos os usuários" está selecionada.
fonte
Obter PID e nome da imagem
Use apenas um comando:
onde
9000
deve ser substituído pelo número da sua porta.A saída conterá algo como isto:
Explicação:
itera através de todas as linhas da saída do seguinte comando:
de cada linha, o PID (
%a
- o nome não é importante aqui) é extraído (PID é o elemento5
th nessa linha) e passado para o seguinte comandoSe você quiser pular o cabeçalho e o retorno do prompt de comando , poderá usar:
Resultado:
fonte
findstr :9000
caso contrário, você encontrará aplicativos que contêm o número (por exemplo, ao pesquisar "80", você encontrará aplicativos nas portas 80, 800, 8000 também).Primeiro, encontramos o ID do processo dessa tarefa específica que precisamos eliminar para liberar a porta:
Tipo
Depois de executar este comando no prompt da linha de comando do Windows (cmd), selecione o pid que eu acho que a última coluna. Suponha que seja 3312.
Agora digite
Agora você pode fazer a verificação cruzada digitando o
netstat
comandoNOTA: às vezes, o Windows não permite que você execute este comando diretamente no CMD; portanto, primeiro você precisa seguir estas etapas:
No menu Iniciar -> prompt de comando (clique com o botão direito do mouse no prompt de comando e execute como administrador)
fonte
Para obter uma lista de todos os IDs de processos proprietários associados a cada conexão:
Se quiser matar qualquer processo, tenha o ID e use este comando, para que a porta fique livre
fonte
É muito simples obter o número da porta de um PID no Windows.
A seguir estão as etapas:
Vá para executar → digite cmd → pressione Enter.
Escreva o seguinte comando ...
(Nota: não inclua colchetes.)
Pressione Enter...
Em seguida, o cmd fornecerá os detalhes do serviço em execução nessa porta junto com o PID.
Abra o Gerenciador de tarefas, clique na guia Serviço e combine o PID com o do cmd, e é isso.
fonte
Basta abrir um shell de comando e digite (dizendo que sua porta é 123456):
Você verá tudo o que precisa.
Os cabeçalhos são:
Isto é como mencionado aqui .
fonte
findstr 123456
(sem aspas) oufind "123456"
(com aspas). (@Josh)Para descobrir qual processo específico (PID) está usando qual porta:
Onde 1234 é o PID do seu processo. [Vá para o Gerenciador de tarefas → guia Serviços / processos para descobrir o PID do seu aplicativo.]
fonte
-n
sinalizador definido duas vezes.-ano
basta.Com o PowerShell 5 no Windows 10 ou Windows Server 2016, execute o
Get-NetTCPConnection
cmdlet. Eu acho que 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ê deseja descobrir o ID do processo que está atendendo na porta 443, execute este comando:
Formate a saída em uma tabela com as propriedades que você procura:
Se você deseja descobrir um nome do processo, execute este comando:
fonte
Se você deseja usar uma ferramenta GUI para fazer isso, existe o TCPView da Sysinternals .
fonte
Digite o comando:
netstat -aon | findstr :DESIRED_PORT_NUMBER
Por exemplo, se eu quiser encontrar a porta 80:
netstat -aon | findstr :80
Esta resposta foi originalmente publicada nesta pergunta .
fonte
Netstat:
-o processo de propriedade
A ferramenta Currports ajuda a pesquisar e filtrar
fonte
Abra o prompt de comando - inicie → Executar →
cmd
ou menu Iniciar → Todos os programas → Acessórios → Prompt de comando .Tipo
Substitua pelo
[port_number]
número da porta real que você deseja verificar e pressione Enter.Tipo
Substitua o
[PID]
número pela etapa acima e pressione Enter.fonte
netstat -ao
enetstat -ab
informe o aplicativo, mas se você não for um administrador do sistema, receberá "A operação solicitada requer elevação".Não é o ideal, mas se você usar o Process Explorer da Sysinternals, poderá acessar as propriedades de processos específicos e ver a guia TCP para ver se eles estão usando a porta na qual você está interessado. É um pouco de agulha e palheiro coisa, mas talvez ajude alguém ...
fonte
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 os problemas de conectividade que tenho com o Outlook e o Lync depois de mudar de VPN. Com CurrPorts, você também pode fechar conexões da linha de comando com o parâmetro "/ close".
fonte
Uma solução de linha única que me ajuda é essa. Apenas substitua 3000 por sua porta:
Editar: alterado
kill
paraStop-Process
para um idioma mais semelhante ao PowerShellfonte
Get-Process -Id (Get-NetTCPConnection -LocalPort 3000).OwningProcess | Stop-Process
Siga estas ferramentas: No cmd :
C:\> netstat -anob
com privilégios de administrador .Process Explorer
Process Dump
Monitor de porta
Todos de sysinternals.com.
Se você quiser apenas conhecer o processo em execução e os threads em cada processo, recomendo que você aprenda
wmic
. É uma ferramenta de linha de comando maravilhosa, que oferece muito mais do que você pode saber.Exemplo:
O comando acima mostrará uma lista de todos os processos em breve a cada 5 segundos. Para saber mais, você pode simplesmente usar o
/?
comando do Windows, por exemplo,E assim por diante. :)
fonte
Usar:
Isso mostra o PID do processo em execução em uma porta específica.
Lembre-se do ID do processo e vá para o Gerenciador de tarefas e a guia Serviços ou Detalhes e termine o processo com o mesmo PID.
Assim, você pode matar um processo em execução em uma porta específica do Windows.
fonte
Para aqueles que usam o PowerShell, tente
Get-NetworkStatistics
:fonte
Programaticamente, você precisa de coisas do iphlpapi.h , por exemplo, GetTcpTable2 (). Estruturas como MIB_TCP6ROW2 contêm o proprietário PID.
fonte
Usando o PowerShell ... ... este seria seu amigo (substitua 8080 pelo número da porta):
Saída de amostra
Portanto, neste exemplo, o tnslsnr.exe (banco de dados OracleXE) está escutando na porta 8080.
Explicação rápida
Select-String
é usado para filtrar a saída longa dasnetstat
linhas relevantes.-Pattern
testa cada linha contra uma expressão regular.-Context 0,1
produzirá 0 linhas iniciais e 1 linha final para cada correspondência de padrão.fonte
No Windows, se você deseja encontrar coisas que estão ouvindo ou conectadas à porta 1234, execute o seguinte no prompt de cmd:
fonte
Use o script em lotes abaixo, que usa um nome de processo como argumento e fornece
netstat
saída para o processo.fonte
Com base em respostas com informações e kill , para mim é útil combiná-las em um único comando . E você pode executar isso a partir do cmd para obter informações sobre o processo que escuta em determinada porta (exemplo 8080):
Ou se você quiser matá-lo:
Você também pode colocar esses comandos em um arquivo bat (eles serão um pouco diferentes - substitua
%i
por%%i
):Arquivo
portInfo.bat
Arquivo
portKill.bat
Então, do cmd, você pode fazer isso:
portInfo.bat 8080
ou
portKill.bat 8080
fonte
.\portInfo.bat 800
no PowerShell, é algo parecido com isto:C:\work>for /F "tokens=3 delims=LISTENING" %i in ('netstat -ano | findStr "800" | findStr "["') do (tasklist /fi "pid eq %i" ) C:\work>(tasklist /fi "pid eq 4" ) Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== ============ System 4 Services 0 1,820 K
portInfo.bat
em um terminal do PowerShell e, em seguida, executei.\portInfo.bat 8080
. A saída foi apenas o conteúdo do arquivo em lotes. Muito bem possível, estou olhando para algo. Observe que estou usando o PowerShell 6.2.3 no Windows 10. Também tentei em um prompt de comando regular, mas o resultado foi o mesmo: Saída do conteúdo do script. Tenho certeza de que estou perdendo uma informação crucial para fazer esse trabalho./nh
:@tasklist /nh /fi "pid eq %i"
? E precisamente a porta:Findstr ":8080"
No meu caso, a porta (3000) não foi usada e não é visível no netstat. Mas! O desinstalador Docker para Windows resolveu o problema.
fonte