Usando a ferramenta de linha de comando do PortQry

O PortQry é uma ferramenta de linha de comando que você pode usar para ajudar a solucionar problemas de conectividade TCP/IP. Essa ferramenta relata o status de portas UDP (Protocolo de TCP e Datagram de Usuário) de destino em um computador local ou em um computador remoto. Ele também fornece informações detalhadas sobre o uso da porta do computador local.

Como o PortQry destina-se a ser usado como uma ferramenta de solução de problemas, os usuários que a usam para solucionar um problema específico devem ter conhecimento suficiente de seu ambiente de computação.

Você pode usar o PortQry de um prompt de comando em um dos vários modos:

  • Modo de linha de comando. Você pode usar esse modo para solucionar problemas de computadores locais ou remotos.
  • Modo local. Nesse modo, você pode usar vários parâmetros destinados à solução de problemas do computador local.
  • Modo interativo. Semelhante ao modo de linha de comando, mas você pode usar comandos e parâmetros de atalho.

Observação

Você pode baixar uma ferramenta separada, chamada PortQryUI, que inclui uma interface do usuário gráfica para PortQry. O PortQryUI tem vários recursos que podem facilitar o uso do PortQry. Para obter a ferramenta PortQryUI, consulte PortQryUI – Interface do Usuário para o Scanner de Porta de Linha de Comando do PortQry.

Aplica-se a: versões com suporte do Windows

Testes e resultados do PortQry

Ferramentas típicas de verificação de porta relatam que a porta tem uma status LISTENING se a porta UDP de destino não retornar uma mensagem "Destino inacessível" do Protocolo de Mensagem de Controle da Internet (ICMP). Esse resultado pode não ser preciso por um ou ambos os seguintes motivos:

  • Se não houver resposta a um datagram direcionado, a porta de destino poderá ser FILTRADA.
  • A maioria dos serviços não responde a um datagram de usuário não formatado enviado a eles. Normalmente, o serviço ou programa que escuta uma porta responde apenas a uma mensagem que usa uma camada de sessão específica ou protocolo de camada de aplicativo.

Para produzir resultados mais precisos e úteis, o PortQry usa um processo de teste em duas etapas.

Etapa 1: Teste de status de porta

O PortQry relata o status de uma porta como um dos três valores:

  • ESCUTA: Essa resposta indica que um processo está escutando na porta de destino. O PortQry recebeu uma resposta da porta de destino.
  • NÃO ESCUTA: Essa resposta indica que nenhum processo está ouvindo na porta de destino. O PortQry recebeu uma das seguintes mensagens ICMP da porta de destino:

    Porta inacessível de destino inacessível

  • FILTRADA: Essa resposta indica que a porta de destino está sendo filtrada. O PortQry não recebeu uma resposta da porta de destino. Um processo pode ou não estar ouvindo na porta de destino. Por padrão, o PortQry consulta uma porta TCP três vezes antes de retornar uma resposta de FILTERED e consulta uma porta UDP uma vez antes de retornar uma resposta de FILTERED.

Etapa 2: Testes especializados

Se não houver resposta de uma porta UDP de destino, o PortQry informará que a porta está ESCUTANDO ou FILTRADA. No entanto, quando você soluciona um problema de conectividade, é útil saber se uma porta está sendo filtrada ou está ouvindo. Isso é especialmente verdadeiro em um ambiente que contém um ou mais firewalls.

O PortQry refina sua porta status relatório usando um segundo conjunto de testes que podem interagir com o serviço ou o programa que está ouvindo na porta de destino. Para este teste, o PortQry faz o seguinte:

  • O PortQry usa o arquivo Serviços localizado na pasta %SYSTEMROOT%\System32\Drivers\Etc para determinar qual serviço escuta em cada porta.
  • O PortQry cria uma mensagem que é especificamente construída para o serviço ou programa esperado e envia essa mensagem para a porta de destino. Dependendo do serviço ou do programa, a mensagem pode solicitar informações úteis para solução de problemas, como o seguinte:
    • Informações do controlador de domínio e domínio (consultas LDAP)
    • Serviços e portas de cliente registrados (consultas RPC)
    • Se o acesso anônimo é permitido (consultas FTP)
    • Endereço MAC (consultas netbios)
    • Mspclnt.ini informações de arquivo (consultas do ISA Server)
  • O PortQry analisa, formata e retorna a resposta do serviço ou do programa como parte do relatório de teste.

Testes adicionais para solucionar problemas do computador local

Quando precisar solucionar problemas de portas no computador em que instalou o PortQry, use o PortQry no modo local. Ao usar os parâmetros de modo local na linha de comando, você pode fazer tarefas como a seguinte no computador local:

  • Enumerar mapeamentos de porta
  • Monitorar uma porta específica para alterações
  • Monitorar um processo específico para alterações

Para obter mais informações, confira Usando o PortQry no modo local (linha de comando).

Usando o PortQry no modo de linha de comando

Você pode executar o PortQry em um prompt de comando da mesma maneira que qualquer outra ferramenta de linha de comando. A maioria dos exemplos neste artigo mostra comandos PortQry de linha de comando. No modo de linha de comando, você pode adicionar várias opções à cadeia de caracteres de comando para especificar qual consulta executar e como executá-la. Para executar o PortQry no modo de linha de comando, execute um comando que usa a seguinte sintaxe:

portqry.exe -n <name_to_query> [options]

Observação

Neste comando, <name_to_query> é o endereço IP, o nome do computador ou o domínio a ser consultado. Esse parâmetro é obrigatório. [opções] são os parâmetros opcionais.

Parâmetros do PortQry para o modo de linha de comando

Os seguintes parâmetros estão disponíveis no modo de linha de comando regular:

Parâmetro Descrição Comments
-n <name> Consultar o destino específico
  • Este é o único parâmetro necessário para o modo de linha de comando.
  • O < valor do nome> representa o nome ou o endereço IP do computador a ser consultado. Esse valor não pode incluir espaços.
-p <protocol> Usar o protocolo especificado
  • O < valor do protocolo> representa o tipo de porta para consulta (os valores possíveis são tcp, udpou both).
  • O valor padrão é tcp.
-e <port_number> Especifique a porta de destino (também conhecida como "ponto de extremidade")
  • O <valor port_number> representa a porta a ser consultada no computador de destino.
  • O valor padrão é 80.
-o <port_number>,<port_number> Especificar várias portas de destino em uma sequência Os < valores port_number,port_number>>< representam a lista delimitada por vírgulas de números de porta para consultar em uma sequência. Não use espaços ao redor das vírgulas.
-r <port_number>:<port_number> Especificar um intervalo de portas de destino
  • Os < valores port_number>:<port_number> representam os números de porta inicial e final, separados por um ponto. Não use espaços ao redor do cólon.
  • O número da porta inicial deve ser menor que o número de porta final.
-l <filename.txt> Gerar um arquivo de log
  • O < valorfilename.txt> representa o nome e a extensão do arquivo de log. Esse valor não pode incluir espaços.
  • Quando o comando é executado, o PortQry cria o arquivo de log no diretório em que ele está instalado.
  • Se o arquivo já existir, o PortQry pedirá que você confirme se deseja substituí-lo (a menos que você também use o -y parâmetro).
-y Substituir o arquivo de log anterior
  • Quando você usa -y junto com -lo , o PortQry substitui o arquivo de log existente sem solicitar que você confirme a ação.
  • Se a cadeia de caracteres de comando PortQry não incluir -l, o PortQry ignorará -y.
-sl Aguardar tempo extra para resposta (também conhecido como atraso lento do link) Use esse parâmetro para dobrar o tempo que o PortQry aguarda por uma resposta de uma porta UDP antes que o PortQry determine que a porta NÃO está ESCUTAndo ou que é FILTRADA. Quando você consulta links de rede lentos ou não confiáveis, o tempo normal de espera pode ser muito curto para receber uma resposta.
-nr Ignorar pesquisa de nome reverso
  • Por padrão, quando você usa -n para especificar um endereço IP para o computador de destino, o PortQry faz uma pesquisa de nome reverso para resolve o endereço IP para um nome. Esse processo pode ser demorado, especialmente se o PortQry não puder resolve o endereço IP. Use -nr para ignorar esta etapa da consulta.
  • Se você usar -n para especificar um computador ou nome de domínio, o PortQry ignorará -nr.
-sp <port_number> Consulta de uma porta de origem específica
  • O <valor port_number> representa a porta que o PortQry usa para enviar a consulta.
  • O PortQry não pode usar uma porta que outro processo já esteja usando. Se a porta especificada já estiver em uso, o PortQry retornará a seguinte mensagem de erro:
    Não é possível usar a porta de origem especificada.
    A porta já está em uso.
    Especifique uma porta que não esteja em uso e execute o comando novamente.
  • Nos casos a seguir, o PortQry usa a porta especificada para o primeiro teste da consulta, mas não o segundo teste:
    • RPC (portas TCP e UDP 135)
    • LDAP (porta UDP 389)
    • Consulta status adaptador do NetBIOS (porta UDP 137)
    Nesses casos, o PortQry usa uma porta efêmera para o segundo teste. Quando isso ocorre, o PortQry registra "Usando a porta de origem efêmera" em sua saída.
  • Se o computador em que o PortQry está instalado também executar o agente de política IPSec, a porta UDP 500 poderá não estar disponível para uso como porta de origem. Para desativar temporariamente o agente de política IPSec para que você possa usar a porta 500, execute net stop PolicyAgent. Quando terminar o teste, execute net start PolicyAgent.
-cn !<community_name>! Consultar uma comunidade SNMP
  • O <valor community_name> representa o nome da comunidade SNMP a ser consultada. Você deve delimitar esse valor usando pontos de exclamação, conforme mostrado na coluna à esquerda.
  • Se o serviço SNMP não estiver ouvindo na porta de destino, o PortQry ignorará -cn.
  • O nome padrão da comunidade é public.
-q Executar o PortQry no modo silencioso
  • Quando você usa -q, o PortQry suprime toda a saída de tela, exceto as mensagens de erro.
  • Para ver a saída diferente de mensagens de erro, use -q em conjunto com -l. O PortQry registra a saída normal no arquivo de log.
  • Se um arquivo de log já existir e você usar -q junto com -l, o PortQry substituirá o arquivo de log existente sem solicitar que você.
  • Você não pode usar -q junto com -o, -rou -p both.
  • Esse parâmetro é especialmente útil quando você usa um arquivo em lote para executar uma cadeia de caracteres de comando Do PortQry.

Observações sobre parâmetros no modo de linha de comando

  • Qualquer valor de número de porta deve ser um número de porta válido entre 1 e 65535, inclusive.
  • Os -eparâmetros , -oe -r são mutuamente exclusivos. Um único comando PortQry pode usar apenas um desses parâmetros.
  • Uma consulta à porta UDP 389 (LDAP) pode não funcionar em relação aos controladores de domínio que estão executando o Windows Server 2008. Para marcar a disponibilidade do serviço em execução na porta UDP 389, você pode usar o Nltest em vez de PortQry. Para obter mais informações, consulte Nltest.
  • Ao consultar a porta 135 (RPC) usando -e ou -o, o PortQry retorna todos os pontos de extremidade registrados no momento com o mapeador de ponto de extremidade RPC.

    Importante

    Quando você usa o , o -rPortQry não consulta o mapeador do ponto de extremidade RPC.

  • Quando você consulta a porta 53 (DNS), o PortQry envia uma consulta DNS para usando portqry.microsoft.com TCP e UDP. Se o servidor retornar uma resposta, o PortQry determinará que a porta é LISTENING.

    Observação

    Não é importante se o servidor DNS retorna uma resposta positiva ou negativa. Qualquer resposta indica que a porta está ouvindo.

Usando o PortQry no modo local (linha de comando)

Em vez de consultar uma porta em um computador de destino remoto, você pode usar o PortQry no modo local para obter informações detalhadas sobre as portas TCP e as portas UDP no computador local onde o PortQry é executado. Use a seguinte sintaxe para executar o PortQry no modo local:

portqry -local | -wpid <pid> | -wport <port_number> [-wt <seconds>] [-l <filename.txt>] [-v]

Os espaços reservados nesta sintaxe são explicados na seguinte tabela de parâmetros de modo local:

Parâmetro Descrição Comments
-local Recuperar informações locais
  • Enumera todos os mapeamentos de porta TCP e UDP que estão atualmente ativos no computador local. Essa saída é semelhante à saída que o netstat.exe -an comando gera.
  • Em computadores que dão suporte a mapeamentos PID para porta, a saída inclui o PID do processo que está usando a porta no computador local. Se você usar a opção verbosa (-v), a saída também inclui os nomes dos serviços aos quais o PID pertence e lista todos os módulos que o processo carregou. Você pode usar essas informações para determinar quais portas estão associadas a um determinado programa ou serviço em execução no computador.
-wport <port_number> Porta de observação
  • Monitore uma porta específica para alterações. O <valor port_number> representa a porta a ser monitorada.
  • No caso de uma porta TCP, o PortQry relata alterações entre os seguintes estados:
    • CLOSE_WAIT
    • FECHADO
    • ESTABELECIDO
    • FIN_WAIT_1
    • LAST_ACK
    • ESCUTE
    • SYN_RECEIVED
    • SYN_SEND
    • TIMED_WAIT
  • Para portas UDP, o PortQry informa se um programa está vinculado à porta, mas não informa se a porta UDP recebe datagrams.
  • Para interromper o monitoramento, pressione Esc.
-wpid <pid> Ver a ID do processo de observação (PID)
  • Monitore um PID específico para alterações no número e no estado das conexões. O <valor process_number> representa o PID a ser monitorado.
  • Para interromper o monitoramento, pressione Esc.
-wt <seconds> Verificar em um intervalo específico
  • Verifique o status do destino identificado pelo -wport ou "-wpid no intervalo representado pelo valor /<seconds>.
  • O < valor de segundos> deve estar entre um e 1.200 (inclusive).
  • O valor padrão é 60.
  • Você não pode usar -wt por si mesmo ou junto com -local.
-l <filename.txt> Gerar um arquivo de log
  • O < valorfilename.txt> representa o nome e a extensão do arquivo de log. Esse valor não pode incluir espaços.
  • Quando o comando é executado, o PortQry cria o arquivo de log no diretório em que ele está instalado.
  • Se o arquivo já existir, o PortQry pedirá que você confirme se deseja substituí-lo (a menos que você também use o -y parâmetro).
-y Substituir o arquivo de log anterior
  • Quando você usa -y junto com -lo , o PortQry substitui o arquivo de log existente sem solicitar que você confirme a ação.
  • Se a cadeia de caracteres de comando PortQry não incluir -l, o PortQry ignorará -y.
-v Produzir saída verbosa O PortQry fornece detalhes adicionais para a saída da tela (e para o arquivo de log, se usado).

Observações sobre parâmetros no modo local

  • Os -localparâmetros , -wporte -wpid são mutuamente exclusivos. Você pode usar apenas um desses parâmetros em uma única cadeia de caracteres de comando do PortQry.
  • O -q parâmetro não funciona no modo local.
  • Em alguns casos, o PortQry pode relatar que o processo do Sistema Ocioso (PID 0) está usando algumas portas TCP. Esse comportamento poderá ocorrer se um programa local se conectar a uma porta TCP e parar. Embora o programa não esteja mais em execução, a conexão TCP do programa com a porta pode ficar em um estado de "Espera Cronometrada" por vários minutos. Nesse caso, o PortQry pode detectar que a porta está em uso, mas não consegue identificar o programa que está usando a porta porque o PID foi lançado. Por padrão, a porta permanece em um estado "Espera Cronometrada" por duas vezes mais tempo que o tempo máximo de tempo de vida do segmento.
  • Para cada processo, o PortQry relata o máximo de informações que pode acessar. O acesso a algumas informações é restrito. Por exemplo, o acesso às informações do módulo para os processos Ocioso e CSRSS é proibido porque suas restrições de acesso impedem a abertura do código no nível do usuário. Para obter melhores resultados, execute o comando de modo local no contexto do Administrador local ou de uma conta que tenha credenciais semelhantes.
  • Quando você usar -wport ou -wpid junto com -l, use a chave Esc para interromper e sair do PortQry em vez de CTRL+C. Você deve pressionar o Esc para garantir que o PortQry feche corretamente o arquivo de log e saia. Se você pressionar CTRL+C em vez de Esc para parar o PortQry, o arquivo de log poderá ficar vazio ou corrompido.

Usando o PortQry no modo interativo

Quando você soluciona problemas de conectividade entre computadores, talvez seja necessário digitar muitos comandos repetitivos. Essas ações podem ser feitas com mais facilidade usando o PortQry no modo interativo.

O modo interativo é semelhante à funcionalidade interativa no utilitário DNS do Nslookup ou no utilitário WINS do Nblookup.

Para iniciar o PortQry no modo interativo, use o -i parâmetro. Por exemplo, execute o seguinte comando:

portqry -i

A saída deste comando se assemelha ao seguinte trecho:

Portqry Interactive Mode

Type 'help' for a list of commands

Default Node: 127.0.0.1

Current option values:  
   end port= 80  
   protocol= TCP  
   source port= 0 (ephemeral)
>

Comandos de modo interativo

Você pode usar os seguintes comandos no modo interativo:

Comando Descrição Comments
node <name> ou n <name> Definir o destino como consulta
  • O < valor do nome> representa o nome ou o endereço IP do computador a ser consultado. Esse valor não pode incluir espaços.
  • O valor padrão é 127.0.0.1 (o computador local).
query ou q Enviar consulta
  • Consulta o destino atual, usando as configurações atuais.
  • O protocolo padrão é tcp.
  • A porta de destino padrão é a porta TCP 80.
  • A porta de origem padrão é a porta 0 (uma porta efêmera).
  • Você pode usar um dos vários atalhos com o query comando para executar qualquer uma das várias consultas comuns. Para obter uma lista dos atalhos disponíveis, confira Atalhos de consulta de modo interativo.
set <option>=<value> Definir o valor de uma opção de consulta
  • Neste comando, <a opção> representa o nome da opção a ser definida e < o valor> representa o novo valor da opção.
  • Para ver uma lista dos valores atuais das opções disponíveis, insira set all.
  • Para obter uma lista das opções disponíveis, consulte Opções de modo interativo.
exit Deixar o modo interativo

Atalhos de consulta de modo interativo

Você pode usar os atalhos a seguir junto com o query comando para executar consultas comuns sem precisar definir opções de porta e protocolo. Use a seguinte sintaxe:

q <shortcut>

Observação

Neste comando, < o atalho> representa um dos atalhos da tabela a seguir. Se você omitir o atalho, o comando consultará a q porta TCP 80.

Shortcut Portas para consultar
dns Porta TCP 53, porta UDP 53.
ftp Porta TCP 21
imap Porta TCP 143
ipsec Porta UDP 500
isa Porta TCP 1745, porta UDP 1745
ldap Porta TCP 389, porta UDP 389
l2tp Porta UDP 1701
mail Portas TCP 25, 110 e 143
pop3 Porta TCP 110
rpc Porta TCP 135, porta UDP 135
smtp Porta TCP 25
snmp Porta UDP 161
sql Porta TCP 1433, porta UDP 1434
tftp Porta UDP 69

Por exemplo, entrar q dns no modo interativo é equivalente à execução portqry -n 127.0.0.1 -p both -e 135 no modo de linha de comando regular.

Opções de modo interativo

Você pode usar o set comando para definir opções como a porta de origem ou atraso de link lento. Use a seguinte sintaxe:

set <option>=<value>

Observação

Neste comando, <a opção> representa o nome da opção a ser definida e < o valor> representa o novo valor da opção.

Opção Descrição Comments
set all Exibir os valores atuais das opções
set port=<port_number>
set e=<port_number>
Especificar a porta de destino O <valor port_number> representa a porta a ser consultada no computador de destino.
set sport=<port_number>
set sp=<port_number>
Especificar a porta de origem
  • O <valor port_number> representa a porta que o PortQry usa para enviar a consulta.
  • O PortQry não pode usar uma porta que outro processo já esteja usando.
  • Se você especificar um número de porta zero, o PortQry usará uma porta efêmera.
set protocol=<protocol>
set p=<protocol>
Especificar o protocolo a ser usado O < valor do protocolo> representa o tipo de porta a ser consultada (tcp, udpou both).
set cn=<community_name> Especificar uma comunidade SNMP
  • O <valor community_name> representa o nome da comunidade SNMP a ser consultada.
  • Se o serviço SNMP não estiver ouvindo na porta de destino, o PortQry ignorará -cn.
  • O nome padrão da comunidade é public.
set nr Desativar ou ativar a pesquisa de nome inverso
  • Por padrão, se você tiver definido um endereço IP como o destino da consulta, o PortQry resolverá o endereço IP para um nome. Se você alterar essa opção, o PortQry ignorará a etapa de resolução de nomes.
  • Para ativar novamente a pesquisa de nome reverso, execute set nr uma segunda vez.
set sl Ativar ou desativar atraso de link lento
  • Se você alterar essa opção, o PortQry dobrará o tempo que espera por uma resposta de uma porta UDP antes que o PortQry determine que a porta NÃO está ESCUTAndo ou que está FILTRADA. Quando você consulta links de rede lentos ou não confiáveis, o tempo normal de espera pode ser muito curto para receber uma resposta.
  • Para desativar o atraso de link lento novamente, execute set sl uma segunda vez.

Suponha que você queira consultar um computador que tenha o endereço IP 10.0.1.10. No prompt de comando do modo interativo, insira n 10.0.1.10. Este comando produz uma saída que se assemelha ao seguinte trecho:

Default Node: 10.0.1.10

>

Para enviar uma consulta DNS, insira q dns no prompt de comando do modo interativo. Este comando produz uma saída que se assemelha ao seguinte trecho:

resolving service name using local services file...
UDP port resolved to the 'domain' service

IP address resolved to myserver.contoso.com

querying...

UDP port 53 (domain service): LISTENING

>

Personalizando a associação entre portas e serviços

Por padrão, cada computador baseado no Windows tem um arquivo dos Serviços localizado na pasta %SYSTEMROOT%\System32\Drivers\Etc . O PortQry usa esse arquivo para resolve números de porta para seus nomes de serviço correspondentes. O PortQry usa essas informações para selecionar o formato de suas consultas. Você pode editar esse arquivo para direcionar o PortQry para enviar mensagens formatadas para uma porta alternativa. Por exemplo, a seguinte entrada é exibida em um arquivo típico dos Serviços:

ldap              389/tcp                           #Lightweight Directory Access Protocol

Você pode editar essa entrada de porta ou adicionar uma entrada adicional. Para forçar o PortQry a enviar consultas LDAP para a porta 1025, modifique a entrada da seguinte maneira:

ldap              1025/tcp                           #Lightweight Directory Access Protocol

Exemplos

Os exemplos a seguir demonstram como usar o PortQry e seus parâmetros:

Modo local

Modo de linha de comando

Consultar o computador local

A saída de portqry -local se assemelha ao seguinte trecho:

TCP/UDP Port Usage

96 active ports found

Port Local IPState Remote IP:Port  
TCP 80 0.0.0.0 LISTENING 0.0.0.0:18510  
TCP 80 169.254.149.9 TIME WAIT 169.254.74.55:3716  
TCP 80 169.254.149.9 TIME WAIT 169.254.200.222:3885  
TCP 135 0.0.0.0 LISTENING 0.0.0.0:10280  
UDP 135 0.0.0.0 :  
UDP 137 169.254.149.9 :  
UDP 138 169.254.149.9 :  
TCP 139 169.254.149.9 LISTENING 0.0.0.0:43065  
TCP 139 169.254.149.9 ESTABLISHED 169.254.4.253:4310  
TCP 139 169.254.149.9 ESTABLISHED 169.254.74.55:3714  

Consultar o computador local quando o acesso pode ser restrito

Ao executar o PortQry no modo local, como no exemplo anterior, você poderá ver uma saída que se assemelha ao trecho a seguir. Essa saída indica que o contexto de segurança que o PortQry está usando não tem permissões suficientes para acessar todas as informações solicitadas.

Port and Module Information by Process

Note: restrictions applied to some processes may
prevent Portqry from accessing more information

For best results run Portqry in the context of
the local administrator

======================================================  
Process ID: 0 (System Idle Process)

PIDPortLocal IPState Remote IP:Port  
0TCP 4442 169.254.113.96 TIME WAIT 169.254.5.136:80  
0TCP 4456 169.254.113.96 TIME WAIT 169.254.5.44:445  

Port Statistics

TCP mappings: 2  
UDP mappings: 0

TCP ports in a TIME WAIT state: 2 = 100.00%

Could not access module information for this process

======================================================

Monitorar uma ID do processo usando um intervalo específico

O comando a seguir monitora um processo específico:

portqry.exe -wpid 1276 -wt 2 -v -l pid.txt

Como resultado, o PortQry executa as seguintes ações:

  • Identifica o processo que tem o PID 1276 e verifica o status das portas que ele está usando a cada dois segundos até pressionar o Esc.
  • Cria o arquivo de logpid.txt. Se um arquivo com esse nome já existir, o PortQry solicitará que você confirme se deseja substituir o arquivo.
  • Registra qualquer saída no arquivo de log, incluindo a saída extra verbosa.

O conteúdo do arquivo de log se assemelha ao seguinte trecho:

PortQry Version 2.0 Log File
  
System Date: <DateTime>
  
Command run:  
portqry -wpid 1276 -wt 2 -v -l pid.txt
  
Local computer name:
  
host123
  
Watching PID: 1276
  
Checking for changes every 2 seconds
  
verbose output requested
  
Service Name: DNS  
Display Name: DNS Server  
Service Type: runs in its own process

============
System Date: <DateTime>

======================================================

Process ID: 1276 (dns.exe)

Service Name: DNS
Display Name: DNS Server
Service Type: runs in its own process

PIDPortLocal IPState Remote IP:Port
1276TCP 53 0.0.0.0 LISTENING 0.0.0.0:2160
1276TCP 1087 0.0.0.0 LISTENING 0.0.0.0:37074
1276UDP 1086 0.0.0.0 :
1276UDP 2126 0.0.0.0 :
1276UDP 53 127.0.0.1 :
1276UDP 1085 127.0.0.1 :
1276UDP 53 169.254.11.96 :

Port Statistics

TCP mappings: 2
UDP mappings: 5

TCP ports in a LISTENING state: 2 = 100.00%

Loaded modules:
C:\WINDOWS\System32\dns.exe (0x01000000)
C:\WINDOWS\system32\ntdll.dll (0x77F40000)
C:\WINDOWS\system32\kernel32.dll (0x77E40000)
C:\WINDOWS\system32\msvcrt.dll (0x77BA0000)
C:\WINDOWS\system32\ADVAPI32.dll (0x77DA0000)
C:\WINDOWS\system32\RPCRT4.dll (0x77C50000)
C:\WINDOWS\System32\WS2_32.dll (0x71C00000)
C:\WINDOWS\System32\WS2HELP.dll (0x71BF0000)
C:\WINDOWS\system32\USER32.dll (0x77D00000)
C:\WINDOWS\system32\GDI32.dll (0x77C00000)
C:\WINDOWS\System32\NETAPI32.dll (0x71C40000)

Especificar um destino e um protocolo

Observação

Cada um dos exemplos nesta seção consulta a porta 80, a porta padrão.

O comando a seguir consulta a porta TCP padrão em um computador especificado usando seu FQDN (nome de domínio totalmente qualificado):

portqry -n myDomainController.example.com -p tcp

O comando a seguir consulta a porta UDP padrão em um computador especificado usando o nome do computador:

portqry -n myServer -p udp

O comando a seguir consulta as portas TCP e UDP padrão de um computador especificado usando seu endereço IP:

portqry -n 192.168.1.20 -p both

O comando a seguir executa a mesma consulta que o comando anterior, mas ignora a etapa de resolução de nomes:

portqry -n 192.168.1.20 -p both -nr

O comando a seguir consulta a porta TCP padrão de um servidor Web:

portqry -n www.widgets.microsoft.com

Especificar uma ou mais portas de destino

O comando a seguir testa o serviço SMTP de um servidor de email consultando a porta TCP 25:

portqry -n mail.example.com -p tcp -e 25

O comando a seguir consulta a porta TCP 60897 e a porta UDP 60897 de um computador que tem o endereço IP 192.168.1.20:

portqry -n 192.168.1.20 -p both -e 60897

O comando a seguir consulta as portas UDP 139, 1025 e 135 (nessa sequência) no computador "myServer":

portqry -n myServer -p udp -o 139,1025,135

O comando a seguir consulta o intervalo de portas da porta 135 à porta 139 (inclusive) no computador "myServer":

portqry -n myServer -p udp -r 135:139

Especificar um arquivo de log para saída do PortQry

O comando a seguir consulta a porta TCP 143 no mail.widgets.microsoft.com e registra a saída no arquivo portqry.txt . Se o arquivo já existir, o PortQry o substituirá sem solicitar a confirmação.

portqry -n mail.widgets.microsoft.com -p tcp -e 143 -l portqry.txt -y

Consulta por meio de um link lento

O comando a seguir consulta as portas TCP 143, 110 e 25 no mail.widgets.microsoft.com. Para cada porta de destino, o PortQry espera duas vezes mais do que o normal para obter uma resposta.

  portqry -n mail.widgets.microsoft.com -p tcp -o 143,110,25 -sl

Especificar uma porta de origem

O comando a seguir usa a porta UDP 3001 (se estiver disponível) no computador local para enviar uma consulta à porta UDP 53 em 192.168.1.20. Se um serviço estiver escutando nessa porta e responder à consulta, ele enviará a resposta à porta UDP 3001 no computador local.

portqry -p udp -e 53 -sp 3001 -n 192.168.1.20

O comando a seguir usa a porta UDP 3000 (se estiver disponível) no computador local para enviar uma consulta à porta UDP 389 no myDomainController.contoso.com. Por padrão, o serviço LDAP deve estar ouvindo nesta porta. Se o serviço LDAP responder à primeira consulta, o PortQry usará uma porta de origem efêmera para enviar a consulta formatada e receber respostas.

portqry -n myDomainController.contoso.com -e 389 -sp 3000

Usar um arquivo em lote para executar o PortQry no modo silencioso

O texto a seguir é um exemplo de um arquivo em lote que executa o PortQry no modo silencioso:

:Top
portqry -n 169.254.18.22 -e 443 -nr -l pqlog.txt -q
:end

Quando esse arquivo em lote é executado, o PortQry produz um arquivo de log chamado pqlog.txt. O conteúdo deste arquivo se assemelha ao seguinte:

PortQry Version 2.0 Log File

System Date: Thu Sep 16 10:35:03 2021

Command run:
 portqry -n 169.254.18.22 -e 443 -nr -l pqlog.txt -q

Local computer name:

 SOURCESERVER

Querying target system called:

 169.254.18.22

TCP port 443 (https service): LISTENING


========= end of log file ========= 

Porta de consulta 135 (serviço RPC)

O comando a seguir consulta a porta UDP 135 no computador myServer. Por padrão, o serviço RPC deve estar ouvindo nesta porta.

portqry -n myServer -p udp -e 135

Como resultado, o PortQry executa as seguintes ações:

  • O PortQry usa o arquivo Serviços na pasta %SYSTEMROOT%\System32\Drivers\Etc para resolve porta UDP 135 para um serviço. Usando a configuração padrão, o PortQry resolve a porta para o serviço de mapeador de ponto de extremidade RPC (Epmap).
  • O PortQry envia um datagram de usuário não formatado para a porta UDP 135 no computador de destino.
    O PortQry não recebe uma resposta da porta de destino. Isso ocorre porque o serviço mapeador de ponto de extremidade RPC responde apenas a uma consulta RPC formatada corretamente. O PortQry informa que a porta está ESCUTANDO ou FILTRADA.
  • O PortQry cria uma consulta RPC formatada corretamente que solicita todos os pontos de extremidade registrados no momento com o mapeador do ponto de extremidade RPC. O PortQry envia essa consulta para a porta UDP 135 no computador de destino.
  • Dependendo da resposta, o PortQry executa uma das seguintes ações:
    • Se o PortQry receber uma resposta a essa consulta, o PortQry retornará toda a resposta ao usuário e informará que a porta está ESCUTANDO.
    • Se o PortQry não receber uma resposta a essa consulta, ele informará que a porta é FILTRADA.
UDP port 135 (epmap service): LISTENING or FILTERED  
Querying Endpoint Mapper Database...  
Server's response:  

UUID: 50abc2a4-574d-40b3-9d66-ee4fd5fba076
ncacn_ip_tcp:169.254.12.191[4144]

UUID: ecec0d70-a603-11d0-96b1-00a0c91ece30 NTDS Backup Interface
ncacn_np:\\MYSERVER[\PIPE\lsass]

UUID: e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface
ncacn_ip_tcp:169.254.12.191[1030]

UUID: e3514235-4b06-11d1-ab04-00c04fc2dcd2 MS NT Directory DRS Interface
ncadg_ip_udp:169.254.12.191[1032]

UUID: 12345678-1234-abcd-ef00-01234567cffb
ncacn_np:\\MYSERVER[\PIPE\lsass]

UUID: 12345678-1234-abcd-ef00-01234567cffb
ncacn_np:\\MYSERVER[\PIPE\POLICYAGENT]

Total endpoints found: 6

==== End of RPC Endpoint Mapper query response ====

UDP port 135 is LISTENING

A partir dessa saída, você pode determinar não apenas se o serviço está ouvindo na porta, mas também quais serviços ou programas estão registrados com o banco de dados mapeador de ponto de extremidade RPC no computador de destino. A saída inclui o UUID (identificador exclusivo universal) para cada programa, o nome anotado (se existir), o protocolo que cada programa usa, o endereço de rede ao qual o programa está vinculado e o ponto de extremidade do programa em colchetes.

Observação

Quando você especifica a opção -r no comando PortQry para examinar um intervalo de portas, o PortQry não consulta o mapeador de ponto de extremidade RPC para obter informações de ponto de extremidade. Esse parâmetro acelera a verificação de um intervalo de portas.