Linha de comando para olhar para uma porta específica

263

Existe uma maneira de examinar o status de uma porta específica na linha de comando do Windows? Eu sei que posso usar o netstat para examinar todas as portas, mas o netstat é lento e, provavelmente, não é possível olhar para uma porta específica.

user1580018
fonte
6
netstaté lento apenas se você não usar o -nswitch, o que significa que ele precisa fazer muitas pesquisas de DNS.
Marquês de Lorne

Respostas:

282

Aqui está a solução fácil para encontrar portas ...

Em cmd:

netstat -na | find "8080"

Na festança:

netstat -na | grep "8080"

No PowerShell:

netstat -na | Select-String "8080"
Md. Naushad Alam
fonte
3
Como usar este comando? Quero saber se esse número da porta está funcionando ou não está vinculado: - [link] (https: //.localhost: 9043 / ibm / console / login.do) #
Mayur Ingle
8
Também vale mencionar a -obandeira (ou seja, -naoaqui) para incluir o PID do processo usando a porta.
Steve Chambers
104

Você pode usar o netstatcombinado com as -npbandeiras e um canal para os comandos findou findstr.

O uso básico é o seguinte:

netstat -np <protocol> | find "port #"

Por exemplo, para verificar a porta 80 no TCP, você pode fazer o seguinte: O netstat -np TCP | find "80" que acaba gerando o seguinte tipo de saída:

TCP    192.168.0.105:50466    64.34.119.101:80       ESTABLISHED
TCP    192.168.0.105:50496    64.34.119.101:80       ESTABLISHED

Como você pode ver, isso mostra apenas as conexões na porta 80 para o protocolo TCP.

Rivasa
fonte
73

Eu uso:

netstat –aon | find "<port number>"

aqui o representa o ID do processo. agora você pode fazer o que quiser com o ID do processo. Para finalizar o processo, por exemplo, use:

taskkill /F /pid <process ID>
Calça Himadri
fonte
resposta simples e nítida, Obrigado
Mohit Singh
69

quando tenho problemas com o apache WAMP, uso esse código para descobrir qual programa está usando a porta 80.

netstat -o -n -a | findstr 0.0:80

insira a descrição da imagem aqui

3068 é PID, para que eu possa encontrá-lo no gerenciador de tarefas e interromper esse processo.

Mohsen Safari
fonte
Muito bom, muito obrigado! Especialmente para TCP, eu uso o seguinte: netstat -o -nap TCP | findstr 0.0: 80
denyoha 27/02
20

Como observado em outro lugar: use netstat, com opções apropriadas e depois filtre os resultados com find [str]

O mais básico:

netstat -an | find ":N"

ou

netstat -a -n | find ":N"

Para encontrar uma porta estrangeira, você pode usar:

netstat -an | findstr ":N[^:]*$"

Para encontrar uma porta local, você pode usar:

netstat -an | findstr ":N.*:[^:]*$"

Onde N é o número da porta em que você está interessado.

-n garante que todas as portas sejam numéricas, ou seja, não retornadas como traduzidas para nomes de serviço.

-a garantirá que você pesquise todas as conexões (TCP, UDP, escutando ...)

Na findsequência, você deve incluir os dois pontos, como qualificador da porta, caso contrário, o número pode corresponder a endereços locais ou estrangeiros.

Você pode restringir ainda mais a pesquisa usando outras opções de netstat conforme necessário ...

Leitura adicional (^ 0 ^)

netstat /?

find /?

findstr /?
EndUzr
fonte
9
netstat -a -n | find /c "10.240.199.9:8080"

ele fornecerá o número de soquetes ativos em um IP e porta específicos (número da porta do servidor)

Uday Singh
fonte
3
Isso não está funcionando para Windows PowerShell no Windows 2012 R2 e recebeu resultado comoFIND: Parameter format not correct
Chaminda Bandara
6

Para usuário do Windows 8: Abra o prompt de comando, digite netstat -an | encontre "o número da sua porta" , digite.

Se a resposta vier como LISTENING , a porta estará em uso, caso contrário, será gratuita.

Pratik Roy
fonte
2

Para melhorar a resposta do @ EndUzr :

Para encontrar uma porta estrangeira (IPv4 ou IPv6), você pode usar:

netstat -an | findstr /r /c:":N [^:]*$"

Para encontrar uma porta local (IPv4 ou IPv6), você pode usar:

netstat -an | findstr /r /c:":N *[^ ]*:[^ ]* "

Onde N é o número da porta em que você está interessado. A opção "/ r" indica para processá-lo como regexp. A opção "/ c" permite que o findstr inclua espaços nas cadeias de pesquisa em vez de tratar um espaço como um delimitador de cadeias de pesquisa. Esse espaço adicional evita que portas mais longas sejam maltratadas - por exemplo, ": 80" vs ": 8080" e outros problemas de remoção de porta.

Para listar conexões remotas com o servidor RDP local, por exemplo:

netstat -an | findstr /r /c:":3389 *[^ ]*:[^ ]*"

Ou para ver quem está tocando seu DNS:

netstat -an | findstr /r /c:":53 *[^ ]*:[^ ]*"

Se você deseja excluir portas somente locais, pode usar uma série de exceções com "/ v" e escapar caracteres com uma barra invertida:

netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"
Shawn
fonte
1

Para a porta 80, o comando seria: netstat -an | encontre "80" Para a porta n, o comando seria: netstat -an | encontre "n"

Aqui, netstat é a instrução para sua máquina

-a: Exibe todas as conexões e portas de escuta -n: Exibe todos os endereços e instruções em formato numérico (isso é necessário porque a saída de -a pode conter nomes de máquinas)

Em seguida, um comando find para "Correspondência de padrão" a saída do comando anterior.

subodhkarwa
fonte
0

Isso irá ajudá-lo

netstat -atn | grep <port no>          # For tcp
netstat -aun | grep <port no>           # For udp
netstat -atun | grep <port no>          # For both
jobin
fonte
0

No RHEL 7, eu uso este comando para filtrar várias portas no estado LISTEN:

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
Hernaldo Gonzalez
fonte
-1

Este comando mostrará todas as portas e seu endereço de destino:

netstat -f 
Dharmajulian
fonte
1
A solicitação era descobrir se uma porta específica estava em uso.
Ro Yo Mi
-5

Use o comando lsof "lsof -i tcp: port #", aqui está um exemplo.

$ lsof -i tcp:1555 
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    27330 john  121u  IPv4 36028819      0t0  TCP 10.10.10.1:58615->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  201u  IPv4 36018833      0t0  TCP 10.10.10.1:58586->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  264u  IPv4 36020018      0t0  TCP 10.10.10.1:58598->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  312u  IPv4 36058194      0t0  TCP 10.10.10.1:58826->10.10.10.10:livelan (ESTABLISHED)
stones333
fonte
4
Ponto negativo, porque este não é um comando do Windows. Se estiver disponível no Windows, não há discussão sobre como adquiri-lo.
Ro Yo Mi
1
Não responde à pergunta do OP. -1.
FractalSpace