Använda kommandoradsverktyget PortQry

PortQry är ett kommandoradsverktyg som du kan använda för att felsöka TCP/IP-anslutningsproblem. Det här verktyget rapporterar status för MÅL-TCP- och UDP-portar (User Datagram Protocol) på en lokal dator eller på en fjärrdator. Den innehåller också detaljerad information om den lokala datorns portanvändning.

Eftersom PortQry är avsett att användas som ett felsökningsverktyg bör användare som använder det för att felsöka ett visst problem ha tillräcklig kunskap om sin datormiljö.

Du kan använda PortQry från en kommandotolk i något av flera lägen:

  • Kommandoradsläge. Du kan använda det här läget för att felsöka lokala datorer eller fjärrdatorer.
  • Lokalt läge. I det här läget kan du använda flera parametrar som är avsedda att felsöka den lokala datorn.
  • Interaktivt läge. Liknar kommandoradsläget, men du kan använda genvägskommandon och parametrar.

Obs!

Du kan ladda ned ett separat verktyg, som kallas PortQryUI, som innehåller ett grafiskt användargränssnitt för PortQry. PortQryUI har flera funktioner som gör det enklare att använda PortQry. Information om hur du hämtar PortQryUI-verktyget finns i PortQryUI – Användargränssnitt för PortQry-kommandoradsportläsaren.

Gäller för: Versioner av Windows som stöds

PortQry-tester och resultat

Typiska verktyg för portgenomsökning rapporterar att porten har statusEN LYSSNAR om UDP-målporten inte returnerar ett ICMP-meddelande (Internet Control Message Protocol) "Mål kan inte nås". Det här resultatet kanske inte är korrekt av någon eller båda av följande orsaker:

  • Om det inte finns något svar på ett dirigerat datagram kan målporten vara FILTRERAD.
  • De flesta tjänster svarar inte på ett oformaterat användardatagram som skickas till dem. Vanligtvis svarar tjänsten eller programmet som lyssnar på en port endast på ett meddelande som använder ett specifikt sessionslager eller protokoll på programnivå.

För att få mer exakta och användbara resultat använder PortQry en tvåstegsprocess för testning.

Steg 1: Test av portstatus

PortQry rapporterar status för en port som ett av tre värden:

  • LYSSNA: Det här svaret anger att en process lyssnar på målporten. PortQry tog emot ett svar från målporten.
  • LYSSNAR INTE: Det här svaret anger att ingen process lyssnar på målporten. PortQry tog emot något av följande ICMP-meddelanden från målporten:

    Det går inte att nå målporten

  • FILTRERAT: Det här svaret anger att målporten filtreras. PortQry fick inget svar från målporten. En process kanske eller kanske inte lyssnar på målporten. Som standard frågar PortQry en TCP-port tre gånger innan den returnerar ett svar från FILTERED och frågar en UDP-port en gång innan den returnerar ett svar från FILTERED.

Steg 2: Specialiserade tester

Om det inte finns något svar från en UDP-målport rapporterar PortQry att porten är LYSSNAR eller FILTRERAD. Men när du felsöker ett anslutningsproblem är det bra att veta om en port filtreras eller lyssnar. Detta gäller särskilt i en miljö som innehåller en eller flera brandväggar.

PortQry förfinar portstatusrapporten med hjälp av en andra uppsättning tester som kan interagera med tjänsten eller programmet som lyssnar på målporten. För det här testet gör PortQry följande:

  • PortQry använder tjänstfilen som finns i mappen %SYSTEMROOT%\System32\Drivers\Etc för att avgöra vilken tjänst som lyssnar på varje port.
  • PortQry skapar ett meddelande som är specifikt konstruerat för den förväntade tjänsten eller programmet och skickar sedan meddelandet till målporten. Beroende på tjänst eller program kan meddelandet begära information som är användbar för felsökning, till exempel följande:
    • Domän- och domänkontrollantinformation (LDAP-frågor)
    • Registrerade klienttjänster och portar (RPC-frågor)
    • Om anonym åtkomst tillåts (FTP-frågor)
    • MAC-adress (NetBIOS-frågor)
    • Mspclnt.ini filinformation (ISA-serverfrågor)
  • PortQry parsar, formaterar och returnerar sedan svaret från tjänsten eller programmet som en del av testrapporten.

Ytterligare tester för att felsöka den lokala datorn

När du måste felsöka portar på datorn där du installerade PortQry använder du PortQry i lokalt läge. När du använder parametrarna för lokalt läge på kommandoraden kan du utföra uppgifter som följande på den lokala datorn:

  • Räkna upp portmappningar
  • Övervaka en specifik port för ändringar
  • Övervaka en specifik process för ändringar

Mer information finns i Använda PortQry i lokalt läge (kommandoradsläge).

Använda PortQry i kommandoradsläge

Du kan köra PortQry i en kommandotolk på samma sätt som andra kommandoradsverktyg. De flesta av exemplen i den här artikeln visar kommandoradskommandon för PortQry. I kommandoradsläge kan du lägga till flera alternativ i kommandosträngen för att ange vilken fråga som ska köras och hur den ska köras. Om du vill köra PortQry i kommandoradsläge kör du ett kommando som använder följande syntax:

portqry.exe -n <name_to_query> [options]

Obs!

I det här kommandot <är name_to_query> IP-adressen, datornamnet eller domänen som ska frågas. Den här parametern krävs. [alternativ] är de valfria parametrarna.

PortQry-parametrar för kommandoradsläge

Följande parametrar är tillgängliga i vanligt kommandoradsläge:

Parameter Beskrivning Kommentarer
-n <name> Fråga det specifika målet
  • Det här är den enda obligatoriska parametern för kommandoradsläge.
  • Namnvärdet>< representerar namnet eller IP-adressen för datorn som ska frågas. Det här värdet får inte innehålla blanksteg.
-p <protocol> Använd det angivna protokollet
  • Protokollvärdet>< representerar typen av port att fråga (möjliga värden är tcp, udpeller both).
  • Standardvärdet är tcp.
-e <port_number> Ange målporten (kallas även "slutpunkt")
  • Värdet <port_number> representerar porten som ska frågas på måldatorn.
  • Standardvärdet är 80.
-o <port_number>,<port_number> Ange flera målportar i en sekvens Värdena <port_number,port_number>>< representerar kommaavgränsade lista med portnummer som ska frågas i en sekvens. Använd inte blanksteg runt kommatecken.
-r <port_number>:<port_number> Ange ett intervall med målportar
  • Värdena <port_number>:<port_number> representerar portnumren för start och slut, avgränsade med ett kolon. Använd inte blanksteg runt kolonet.
  • Startportnumret måste vara mindre än portnumret som slutar.
-l <filename.txt> Generera en loggfil
  • Värdet <filename.txt> representerar loggfilens namn och tillägg. Det här värdet får inte innehålla blanksteg.
  • När kommandot körs skapar PortQry loggfilen i katalogen där den är installerad.
  • Om filen redan finns ber PortQry dig att bekräfta att du vill skriva över den (såvida du inte också använder parametern -y ).
-y Skriv över föregående loggfil
  • När du använder -y tillsammans med -lskriver PortQry över den befintliga loggfilen utan att du uppmanas att bekräfta åtgärden.
  • Om PortQry-kommandosträngen inte innehåller -lignorerar -yPortQry .
-sl Vänta extra tid på svar (kallas även långsam länkfördröjning) Använd den här parametern för att fördubbla den tid som PortQry väntar på ett svar från en UDP-port innan PortQry fastställer att porten INTE lyssnar eller att den är FILTRERAD. När du frågar efter långsamma eller otillförlitliga nätverkslänkar kan den normala väntetiden vara för kort för att få ett svar.
-nr Hoppa över uppslag för omvänd namn
  • När du använder -n för att ange en IP-adress för måldatorn gör PortQry som standard en omvänd namnsökning för att matcha IP-adressen till ett namn. Den här processen kan vara tidskrävande, särskilt om PortQry inte kan matcha IP-adressen. Använd -nr för att hoppa över det här steget i frågan.
  • Om du använder -n för att ange en dator eller ett domännamn ignorerar -nrPortQry .
-sp <port_number> Fråga från en specifik källport
  • Värdet <port_number> representerar den port som PortQry använder för att skicka frågan.
  • PortQry kan inte använda en port som en annan process redan använder. Om porten som du anger redan används returnerar PortQry följande felmeddelande:
    Det går inte att använda angiven källport.
    Porten används redan.
    Ange en port som inte används och kör kommandot igen.
  • I följande fall använder PortQry den angivna porten för det första testet av frågan, men inte det andra testet:
    • RPC (TCP- och UDP-portar 135)
    • LDAP (UDP-port 389)
    • Statusfråga för NetBIOS-kort (UDP-port 137)
    I dessa fall använder PortQry en tillfällig port för det andra testet. När detta inträffar registrerar PortQry "Using ephemeral source port" (Använda tillfällig källport) i sina utdata.
  • Om datorn där PortQry är installerad också kör IPSec-principagenten kanske UDP-port 500 inte är tillgänglig för användning som källport. Om du tillfälligt vill inaktivera IPSec-principagenten så att du kan använda port 500 kör net stop PolicyAgentdu . När du är klar med testningen kör du net start PolicyAgent.
-cn !<community_name>! Fråga en SNMP-community
  • Värdet <community_name> representerar namnet på den SNMP-community som ska frågas. Du måste avgränsa det här värdet med hjälp av utropstecken, som du ser i den vänstra kolumnen.
  • Om SNMP-tjänsten inte lyssnar på målporten ignorerar -cnPortQry .
  • Standardnamnet för communityn är public.
-q Kör PortQry i tyst läge
  • När du använder -qutelämnar PortQry alla skärmutdata förutom felmeddelanden.
  • Om du vill se andra utdata än felmeddelanden använder du -q tillsammans med -l. PortQry registrerar normala utdata i loggfilen.
  • Om det redan finns en loggfil och du använder -q tillsammans med -lskriver PortQry över den befintliga loggfilen utan att fråga dig.
  • Du kan inte använda -q tillsammans med -o, -reller -p both.
  • Den här parametern är särskilt användbar när du använder en batchfil för att köra en PortQry-kommandosträng.

Kommentarer för parametrar i kommandoradsläge

  • Ett portnummervärde måste vara ett giltigt portnummer mellan 1 och 65535, inklusive.
  • Parametrarna -e, -ooch -r utesluter varandra. Ett enda PortQry-kommando kan bara använda en av dessa parametrar.
  • En fråga till UDP-port 389 (LDAP) kanske inte fungerar mot domänkontrollanter som kör Windows Server 2008. Om du vill kontrollera tillgängligheten för tjänsten som körs på UDP-port 389 kan du använda Nltest i stället för PortQry. Mer information finns i Nltest.
  • När du frågar efter port 135 (RPC) med hjälp -e av eller -oreturnerar PortQry alla slutpunkter som för närvarande är registrerade med RPC-slutpunktsmapparen.

    Viktigt

    När du använder -rfrågar inte PortQry RPC-slutpunktsmapparen.

  • När du frågar efter port 53 (DNS) skickar PortQry en DNS-fråga för portqry.microsoft.com med hjälp av både TCP och UDP. Om servern returnerar ett svar avgör PortQry att porten är LISTENING.

    Obs!

    Det är inte viktigt om DNS-servern returnerar ett positivt eller negativt svar. Alla svar anger att porten lyssnar.

Använda PortQry i lokalt läge (kommandorad)

I stället för att fråga en port på en fjärrmåldator kan du använda PortQry i lokalt läge för att få detaljerad information om TCP-portarna och UDP-portarna på den lokala dator där PortQry körs. Använd följande syntax för att köra PortQry i lokalt läge:

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

Platshållarna i den här syntaxen förklaras i följande tabell med parametrar för lokalt läge:

Parameter Beskrivning Kommentarer
-local Hämta lokal information
  • Räkna upp alla TCP- och UDP-portmappningar som för närvarande är aktiva på den lokala datorn. Dessa utdata liknar de utdata som netstat.exe -an kommandot genererar.
  • På datorer som stöder PID-till-port-mappningar innehåller utdata PID för processen som använder porten på den lokala datorn. Om du använder det utförliga alternativet (-v) innehåller utdata även namnen på de tjänster som PID:et tillhör och visar en lista över alla moduler som processen har läst in. Du kan använda den här informationen för att avgöra vilka portar som är associerade med ett visst program eller en viss tjänst som körs på datorn.
-wport <port_number> Bevaka port
  • Övervaka en specifik port för ändringar. Värdet <port_number> representerar porten som ska övervakas.
  • När det gäller en TCP-port rapporterar PortQry ändringar mellan följande tillstånd:
    • CLOSE_WAIT
    • STÄNGT
    • ETABLERADE
    • FIN_WAIT_1
    • LAST_ACK
    • LYSSNA
    • SYN_RECEIVED
    • SYN_SEND
    • TIMED_WAIT
  • För UDP-portar rapporterar PortQry om ett program är bundet till porten, men det rapporterar inte om UDP-porten tar emot datagram.
  • Tryck på Esc om du vill avbryta övervakningen.
-wpid <pid> Titta på process-ID (PID)
  • Övervaka en specifik PID för ändringar i antalet och tillståndet för anslutningar. Värdet <process_number> representerar pid som ska övervakas.
  • Tryck på Esc om du vill avbryta övervakningen.
-wt <seconds> Kontrollera med ett visst intervall
  • Kontrollera statusen för det mål som identifieras av -wport eller "-wpid med det intervall som representeras av värdet /<seconds> .
  • Sekundvärdet < måste vara mellan en och 1 200 (inklusive).>
  • Standardvärdet är 60.
  • Du kan inte använda -wt sig själv eller tillsammans med -local.
-l <filename.txt> Generera en loggfil
  • Värdet <filename.txt> representerar loggfilens namn och tillägg. Det här värdet får inte innehålla blanksteg.
  • När kommandot körs skapar PortQry loggfilen i katalogen där den är installerad.
  • Om filen redan finns ber PortQry dig att bekräfta att du vill skriva över den (såvida du inte också använder parametern -y ).
-y Skriv över föregående loggfil
  • När du använder -y tillsammans med -lskriver PortQry över den befintliga loggfilen utan att du uppmanas att bekräfta åtgärden.
  • Om PortQry-kommandosträngen inte innehåller -lignorerar -yPortQry .
-v Skapa utförliga utdata PortQry innehåller ytterligare information om skärmutdata (och till loggfilen, om den används).

Kommentarer för parametrar i lokalt läge

  • Parametrarna -local, -wportoch -wpid utesluter varandra. Du kan bara använda en av dessa parametrar i en enda PortQry-kommandosträng.
  • Parametern -q fungerar inte i lokalt läge.
  • I vissa fall kan PortQry rapportera att systemets inaktiva process (PID 0) använder vissa TCP-portar. Det här beteendet kan inträffa om ett lokalt program ansluter till en TCP-port och sedan stoppas. Även om programmet inte längre körs kan programmets TCP-anslutning till porten lämnas i tillståndet "Timed Wait" i flera minuter. I så fall kan PortQry identifiera att porten används, men den kan inte identifiera programmet som använder porten eftersom PID har släppts. Som standard förblir porten i tillståndet "Timed Wait" i dubbelt så lång tid som den maximala segmentlivslängden.
  • För varje process rapporterar PortQry så mycket information som den kan komma åt. Åtkomst till viss information är begränsad. Åtkomst till modulinformation för processer för inaktivitet och CSRSS är till exempel förbjuden eftersom deras åtkomstbegränsningar hindrar kod på användarnivå från att öppna dem. För bästa resultat kör du kommandot lokalt läge i kontexten för den lokala administratören eller för ett konto som har liknande autentiseringsuppgifter.
  • När du använder antingen -wport eller -wpid tillsammans med -lanvänder du Esc-tangenten för att avbryta och avsluta PortQry i stället för CTRL+C. Du måste trycka på Esc för att se till att PortQry stänger loggfilen och avslutas korrekt. Om du trycker på CTRL+C i stället för Esc för att stoppa PortQry kan loggfilen bli tom eller skadad.

Använda PortQry i interaktivt läge

När du felsöker anslutningsproblem mellan datorer kan du behöva skriva många repetitiva kommandon. Sådana åtgärder kan göras enklare genom att använda PortQry i interaktivt läge.

Interaktivt läge liknar de interaktiva funktionerna i Nslookup DNS-verktyget eller i WINS-verktyget Nblookup.

Om du vill starta PortQry i interaktivt läge använder du parametern -i . Kör till exempel följande kommando:

portqry -i

Utdata från det här kommandot liknar följande utdrag:

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)
>

Kommandon för interaktivt läge

Du kan använda följande kommandon i interaktivt läge:

Kommando Beskrivning Kommentarer
node <name> eller n <name> Ställ in målet på fråga
  • Namnvärdet>< representerar namnet eller IP-adressen för datorn som ska frågas. Det här värdet får inte innehålla blanksteg.
  • Standardvärdet är 127.0.0.1 (den lokala datorn).
query eller q Skicka fråga
  • Frågar det aktuella målet med hjälp av de aktuella inställningarna.
  • Standardprotokollet är tcp.
  • Standardmålporten är TCP-port 80.
  • Standardkällans port är port 0 (en tillfällig port).
  • Du kan använda en av flera genvägar med query kommandot för att köra någon av flera vanliga frågor. En lista över tillgängliga genvägar finns i Frågegenvägar för interaktivt läge.
set <option>=<value> Ange värdet för ett frågealternativ
  • I det här kommandot < representerar alternativet> namnet på alternativet för att ange och <värdet> representerar det nya värdet för alternativet.
  • Om du vill se en lista över de aktuella värdena för de tillgängliga alternativen anger du set all.
  • En lista över tillgängliga alternativ finns i Alternativ för interaktivt läge.
exit Lämna interaktivt läge

Frågegenvägar för interaktivt läge

Du kan använda följande genvägar tillsammans med query kommandot för att köra vanliga frågor utan att behöva ange port- och protokollalternativ. Använd följande syntax:

q <shortcut>

Obs!

I det här kommandot < representerar genvägen> en av genvägarna från följande tabell. Om du utelämnar genvägen q frågar kommandot TCP-port 80.

Genväg Portar att köra frågor mot
dns TCP-port 53, UDP-port 53.
ftp TCP-port 21
imap TCP-port 143
ipsec UDP-port 500
isa TCP-port 1745, UDP-port 1745
ldap TCP-port 389, UDP-port 389
l2tp UDP-port 1701
mail TCP-portarna 25, 110 och 143
pop3 TCP-port 110
rpc TCP-port 135, UDP-port 135
smtp TCP-port 25
snmp UDP-port 161
sql TCP-port 1433, UDP-port 1434
tftp UDP-port 69

Att till exempel ange q dns i interaktivt läge motsvarar körning portqry -n 127.0.0.1 -p both -e 135 i vanligt kommandoradsläge.

Alternativ för interaktivt läge

Du kan använda set kommandot för att ange alternativ, till exempel källporten eller långsam länkfördröjning. Använd följande syntax:

set <option>=<value>

Obs!

I det här kommandot < representerar alternativet> namnet på alternativet som ska anges, och <värdet> representerar det nya värdet för alternativet.

Alternativ Beskrivning Kommentarer
set all Visa de aktuella värdena för alternativ
set port=<port_number>
set e=<port_number>
Ange målporten Värdet <port_number> representerar porten som ska frågas på måldatorn.
set sport=<port_number>
set sp=<port_number>
Ange källporten
  • Värdet <port_number> representerar den port som PortQry använder för att skicka frågan.
  • PortQry kan inte använda en port som en annan process redan använder.
  • Om du anger ett portnummer på noll använder PortQry en tillfällig port.
set protocol=<protocol>
set p=<protocol>
Ange vilket protokoll som ska användas Protokollvärdet>< representerar typen av port som ska frågas (tcp, udp, eller both).
set cn=<community_name> Ange en SNMP-community
  • Värdet <community_name> representerar namnet på den SNMP-community som ska frågas.
  • Om SNMP-tjänsten inte lyssnar på målporten ignorerar -cnPortQry .
  • Standardnamnet för communityn är public.
set nr Inaktivera eller aktivera omvänd namnsökning
  • Om du som standard har angett en IP-adress som frågemål matchar PortQry IP-adressen till ett namn. Om du ändrar det här alternativet hoppar PortQry över namnmatchningssteget.
  • Om du vill aktivera omvänd namnsökning igen kör du set nr en andra gång.
set sl Aktivera eller inaktivera långsam länkfördröjning
  • Om du ändrar det här alternativet fördubblar PortQry hur lång tid det väntar på ett svar från en UDP-port innan PortQry fastställer att porten inte lyssnar eller att den är FILTRERAd. När du frågar efter långsamma eller otillförlitliga nätverkslänkar kan den normala väntetiden vara för kort för att få ett svar.
  • Om du vill inaktivera långsam länkfördröjning igen kör set sl du en andra gång.

Anta att du vill fråga en dator som har IP-adressen 10.0.1.10. I kommandotolken för interaktivt läge anger du n 10.0.1.10. Det här kommandot genererar utdata som liknar följande utdrag:

Default Node: 10.0.1.10

>

Om du vill skicka en DNS-fråga anger du q dns i kommandotolken för interaktivt läge. Det här kommandot genererar utdata som liknar följande utdrag:

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

>

Anpassa associationen mellan portar och tjänster

Som standard har varje Windows-baserad dator en tjänstfil som finns i mappen %SYSTEMROOT%\System32\Drivers\Etc . PortQry använder den här filen för att matcha portnummer med motsvarande tjänstnamn. PortQry använder den här informationen för att välja format för sina frågor. Du kan redigera den här filen för att dirigera PortQry för att skicka formaterade meddelanden till en alternativ port. Följande post visas till exempel i en typisk tjänstfil:

ldap              389/tcp                           #Lightweight Directory Access Protocol

Du kan redigera den här portposten eller lägga till ytterligare en post. Om du vill tvinga PortQry att skicka LDAP-frågor till port 1025 ändrar du posten enligt följande:

ldap              1025/tcp                           #Lightweight Directory Access Protocol

Exempel

Följande exempel visar hur du använder PortQry och dess parametrar:

Lokalt läge

Kommandoradsläge

Fråga den lokala datorn

Utdata från portqry -local liknar följande utdrag:

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  

Fråga den lokala datorn när åtkomsten kan vara begränsad

När du kör PortQry i lokalt läge, som i föregående exempel, kan du se utdata som liknar följande utdrag. Sådana utdata anger att säkerhetskontexten som PortQry använder inte har tillräcklig behörighet för att få åtkomst till all information som begärdes.

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

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

Övervaka ett process-ID med ett specifikt intervall

Följande kommando övervakar en specifik process:

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

Därför vidtar PortQry följande åtgärder:

  • Identifierar processen med 1276 PID och kontrollerar statusen för portarna som den använder varannan sekund tills du trycker på Esc.
  • Skapar loggfilen pid.txt. Om det redan finns en fil med det namnet uppmanar PortQry dig att bekräfta att du vill skriva över filen.
  • Registrerar eventuella utdata i loggfilen, inklusive de extra utförliga utdata.

Innehållet i loggfilen liknar följande utdrag:

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)

Ange ett mål och protokoll

Obs!

Vart och ett av exemplen i det här avsnittet frågar port 80, standardporten.

Följande kommando frågar standard-TCP-porten på en dator som anges med hjälp av dess fullständigt kvalificerade domännamn (FQDN):

portqry -n myDomainController.example.com -p tcp

Följande kommando frågar udp-standardporten på en dator som anges med hjälp av dess datornamn:

portqry -n myServer -p udp

Följande kommando frågar standardportarna för TCP och UDP för en dator som anges med hjälp av dess IP-adress:

portqry -n 192.168.1.20 -p both

Följande kommando kör samma fråga som föregående kommando, men hoppar över namnmatchningssteget:

portqry -n 192.168.1.20 -p both -nr

Följande kommando frågar standard-TCP-porten för en webbserver:

portqry -n www.widgets.microsoft.com

Ange en eller flera målportar

Följande kommando testar SMTP-tjänsten för en e-postserver genom att fråga TCP-port 25:

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

Följande kommando frågar TCP-port 60897 och UDP-port 60897 för en dator som har IP-adressen 192.168.1.20:

portqry -n 192.168.1.20 -p both -e 60897

Följande kommando frågar UDP-portarna 139, 1025 och 135 (i den sekvensen) på datorn "myServer":

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

Följande kommando frågar portintervallet från port 135 till port 139 (inklusive) på datorn "myServer":

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

Ange en loggfil för PortQry-utdata

Följande kommando frågar TCP-port 143 på mail.widgets.microsoft.com och registrerar utdata i portqry.txt-filen . Om filen redan finns skriver PortQry över den utan att be om bekräftelse.

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

Fråga via en långsam länk

Följande kommando frågar TCP-portarna 143, 110 och 25 på mail.widgets.microsoft.com. För varje målport väntar PortQry dubbelt så länge som vanligt på ett svar.

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

Ange en källport

Följande kommando använder UDP-port 3001 (om den är tillgänglig) på den lokala datorn för att skicka en fråga till UDP-port 53 på 192.168.1.20. Om en tjänst lyssnar på porten och svarar på frågan skickar den svaret till UDP-port 3001 på den lokala datorn.

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

Följande kommando använder UDP-port 3000 (om den är tillgänglig) på den lokala datorn för att skicka en fråga till UDP-port 389 på myDomainController.contoso.com. Som standard bör LDAP-tjänsten lyssna på den här porten. Om LDAP-tjänsten svarar på den första frågan använder PortQry en tillfällig källport för att skicka den formaterade frågan och ta emot svar.

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

Använda en batchfil för att köra PortQry i tyst läge

Följande text är ett exempel på en batchfil som kör PortQry i tyst läge:

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

När batchfilen körs skapar PortQry en loggfil med namnet pqlog.txt. Innehållet i den här filen liknar följande:

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 ========= 

Frågeport 135 (RPC-tjänst)

Följande kommando frågar UDP-port 135 på datorn myServer. Som standard bör RPC-tjänsten lyssna på den här porten.

portqry -n myServer -p udp -e 135

Därför vidtar PortQry följande åtgärder:

  • PortQry använder tjänstfilen i mappen %SYSTEMROOT%\System32\Drivers\Etc för att matcha UDP-port 135 till en tjänst. Med standardkonfigurationen löser PortQry porten till RPC-slutpunktsmappningstjänsten (Epmap).
  • PortQry skickar ett oformaterat användardatagram till UDP-port 135 på måldatorn.
    PortQry får inget svar från målporten. Det beror på att RPC-slutpunktsmappningstjänsten endast svarar på en korrekt formaterad RPC-fråga. PortQry rapporterar att porten är LYSSNAR eller FILTRERAD.
  • PortQry skapar en korrekt formaterad RPC-fråga som begär alla slutpunkter som för närvarande är registrerade med RPC-slutpunktsmapparen. PortQry skickar den här frågan till UDP-port 135 på måldatorn.
  • Beroende på svaret vidtar PortQry någon av följande åtgärder:
    • Om PortQry tar emot ett svar på den här frågan returnerar PortQry hela svaret till användaren och rapporterar att porten är LISTENING.
    • Om PortQry inte får något svar på den här frågan rapporterar den att porten är FILTRERAD.
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

Från dessa utdata kan du avgöra inte bara om tjänsten lyssnar på porten, utan även vilka tjänster eller program som är registrerade med RPC-slutpunktsmappningsdatabasen på måldatorn. Utdata innehåller den universella unika identifieraren (UUID) för varje program, det kommenterade namnet (om det finns ett), protokollet som varje program använder, nätverksadressen som programmet är bundet till och programmets slutpunkt inom hakparenteser.

Obs!

När du anger -r alternativet i PortQry-kommandot för att genomsöka ett portintervall frågar PortQry inte RPC-slutpunktsmapparen efter slutpunktsinformation. Den här parametern påskyndar genomsökningen av ett portintervall.