Udostępnij za pośrednictwem


Korzystanie z narzędzia wiersza polecenia PortQry

PortQry to narzędzie wiersza polecenia, którego można użyć do rozwiązywania problemów z łącznością TCP/IP. To narzędzie zgłasza stan docelowych portów PROTOKOŁU TCP i UDP (User Datagram Protocol) na komputerze lokalnym lub na komputerze zdalnym. Zawiera również szczegółowe informacje o użyciu portów komputera lokalnego.

Ponieważ portQry ma być używany jako narzędzie do rozwiązywania problemów, użytkownicy, którzy używają go do rozwiązywania konkretnego problemu, powinni mieć wystarczającą wiedzę na temat środowiska obliczeniowego.

PortQry można użyć z wiersza polecenia w jednym z kilku trybów:

  • Tryb wiersza polecenia. Ten tryb umożliwia rozwiązywanie problemów z komputerami lokalnymi lub zdalnymi.
  • Tryb lokalny. W tym trybie można użyć kilku parametrów przeznaczonych do rozwiązywania problemów z komputerem lokalnym.
  • Tryb interaktywny. Podobnie jak w trybie wiersza polecenia, ale można użyć skrótów poleceń i parametrów.

Uwaga 16.

Możesz pobrać oddzielne narzędzie o nazwie PortQryUI, które zawiera graficzny interfejs użytkownika dla portQry. PortQryUI ma kilka funkcji, które mogą ułatwić korzystanie z usługi PortQry. Aby uzyskać narzędzie PortQryUI, zobacz PortQryUI — interfejs użytkownika dla skanera portów wiersza polecenia PortQry.

Dotyczy: Obsługiwane wersje systemu Windows

Testy i wyniki portQry

Typowe narzędzia do skanowania portów zgłaszają, że port ma stan NASŁUCHIWANIA , jeśli docelowy port UDP nie zwraca komunikatu Internet Control Message Protocol (ICMP) "Destination unreachable". Ten wynik może nie być dokładny z jednego lub obu następujących powodów:

  • Jeśli nie ma odpowiedzi na skierowany datagram, port docelowy może być FILTROWANY.
  • Większość usług nie odpowiada na niesformatowany datagram użytkownika, który jest do nich wysyłany. Zazwyczaj usługa lub program, który nasłuchuje portu, odpowiada tylko na komunikat, który używa określonej warstwy sesji lub protokołu warstwy aplikacji.

Aby uzyskać dokładniejsze i przydatne wyniki, usługa PortQry korzysta z dwuetapowego procesu testowania.

Krok 1. Test stanu portu

PortQry zgłasza stan portu jako jedną z trzech wartości:

  • NASŁUCHIWANIE: Ta odpowiedź wskazuje, że proces nasłuchuje na porcie docelowym. PortQry otrzymał odpowiedź z portu docelowego.
  • NIE SŁUCHAJ: Ta odpowiedź wskazuje, że żaden proces nie nasłuchuje na porcie docelowym. PortQry odebrał jeden z następujących komunikatów ICMP z portu docelowego:

    Port docelowy jest niemożliwy do osiągnięcia

  • FILTROWANE: Ta odpowiedź wskazuje, że port docelowy jest filtrowany. PortQry nie otrzymał odpowiedzi z portu docelowego. Proces może lub nie nasłuchuje na porcie docelowym. Domyślnie portQry wysyła zapytanie do portu TCP trzy razy przed zwróceniem odpowiedzi FILTERED i wysyła zapytanie do portu UDP raz przed zwróceniem odpowiedzi FILTERED.

Krok 2. Wyspecjalizowane testy

Jeśli nie ma odpowiedzi z docelowego portu UDP, portQry zgłasza, że port nasłuchuje lub FILTRUJE. Jednak podczas rozwiązywania problemu z łącznością warto wiedzieć, czy port jest filtrowany, czy nasłuchuje. Dotyczy to szczególnie środowiska zawierającego co najmniej jedną zaporę.

PortQry uściśli raport o stanie portu przy użyciu drugiego zestawu testów, który może wchodzić w interakcje z usługą lub programem nasłuchujący na porcie docelowym. W tym teście usługa PortQry wykonuje następujące czynności:

  • PortQry używa pliku usług, który znajduje się w folderze %SYSTEMROOT%\System32\Drivers\Etc , aby określić, która usługa nasłuchuje na każdym porcie.
  • PortQry tworzy komunikat, który jest specjalnie skonstruowany dla oczekiwanej usługi lub programu, a następnie wysyła ten komunikat do portu docelowego. W zależności od usługi lub programu komunikat może zażądać informacji przydatnych do rozwiązywania problemów, takich jak:
    • Informacje o domenie i kontrolerze domeny (zapytania LDAP)
    • Zarejestrowane usługi klienta i porty (zapytania RPC)
    • Czy dostęp anonimowy jest dozwolony (zapytania FTP)
    • Adres MAC (zapytania NetBIOS)
    • Mspclnt.ini informacje o pliku (zapytania serwera ISA)
  • PortQry analizuje, formatuje, a następnie zwraca odpowiedź z usługi lub programu w ramach raportu testowego.

Dodatkowe testy do rozwiązywania problemów z komputerem lokalnym

Jeśli musisz rozwiązać problemy z portami na komputerze, na którym zainstalowano portQry, użyj polecenia PortQry w trybie lokalnym. W przypadku korzystania z parametrów trybu lokalnego w wierszu polecenia można wykonywać zadania, takie jak następujące na komputerze lokalnym:

  • Wyliczanie mapowań portów
  • Monitorowanie określonego portu pod kątem zmian
  • Monitorowanie określonego procesu pod kątem zmian

Aby uzyskać więcej informacji, zobacz Używanie portuQry w trybie lokalnym (wiersza polecenia).

Używanie usługi PortQry w trybie wiersza polecenia

PortQry można uruchomić w wierszu polecenia w taki sam sposób, jak w przypadku dowolnego innego narzędzia wiersza polecenia. Większość przykładów w tym artykule przedstawia polecenia wiersza polecenia PortQry. W trybie wiersza polecenia można dodać wiele opcji do ciągu polecenia, aby określić, które zapytanie ma zostać uruchomione i jak go uruchomić. Aby uruchomić portQry w trybie wiersza polecenia, uruchom polecenie, które używa następującej składni:

portqry.exe -n <name_to_query> [options]

Uwaga 16.

W tym poleceniu <name_to_query> jest adresem IP, nazwą komputera lub domeną do wykonywania zapytań. Ten parametr jest wymagany. [opcje] to parametry opcjonalne.

Parametry portQry dla trybu wiersza polecenia

Następujące parametry są dostępne w zwykłym trybie wiersza polecenia:

Parametr Opis Komentarze
-n <name> Wykonywanie zapytań względem określonego miejsca docelowego
  • Jest to jedyny wymagany parametr dla trybu wiersza polecenia.
  • Wartość <nazwy> reprezentuje nazwę lub adres IP komputera do wykonywania zapytania. Ta wartość nie może zawierać spacji.
-p <protocol> Użyj określonego protokołu
  • Wartość <protokołu> reprezentuje typ portu do zapytania (możliwe wartości to tcp, udplub both).
  • Domyślna wartość to tcp.
-e <port_number> Określ port docelowy (znany również jako "punkt końcowy")
  • <Wartość port_number> reprezentuje port do wykonywania zapytań na komputerze docelowym.
  • Domyślna wartość to 80.
-o <port_number>,<port_number> Określanie wielu portów docelowych w sekwencji Wartości <port_number,port_number>>< reprezentują rozdzielaną przecinkami listę numerów portów do wykonywania zapytań w sekwencji. Nie używaj spacji wokół przecinków.
-r <port_number>:<port_number> Określanie zakresu portów docelowych
  • Wartości <port_number>:<port_number> reprezentują numery portów początkowych i końcowych oddzielone dwukropkiem. Nie używaj spacji wokół dwukropka.
  • Numer portu początkowego musi być mniejszy niż numer portu końcowego.
-l <filename.txt> Generowanie pliku dziennika
  • Wartość <filename.txt> reprezentuje nazwę i rozszerzenie pliku dziennika. Ta wartość nie może zawierać spacji.
  • Po uruchomieniu polecenia portQry tworzy plik dziennika w katalogu, w którym jest zainstalowany.
  • Jeśli plik już istnieje, portQry prosi o potwierdzenie, że chcesz go zastąpić (chyba że używasz również parametru -y ).
-y Zastąp poprzedni plik dziennika
  • W przypadku użycia -y razem z poleceniem -lPortQry zastępuje istniejący plik dziennika bez monitowania o potwierdzenie akcji.
  • Jeśli ciąg polecenia PortQry nie zawiera -lparametru , polecenie PortQry ignoruje wartość -y.
-sl Poczekaj dodatkowy czas odpowiedzi (znany również jako opóźnienie powolnego łącza) Użyj tego parametru, aby podwoić czas oczekiwania portQry na odpowiedź z portu UDP przed portem PortQry określa, że port nie nasłuchuje lub czy jest FILTROWANY. W przypadku wykonywania zapytań dotyczących wolnych lub zawodnych łączy sieciowych normalny czas oczekiwania może być zbyt krótki, aby otrzymać odpowiedź.
-nr Pomiń wyszukiwanie odwrotnej nazwy
  • Domyślnie podczas -n określania adresu IP komputera docelowego usługa PortQry wykonuje wyszukiwanie odwrotnej nazwy w celu rozpoznania adresu IP na nazwę. Ten proces może być czasochłonny, zwłaszcza jeśli usługa PortQry nie może rozpoznać adresu IP. Użyj polecenia -nr , aby pominąć ten krok zapytania.
  • Jeśli używasz -n polecenia do określenia nazwy komputera lub domeny, portQry ignoruje wartość -nr.
-sp <port_number> Zapytanie z określonego portu źródłowego
  • Wartość <port_number> reprezentuje port używany przez usługę PortQry do wysyłania zapytania.
  • PortQry nie może użyć portu, którego używa już inny proces. Jeśli określony port jest już używany, portQry zwraca następujący komunikat o błędzie:
    Nie można użyć określonego portu źródłowego.
    Port jest już używany.
    Określ port, który nie jest używany, i ponownie uruchom polecenie.
  • W następujących przypadkach portQry używa określonego portu dla pierwszego testu zapytania, ale nie drugiego testu:
    • RPC (porty TCP i UDP 135)
    • LDAP (port UDP 389)
    • Zapytanie o stan adaptera NetBIOS (port UDP 137)
    W takich przypadkach portQry używa portu efemerycznego dla drugiego testu. W takim przypadku portQry rejestruje w danych wyjściowych wartość "Using ephemeral source port" (Używanie efemerycznego portu źródłowego).
  • Jeśli na komputerze, na którym zainstalowano portQry, jest również uruchomiony agent zasad PROTOKOŁU IPSec, port UDP 500 może być niedostępny do użycia jako port źródłowy. Aby tymczasowo wyłączyć agenta zasad IPSec, aby można było użyć portu 500, uruchom polecenie net stop PolicyAgent. Po zakończeniu testowania uruchom polecenie net start PolicyAgent.
-cn !<community_name>! Wykonywanie zapytań dotyczących społeczności SNMP
  • Wartość <community_name> reprezentuje nazwę społeczności SNMP do wykonywania zapytań. Tę wartość należy rozdzielić przy użyciu wykrzyknika, jak pokazano w lewej kolumnie.
  • Jeśli usługa SNMP nie nasłuchuje na porcie docelowym, portQry ignoruje wartość -cn.
  • Domyślna nazwa społeczności to public.
-q Uruchamianie usługi PortQry w trybie cichym
  • W przypadku używania polecenia -qportQry pomija wszystkie dane wyjściowe ekranu z wyjątkiem komunikatów o błędach.
  • Aby wyświetlić dane wyjściowe inne niż komunikaty o błędach, użyj polecenia -q razem z -l. PortQry rejestruje normalne dane wyjściowe w pliku dziennika.
  • Jeśli plik dziennika już istnieje i używasz -q go razem z poleceniem -l, program PortQry zastępuje istniejący plik dziennika bez monitowania.
  • Nie można używać -q razem z -o, -rlub -p both.
  • Ten parametr jest szczególnie przydatny, gdy używasz pliku wsadowego do uruchamiania ciągu polecenia PortQry.

Uwagi dotyczące parametrów w trybie wiersza polecenia

  • Dowolna wartość numeru portu musi być prawidłowym numerem portu z zakresu od 1 do 65535 włącznie.
  • Parametry -e, -oi -r wzajemnie się wykluczają. Jedno polecenie PortQry może używać tylko jednego z tych parametrów.
  • Zapytanie do portu UDP 389 (LDAP) może nie działać na kontrolerach domeny z systemem Windows Server 2008. Aby sprawdzić dostępność usługi uruchomionej na porcie UDP 389, możesz użyć narzędzia Nltest zamiast portu PortQry. Aby uzyskać więcej informacji, zobacz Nltest.
  • Podczas wykonywania zapytania względem portu 135 (RPC) przy użyciu metody lub -oportQry zwraca wszystkie punkty końcowe, które są obecnie zarejestrowane za pomocą -e mapowania punktu końcowego RPC.

    Ważne

    W przypadku korzystania z -rprogramu portQry nie wysyła zapytań do mapera punktu końcowego RPC.

  • Podczas wykonywania zapytania o port 53 (DNS) usługa PortQry wysyła zapytanie DNS zarówno portqry.microsoft.com przy użyciu protokołu TCP, jak i UDP. Jeśli serwer zwraca odpowiedź, portQry określa, że port nasłuchuje.

    Uwaga 16.

    Nie ważne jest, czy serwer DNS zwraca odpowiedź dodatnią, czy negatywną. Każda odpowiedź wskazuje, że port nasłuchuje.

Używanie protokołu PortQry w trybie lokalnym (wiersza polecenia)

Zamiast wykonywać zapytania dotyczące portu na zdalnym komputerze docelowym, można użyć portQry w trybie lokalnym, aby uzyskać szczegółowe informacje o portach TCP i portach UDP na komputerze lokalnym, na którym działa portQry. Użyj następującej składni, aby uruchomić usługę PortQry w trybie lokalnym:

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

Symbole zastępcze w tej składni zostały wyjaśnione w poniższej tabeli parametrów trybu lokalnego:

Parametr Opis Komentarze
-local Pobieranie informacji lokalnych
  • Wylicza wszystkie mapowania portów TCP i UDP, które są obecnie aktywne na komputerze lokalnym. Te dane wyjściowe są podobne do danych wyjściowych generowanych przez netstat.exe -an polecenie.
  • Na komputerach obsługujących mapowania piD-to-port dane wyjściowe zawierają identyfikator PID procesu, który korzysta z portu na komputerze lokalnym. Jeśli używasz pełnej opcji (-v), dane wyjściowe zawierają również nazwy usług, do których należy piD, i wyświetla listę wszystkich modułów załadowanych przez proces. Te informacje umożliwiają określenie, które porty są skojarzone z określonym programem lub usługą uruchomioną na komputerze.
-wport <port_number> Port czujki
  • Monitoruj określony port pod kątem zmian. <Wartość port_number> reprezentuje port do monitorowania.
  • W przypadku portu TCP usługa PortQry zgłasza zmiany między następującymi stanami:
    • CLOSE_WAIT
    • ZAMKNIĘTE
    • USTANOWIONE
    • FIN_WAIT_1
    • LAST_ACK
    • SŁUCHAĆ
    • SYN_RECEIVED
    • SYN_SEND
    • TIMED_WAIT
  • W przypadku portów UDP portQry zgłasza, czy program jest powiązany z portem, ale nie zgłasza, czy port UDP odbiera datagramy.
  • Aby zatrzymać monitorowanie, naciśnij Esc.
-wpid <pid> Identyfikator procesu obserwowanego (PID)
  • Monitoruj określony identyfikator PID pod kątem zmian liczby i stanu połączeń. <Wartość process_number> reprezentuje piD do monitorowania.
  • Aby zatrzymać monitorowanie, naciśnij Esc.
-wt <seconds> Sprawdzanie w określonym interwale
  • Sprawdź stan obiektu docelowego, który jest identyfikowany przez -wport lub w interwale reprezentowanym przez wartość /<seconds>."-wpid
  • Wartość <sekund> musi należeć do przedziału od 1 do 1200 (włącznie).
  • Domyślna wartość to 60.
  • Nie można używać -wt jej samodzielnie ani razem z -localprogramem .
-l <filename.txt> Generowanie pliku dziennika
  • Wartość <filename.txt> reprezentuje nazwę i rozszerzenie pliku dziennika. Ta wartość nie może zawierać spacji.
  • Po uruchomieniu polecenia portQry tworzy plik dziennika w katalogu, w którym jest zainstalowany.
  • Jeśli plik już istnieje, portQry prosi o potwierdzenie, że chcesz go zastąpić (chyba że używasz również parametru -y ).
-y Zastąp poprzedni plik dziennika
  • W przypadku użycia -y razem z poleceniem -lPortQry zastępuje istniejący plik dziennika bez monitowania o potwierdzenie akcji.
  • Jeśli ciąg polecenia PortQry nie zawiera -lparametru , polecenie PortQry ignoruje wartość -y.
-v Tworzenie pełnych danych wyjściowych PortQry udostępnia dodatkowe szczegóły danych wyjściowych ekranu (i do pliku dziennika, jeśli jest używany).

Uwagi dotyczące parametrów w trybie lokalnym

  • Parametry -local, -wporti -wpid wzajemnie się wykluczają. Można użyć tylko jednego z tych parametrów w jednym ciągu polecenia PortQry.
  • Parametr -q nie działa w trybie lokalnym.
  • W niektórych przypadkach usługa PortQry może zgłosić, że proces bezczynności systemu (PID 0) używa niektórych portów TCP. To zachowanie może wystąpić, jeśli program lokalny łączy się z portem TCP, a następnie zatrzymuje się. Mimo że program nie jest już uruchomiony, połączenie TCP programu z portem może pozostać w stanie "Czas oczekiwania" przez kilka minut. W takim przypadku portQry może wykryć, że port jest używany, ale nie może zidentyfikować programu korzystającego z portu, ponieważ identyfikator PID został zwolniony. Domyślnie port pozostaje w stanie "Czas oczekiwania" przez dwa razy więcej niż maksymalny okres istnienia segmentu.
  • W przypadku każdego procesu usługa PortQry raportuje tyle informacji, ile może uzyskać dostęp. Dostęp do niektórych informacji jest ograniczony. Na przykład dostęp do informacji o module dla procesów bezczynności i CSRSS jest zabroniony, ponieważ ich ograniczenia dostępu uniemożliwiają otwieranie kodu na poziomie użytkownika. Aby uzyskać najlepsze wyniki, uruchom polecenie trybu lokalnego w kontekście administratora lokalnego lub konta, które ma podobne poświadczenia.
  • Jeśli używasz -wport Esc lub -wpid razem z -lprogramem , użyj Esc, aby przerwać i zamknąć portQry zamiast CTRL+C. Należy nacisnąć Esc, aby upewnić się, że portQry poprawnie zamyka plik dziennika i kończy działanie. Jeśli naciśnij CTRL+C zamiast Esc, aby zatrzymać portQry, plik dziennika może stać się pusty lub uszkodzony.

Używanie usługi PortQry w trybie interaktywnym

Podczas rozwiązywania problemów z łącznością między komputerami może być konieczne wpisywanie wielu powtarzających się poleceń. Takie akcje można łatwiej wykonać przy użyciu usługi PortQry w trybie interaktywnym.

Tryb interaktywny jest podobny do funkcji interaktywnych w narzędziu DNS Nslookup lub w narzędziu Nblookup WINS.

Aby uruchomić portQry w trybie interaktywnym, użyj parametru -i . Na przykład uruchom następujące polecenie:

portqry -i

Dane wyjściowe tego polecenia przypominają następujący fragment:

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

Polecenia trybu interaktywnego

W trybie interaktywnym można użyć następujących poleceń:

Polecenie opis Komentarze
node <name> lub n <name> Ustawianie miejsca docelowego na zapytanie
  • Wartość <nazwy> reprezentuje nazwę lub adres IP komputera do wykonywania zapytania. Ta wartość nie może zawierać spacji.
  • Wartość domyślna to 127.0.0.1 (komputer lokalny).
query lub q Wyślij zapytanie
  • Wysyła zapytanie do bieżącego miejsca docelowego przy użyciu bieżących ustawień.
  • Domyślnym protokołem jest tcp.
  • Domyślny port docelowy to port TCP 80.
  • Domyślny port źródłowy to port 0 (port efemeryczny).
  • Możesz użyć jednego z kilku skrótów z poleceniem query , aby uruchomić dowolne z kilku typowych zapytań. Aby uzyskać listę dostępnych skrótów, zobacz Skróty zapytań w trybie interaktywnym.
set <option>=<value> Ustawianie wartości opcji zapytania
  • W tym poleceniu <opcja> reprezentuje nazwę opcji ustawiania, a< wartość> reprezentuje nową wartość opcji.
  • Aby wyświetlić listę bieżących wartości dostępnych opcji, wprowadź .set all
  • Aby uzyskać listę dostępnych opcji, zobacz Opcje trybu interaktywnego.
exit Pozostaw tryb interaktywny

Skróty zapytań w trybie interaktywnym

Poniższe skróty można używać razem z poleceniem query , aby uruchamiać typowe zapytania bez konieczności ustawiania opcji portów i protokołów. Użyj następującej składni:

q <shortcut>

Uwaga 16.

W tym poleceniu <skrót> reprezentuje jeden ze skrótów z poniższej tabeli. Jeśli pominiesz skrót, q polecenie wysyła zapytanie do portu TCP 80.

Skrót Porty do zapytania
dns Port TCP 53, port UDP 53.
ftp Port TCP 21
imap Port TCP 143
ipsec Port UDP 500
isa Port TCP 1745, port UDP 1745
ldap Port TCP 389, port UDP 389
l2tp Port UDP 1701
mail Porty TCP 25, 110 i 143
pop3 Port TCP 110
rpc Port TCP 135, port UDP 135
smtp Port TCP 25
snmp Port UDP 161
sql Port TCP 1433, port UDP 1434
tftp Port UDP 69

Na przykład wprowadzanie q dns w trybie interaktywnym jest równoważne uruchamianiu portqry -n 127.0.0.1 -p both -e 135 w zwykłym trybie wiersza polecenia.

Opcje trybu interaktywnego

Możesz użyć set polecenia , aby ustawić opcje, takie jak port źródłowy lub powolne opóźnienie łącza. Użyj następującej składni:

set <option>=<value>

Uwaga 16.

W tym poleceniu <opcja> reprezentuje nazwę opcji do ustawienia, a< wartość> reprezentuje nową wartość opcji.

Opcja Opis Komentarze
set all Wyświetlanie bieżących wartości opcji
set port=<port_number>
set e=<port_number>
Określanie portu docelowego <Wartość port_number> reprezentuje port do wykonywania zapytań na komputerze docelowym.
set sport=<port_number>
set sp=<port_number>
Określanie portu źródłowego
  • Wartość <port_number> reprezentuje port używany przez usługę PortQry do wysyłania zapytania.
  • PortQry nie może użyć portu, którego używa już inny proces.
  • Jeśli określisz numer portu zero, portQry używa efemerycznego portu.
set protocol=<protocol>
set p=<protocol>
Określanie protokołu do użycia Wartość <protokołu> reprezentuje typ portu do zapytania (tcp, udp, lub both).
set cn=<community_name> Określanie społeczności SNMP
  • Wartość <community_name> reprezentuje nazwę społeczności SNMP do wykonywania zapytań.
  • Jeśli usługa SNMP nie nasłuchuje na porcie docelowym, portQry ignoruje wartość -cn.
  • Domyślna nazwa społeczności to public.
set nr Wyłączanie lub włączanie wyszukiwania odwrotnej nazwy
  • Domyślnie, jeśli ustawiono adres IP jako miejsce docelowe zapytania, portQry rozpoznaje adres IP na nazwę. Jeśli zmienisz tę opcję, portQry pomija krok rozpoznawania nazw.
  • Aby ponownie włączyć wyszukiwanie nazwy odwrotnej, uruchom set nr polecenie po raz drugi.
set sl Włącz lub wyłącz wolne opóźnienie łącza
  • Jeśli zmienisz tę opcję, portQry podwoi czas oczekiwania na odpowiedź z portu UDP, zanim port PortQry ustali, że port nie nasłuchuje lub że jest FILTROWANY. W przypadku wykonywania zapytań dotyczących wolnych lub zawodnych łączy sieciowych normalny czas oczekiwania może być zbyt krótki, aby otrzymać odpowiedź.
  • Aby ponownie wyłączyć powolne opóźnienie łącza, uruchom set sl polecenie po raz drugi.

Załóżmy, że chcesz wykonać zapytanie dotyczące komputera, który ma adres IP 10.0.1.10. W wierszu polecenia trybu interaktywnego wprowadź .n 10.0.1.10 To polecenie generuje dane wyjściowe podobne do następującego fragmentu:

Default Node: 10.0.1.10

>

Aby wysłać zapytanie DNS, wprowadź w q dns wierszu polecenia trybu interaktywnego. To polecenie generuje dane wyjściowe podobne do następującego fragmentu:

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

>

Dostosowywanie skojarzenia między portami i usługami

Domyślnie każdy komputer z systemem Windows ma plik usług znajdujący się w folderze %SYSTEMROOT%\System32\Drivers\Etc . PortQry używa tego pliku do rozpoznawania numerów portów odpowiadających im nazw usług. PortQry używa tych informacji do wybierania formatu zapytań. Możesz edytować ten plik, aby skierować portQry do wysyłania sformatowanych komunikatów do alternatywnego portu. Na przykład następujący wpis pojawia się w typowym pliku usług:

ldap              389/tcp                           #Lightweight Directory Access Protocol

Możesz edytować ten wpis portu lub dodać dodatkowy wpis. Aby wymusić wysyłanie zapytań LDAP do portu 1025, zmodyfikuj wpis w następujący sposób:

ldap              1025/tcp                           #Lightweight Directory Access Protocol

Przykłady

W poniższych przykładach pokazano, jak używać usługi PortQry i jego parametrów:

Tryb lokalny

Tryb wiersza polecenia

Wykonywanie zapytań względem komputera lokalnego

Dane wyjściowe funkcji portqry -local przypominają następujący fragment:

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  

Wykonywanie zapytań dotyczących komputera lokalnego, gdy dostęp może być ograniczony

Po uruchomieniu usługi PortQry w trybie lokalnym, podobnie jak w poprzednim przykładzie, mogą zostać wyświetlone dane wyjściowe podobne do poniższego fragmentu. Takie dane wyjściowe wskazują, że kontekst zabezpieczeń używany przez usługę PortQry nie ma wystarczających uprawnień dostępu do wszystkich żądanych informacji.

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

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

Monitorowanie identyfikatora procesu przy użyciu określonego interwału

Następujące polecenie monitoruje określony proces:

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

W związku z tym usługa PortQry wykonuje następujące akcje:

  • Identyfikuje proces z 1276 identyfikatorem PID i sprawdza stan portów używanych co dwie sekundy do naciśnięcia Esc.
  • Tworzy plik dziennika pid.txt. Jeśli plik o tej nazwie już istnieje, polecenie PortQry wyświetli monit o potwierdzenie, że chcesz zastąpić plik.
  • Rejestruje wszystkie dane wyjściowe w pliku dziennika, w tym dodatkowe pełne dane wyjściowe.

Zawartość pliku dziennika przypomina następujący fragment:

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)

Określanie obiektu docelowego i protokołu

Uwaga 16.

Każdy z przykładów w tej sekcji wysyła zapytanie do portu 80, portu domyślnego.

Następujące polecenie wysyła zapytanie do domyślnego portu TCP na komputerze określonym przy użyciu w pełni kwalifikowanej nazwy domeny (FQDN):

portqry -n myDomainController.example.com -p tcp

Następujące polecenie wysyła zapytanie do domyślnego portu UDP na komputerze określonym przy użyciu jego nazwy komputera:

portqry -n myServer -p udp

Następujące polecenie wysyła zapytanie do domyślnych portów TCP i UDP komputera określonego przy użyciu jego adresu IP:

portqry -n 192.168.1.20 -p both

Następujące polecenie uruchamia to samo zapytanie co poprzednie polecenie, ale pomija krok rozpoznawania nazw:

portqry -n 192.168.1.20 -p both -nr

Następujące polecenie wysyła zapytanie do domyślnego portu TCP serwera internetowego:

portqry -n www.widgets.microsoft.com

Określ co najmniej jeden port docelowy

Następujące polecenie testuje usługę SMTP serwera poczty, wykonując zapytanie o port TCP 25:

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

Następujące polecenie wysyła zapytanie do portu TCP 60897 i portu UDP 60897 komputera, który ma adres IP 192.168.1.20:

portqry -n 192.168.1.20 -p both -e 60897

Następujące polecenie wysyła zapytania do portów UDP 139, 1025 i 135 (w tej sekwencji) na komputerze "myServer":

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

Następujące polecenie wysyła zapytanie do zakresu portów z portu 135 do portu 139 (włącznie) na komputerze "myServer":

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

Określanie pliku dziennika dla danych wyjściowych portQry

Następujące polecenie wysyła zapytanie do portu TCP 143 na mail.widgets.microsoft.com i rejestruje dane wyjściowe w pliku portqry.txt . Jeśli plik już istnieje, portQry zastępuje go bez monitowania o potwierdzenie.

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

Wykonywanie zapytań za pośrednictwem powolnego łącza

Następujące polecenie wysyła zapytania do portów TCP 143, 110 i 25 na mail.widgets.microsoft.com. Dla każdego portu docelowego portQry czeka dwa razy dłużej niż zwykle w przypadku odpowiedzi.

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

Określanie portu źródłowego

Następujące polecenie używa portu UDP 3001 (jeśli jest dostępny) na komputerze lokalnym, aby wysłać zapytanie do portu UDP 53 na 192.168.1.20. Jeśli usługa nasłuchuje na tym porcie i odpowiada na zapytanie, wysyła odpowiedź na port UDP 3001 na komputerze lokalnym.

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

Następujące polecenie używa portu UDP 3000 (jeśli jest dostępny) na komputerze lokalnym w celu wysłania zapytania do portu UDP 389 na myDomainController.contoso.com. Domyślnie usługa LDAP powinna nasłuchiwać na tym porcie. Jeśli usługa LDAP odpowiada na pierwsze zapytanie, portQry używa efemerycznego portu źródłowego do wysyłania sformatowanego zapytania i odbierania odpowiedzi.

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

Uruchamianie usługi PortQry w trybie cichym przy użyciu pliku wsadowego

Poniższy tekst jest przykładem pliku wsadowego, który uruchamia usługę PortQry w trybie cichym:

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

Po uruchomieniu tego pliku wsadowego portQry tworzy plik dziennika o nazwie pqlog.txt. Zawartość tego pliku przypomina następującą zawartość:

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

Wykonywanie zapytań o port 135 (usługa RPC)

Następujące polecenie wysyła zapytanie do portu UDP 135 na komputerze myServer. Domyślnie usługa RPC powinna nasłuchiwać na tym porcie.

portqry -n myServer -p udp -e 135

W związku z tym usługa PortQry wykonuje następujące akcje:

  • PortQry używa pliku Usług w folderze %SYSTEMROOT%\System32\Drivers\Etc w celu rozpoznania portu UDP 135 do usługi. Przy użyciu konfiguracji domyślnej portQry rozpoznaje port do usługi mapowania punktu końcowego RPC (Epmap).
  • PortQry wysyła niesformatowany datagram użytkownika do portu UDP 135 na komputerze docelowym.
    PortQry nie odbiera odpowiedzi z portu docelowego. Dzieje się tak, ponieważ usługa mapowania punktu końcowego RPC odpowiada tylko na poprawnie sformatowane zapytanie RPC. PortQry zgłasza, że port NASŁUCHUJE lub FILTROWANY.
  • PortQry tworzy poprawnie sformatowane zapytanie RPC, które żąda wszystkich punktów końcowych, które są obecnie zarejestrowane za pomocą mapowania punktu końcowego RPC. PortQry wysyła to zapytanie do portu UDP 135 na komputerze docelowym.
  • W zależności od odpowiedzi usługa PortQry wykonuje jedną z następujących akcji:
    • Jeśli usługa PortQry otrzyma odpowiedź na to zapytanie, funkcja PortQry zwróci całą odpowiedź użytkownikowi i zgłosi, że port nasłuchuje.
    • Jeśli usługa PortQry nie otrzyma odpowiedzi na to zapytanie, zgłasza, że port jest FILTROWANY.
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

Z tych danych wyjściowych można określić nie tylko, czy usługa nasłuchuje na porcie, ale także usług lub programów zarejestrowanych w bazie danych mapera punktów końcowych RPC na komputerze docelowym. Dane wyjściowe zawierają uniwersalny unikatowy identyfikator (UUID) dla każdego programu, nazwę adnotacji (jeśli istnieje), protokół używany przez każdy program, adres sieciowy, z którego jest powiązany program, oraz punkt końcowy programu w nawiasach kwadratowych.

Uwaga 16.

Po określeniu -r opcji w poleceniu PortQry w celu skanowania zakresu portów portQry nie wysyła zapytań do mapera punktu końcowego RPC dla informacji o punkcie końcowym. Ten parametr przyspiesza skanowanie zakresu portów.