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 TCP i User Datagram Protocol (UDP) 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 określonego problemu, powinni mieć wystarczającą wiedzę na temat środowiska obliczeniowego.

Możesz użyć narzędzia PortQry 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, które są przeznaczone do rozwiązywania problemów z komputerem lokalnym.
  • Tryb interaktywny. Podobnie jak w przypadku trybu wiersza polecenia, można jednak użyć poleceń skrótów i parametrów.

Uwaga

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

Dotyczy: Obsługiwane wersje systemu Windows

Testy i wyniki usługi PortQry

Typowe narzędzia do skanowania portów donoszą, że port ma stan nasłuchiwania , jeśli docelowy port UDP nie zwraca komunikatu "Miejsce docelowe nieosiągalne" protokołu ICMP (Internet Control Message Protocol). 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 program danych użytkownika, który jest do niego 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 bardziej użyteczne wyniki, portQry używa 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 NASŁUCHIWANIE: 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:

    Nieosiągalny port docelowy

  • 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, zanim zwróci odpowiedź FILTROWANE i wysyła zapytanie do portu UDP jeden raz, zanim zwróci odpowiedź FILTROWANE.

Krok 2. Testy wyspecjalizowane

Jeśli nie ma odpowiedzi z docelowego portu UDP, portQry zgłasza, że port nasłuchuje lub filtruje. Jednak w przypadku rozwiązywania problemu z łącznością warto wiedzieć, czy port jest filtrowany, czy nasłuchuje. Jest to szczególnie prawdziwe w środowisku zawierającym co najmniej jedną zaporę.

PortQry uściśla swój raport o stanie portu przy użyciu drugiego zestawu testów, które mogą wchodzić w interakcje z usługą lub programem, który nasłuchuje na porcie docelowym. W przypadku tego testu portQry wykonuje następujące czynności:

  • PortQry używa pliku usług znajdującego 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 i porty klienta (zapytania RPC)
    • Czy dostęp anonimowy jest dozwolony (zapytania FTP)
    • Adres MAC (zapytania NetBIOS)
    • Mspclnt.ini informacji o pliku (zapytania serwera ISA)
  • PortQry analizuje, formatuje, a następnie zwraca odpowiedź z usługi lub programu w ramach raportu testowego.

Dodatkowe testy rozwiązywania problemów z komputerem lokalnym

Jeśli musisz rozwiązać problemy z portami na komputerze, na którym zainstalowano portQry, użyj narzędzia 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 Using PortQry in local (command-line) mode (Using PortQry in local (command-line) mode (Korzystanie z portqry w trybie lokalnym (wiersz polecenia).

Używanie narzędzia PortQry w trybie wiersza polecenia

PortQry można uruchomić w wierszu polecenia w taki sam sposób jak każde inne narzędzie wiersza polecenia. W większości przykładów w tym artykule przedstawiono polecenia portqry wiersza polecenia. W trybie wiersza polecenia można dodać wiele opcji do ciągu polecenia, aby określić, jakie zapytanie ma zostać uruchomione i jak je uruchomić. Aby uruchomić narzędzie PortQry w trybie wiersza polecenia, uruchom polecenie, które używa następującej składni:

portqry.exe -n <name_to_query> [options]

Uwaga

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

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 zapytań. Ta wartość nie może zawierać spacji.
-p <protocol> Korzystanie z określonego protokołu
  • Wartość <protokołu> reprezentuje typ portu do zapytania (możliwe wartości to tcp, udplub both).
  • Wartość domyślna 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.
  • Wartość domyślna 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ą początkowe i końcowe numery portów rozdzielone 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 -lprogramem PortQry zastępuje istniejący plik dziennika bez monitowania o potwierdzenie akcji.
  • Jeśli ciąg polecenia PortQry nie zawiera -lpolecenia , portQry ignoruje -ywartość .
-sl Zaczekaj dodatkowy czas na odpowiedź (nazywaną również powolnym opóźnieniem połączenia) Użyj tego parametru, aby podwoić czas oczekiwania przez port PortQry na odpowiedź z portu UDP, zanim port PortQry określi, że port nie nasłuchuje lub 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 określania -n adresu IP dla komputera docelowego portQry wykonuje wyszukiwanie odwrotnej nazwy, aby rozpoznać adres IP jako nazwę. Ten proces może być czasochłonny, zwłaszcza jeśli portQry nie może rozpoznać adresu IP. Użyj polecenia -nr , aby pominąć ten krok zapytania.
  • Jeśli używasz do -n określenia nazwy komputera lub domeny, portQry ignoruje -nr.
-sp <port_number> Zapytanie z określonego portu źródłowego
  • Wartość <port_number> reprezentuje port używany przez port PortQry do wysyłania zapytania.
  • PortQry nie może używać portu, którego używa już inny proces. Jeśli określony port jest już używany, funkcja 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 uruchom polecenie ponownie.
  • 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 karty NetBIOS (port UDP 137)
    W takich przypadkach portQry używa portu efemerycznego na potrzeby 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 port PortQry, działa również agent zasad PROTOKOŁU IPSec, port UDP 500 może nie być dostępny jako port źródłowy. Aby tymczasowo wyłączyć agenta zasad PROTOKOŁU 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ń do społeczności SNMP
  • Wartość <community_name> reprezentuje nazwę społeczności SNMP do wykonywania zapytań. Tę wartość należy rozdzielać przy użyciu wykrzykników, jak pokazano w lewej kolumnie.
  • Jeśli usługa SNMP nie nasłuchuje na porcie docelowym, portQry ignoruje -cn.
  • Domyślna nazwa społeczności to public.
-q Uruchamianie narzędzia PortQry w trybie cichym
  • W przypadku korzystania z 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 razem -q z elementem -l. PortQry rejestruje normalne dane wyjściowe w pliku dziennika.
  • Jeśli plik dziennika już istnieje i jest używany -q razem z -lprogramem , portQry zastępuje istniejący plik dziennika bez monitowania użytkownika.
  • Nie można używać razem -q z elementami -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

  • Każda wartość numeru portu musi być prawidłowym numerem portu z zakresu od 1 do 65535 włącznie.
  • Parametry -e, -oi -r wzajemnie się wykluczają. Pojedyncze 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 PortQry. Aby uzyskać więcej informacji, zobacz Nltest.
  • Podczas wykonywania zapytań dotyczących portu 135 (RPC) przy użyciu polecenia -e lub -ofunkcja PortQry zwraca wszystkie punkty końcowe, które są obecnie zarejestrowane w programie mapowania punktów końcowych RPC.

    Ważna

    W przypadku korzystania z narzędzia -rPortQry nie wykonuje zapytania dotyczącego mapowania punktu końcowego RPC.

  • Podczas wykonywania zapytania o port 53 (DNS) portQry wysyła zapytanie DNS za portqry.microsoft.com pomocą protokołu TCP i UDP. Jeśli serwer zwraca odpowiedź, PortQry określa, że port nasłuchuje.

    Uwaga

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

Korzystanie z narzędzia PortQry w trybie lokalnym (wiersz polecenia)

Zamiast wykonywać zapytania o port na zdalnym komputerze docelowym, możesz użyć narzędzia PortQry w trybie lokalnym, aby uzyskać szczegółowe informacje o portach TCP i portach UDP na komputerze lokalnym, na którym działa port PortQry. Użyj następującej składni, aby uruchomić narzędzie 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
  • Wylicz 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, które obsługują 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 identyfikator 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 zegarka
  • Monitorowanie określonego portu 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ĘTA
    • USTANOWIONE
    • FIN_WAIT_1
    • LAST_ACK
    • SŁUCHAĆ
    • ODEBRANO_SYN
    • SYN_SEND
    • TIMED_WAIT
  • W przypadku portów UDP port PortQry zgłasza, czy program jest powiązany z portem, ale nie zgłasza, czy port UDP odbiera datagramy.
  • Aby zatrzymać monitorowanie, naciśnij klawisz Esc.
-wpid <pid> Identyfikator procesu obserwacji (PID)
  • Monitorowanie określonego identyfikatora PID pod kątem zmian liczby i stanu połączeń. Wartość <process_number> reprezentuje identyfikator PID do monitorowania.
  • Aby zatrzymać monitorowanie, naciśnij klawisz Esc.
-wt <seconds> Sprawdzanie w określonym interwale
  • Sprawdź stan obiektu docelowego, który jest identyfikowany przez -wport lub "-wpid w interwale, który jest reprezentowany przez wartość /<seconds> .
  • Wartość <sekund> musi wynosić od jednego do 1200 (włącznie).
  • Wartość domyślna to 60.
  • Nie można używać samodzielnie ani razem z -localprogramem -wt .
-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 -lprogramem PortQry zastępuje istniejący plik dziennika bez monitowania o potwierdzenie akcji.
  • Jeśli ciąg polecenia PortQry nie zawiera -lpolecenia , portQry ignoruje -ywartość .
-v Tworzenie pełnych danych wyjściowych PortQry udostępnia dodatkowe szczegóły danych wyjściowych ekranu (i pliku dziennika, jeśli jest używany).

Uwagi dotyczące parametrów w trybie lokalnym

  • Parametry -local, -wporti -wpid wzajemnie się wykluczają. W jednym ciągu polecenia PortQry można użyć tylko jednego z tych parametrów.
  • Parametr -q nie działa w trybie lokalnym.
  • W niektórych przypadkach port PortQry może zgłaszać, że proces bezczynności systemu (PID 0) używa niektórych portów TCP. Takie zachowanie może wystąpić, jeśli program lokalny nawiązuje połączenie 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, który korzysta z portu, ponieważ został zwolniony identyfikator PID. Domyślnie port pozostaje w stanie "Czas oczekiwania" przez dwa razy dłużej niż maksymalny okres istnienia segmentu.
  • Dla każdego procesu portQry zgłasza 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 Idle 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 z podobnymi poświadczeniami.
  • Jeśli używasz polecenia -wport lub -wpid razem z -lprogramem , użyj klawisza Esc, aby przerwać i zamknąć portQry zamiast CTRL+C. Aby upewnić się, że portQry poprawnie zamyka plik dziennika i kończy pracę, naciśnij klawisz Esc. Jeśli naciśnijesz klawisze CTRL+C zamiast klawisza Esc, aby zatrzymać portQry, plik dziennika może stać się pusty lub uszkodzony.

Używanie narzędzia PortQry w trybie interaktywnym

W przypadku rozwiązywania problemów z łącznością między komputerami może być konieczne wpisanie wielu powtarzających się poleceń. Takie akcje można łatwiej wykonywać za pomocą narzędzia PortQry w trybie interaktywnym.

Tryb interaktywny jest podobny do funkcji interaktywnej w narzędziu Nslookup DNS 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 interakcyjnego

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

Polecenia Opis Komentarze
node <name> Lub n <name> Ustawianie miejsca docelowego na zapytanie
  • Wartość <nazwy> reprezentuje nazwę lub adres IP komputera do wykonywania zapytań. Ta wartość nie może zawierać spacji.
  • Wartość domyślna to 127.0.0.1 (komputer lokalny).
query Lub q Wysyłanie zapytania
  • 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 do ustawienia, < 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ń trybu interakcyjnego

Możesz użyć następujących skrótów razem z poleceniem query , aby uruchamiać typowe zapytania bez konieczności ustawiania opcji portów i protokołów. Należy stosować następującą składnię:

q <shortcut>

Uwaga

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

Skrótów 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 wprowadzenie w trybie interaktywnym q dns 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ć polecenia , set aby ustawić opcje, takie jak port źródłowy lub powolne opóźnienie łącza. Należy stosować następującą składnię:

set <option>=<value>

Uwaga

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 port PortQry do wysyłania zapytania.
  • PortQry nie może używać portu, którego używa już inny proces.
  • Jeśli określisz numer portu o wartości zero, port PortQry użyje portu efemerycznego.
set protocol=<protocol>
set p=<protocol>
Określanie protokołu do użycia Wartość <protokołu> reprezentuje typ portu do zapytania (tcp, udplub 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 -cn.
  • Domyślna nazwa społeczności to public.
set nr Wyłączanie lub włączanie wyszukiwania wstecznego nazwy
  • Domyślnie, jeśli adres IP został ustawiony jako miejsce docelowe zapytania, portQry rozpozna adres IP jako nazwę. Jeśli zmienisz tę opcję, portQry pominie krok rozpoznawania nazw.
  • Aby ponownie włączyć wyszukiwanie odwrotnej nazwy, uruchom po set nr raz drugi.
set sl Włączanie lub wyłączanie opóźnienia powolnego łącza
  • Jeśli zmienisz tę opcję, portQry podwoi czas oczekiwania na odpowiedź z portu UDP, zanim port PortQry określi, że port nie nasłuchuje lub 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 po raz drugi.

Załóżmy, że chcesz wysłać zapytanie do komputera z adresem IP 10.0.1.10. W wierszu polecenia trybu interakcyjnego 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 do odpowiadających im nazw usług. PortQry używa tych informacji, aby wybrać format swoich zapytań. Możesz edytować ten plik, aby skierować portQry do wysyłania sformatowanych komunikatów do alternatywnego portu. Na przykład w typowym pliku usług zostanie wyświetlony następujący wpis:

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 przez port PortQry, 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ć narzędzia PortQry i jego parametrów:

Tryb lokalny

Tryb wiersza polecenia

Wykonywanie zapytań na komputerze lokalnym

Dane wyjściowe są portqry -local podobne do następującego fragmentu:

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ń na komputerze lokalnym, gdy dostęp może być ograniczony

Po uruchomieniu narzędzia PortQry w trybie lokalnym, tak 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 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 portQry wykonuje następujące akcje:

  • Identyfikuje proces z identyfikatorem PID 1276 i sprawdza stan portów używanych co dwie sekundy do momentu naciśnięcia klawisza Esc.
  • Tworzy plik dziennika pid.txt. Jeśli plik o tej nazwie już istnieje, portQry wyświetli monit o potwierdzenie zastąpienia pliku.
  • 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

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

Następujące polecenie wykonuje zapytanie o domyślny port 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 wykonuje zapytanie dotyczące domyślnego portu UDP na komputerze określonym przy użyciu nazwy komputera:

portqry -n myServer -p udp

Następujące polecenie wykonuje zapytanie o domyślne porty 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 wykonuje zapytanie o domyślny port TCP serwera internetowego:

portqry -n www.widgets.microsoft.com

Określanie co najmniej jednego portu docelowego

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

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

Następujące polecenie wykonuje zapytania dotyczące portu TCP 60897 i portu UDP 60897 komputera z adresem IP 192.168.1.20:

portqry -n 192.168.1.20 -p both -e 60897

Następujące polecenie wykonuje zapytania dotyczące 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 wykonuje zapytanie o zakres portów od 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 linku

Następujące polecenie wykonuje zapytania dotyczące portów TCP 143, 110 i 25 na mail.widgets.microsoft.com. Dla każdego portu docelowego port PortQry czeka dwa razy dłużej niż zwykle na odpowiedź.

  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 w dniu 192.168.1.20. Jeśli usługa nasłuchuje na tym porcie i odpowiada na zapytanie, wysyła odpowiedź do portu 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, aby wysłać zapytanie 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

Używanie pliku wsadowego do uruchamiania narzędzia PortQry w trybie cichym

Poniższy tekst jest przykładem pliku wsadowego z systemem 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 jest podobna do następującej:

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

Zapytanie 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 portQry wykonuje następujące akcje:

  • PortQry używa pliku Usług w folderze %SYSTEMROOT%\System32\Drivers\Etc , aby rozpoznać port UDP 135 w usłudze. 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 filtruje.
  • PortQry tworzy poprawnie sformatowane zapytanie RPC, które żąda wszystkich punktów końcowych, które są obecnie zarejestrowane w mapowaniu punktu końcowego RPC. PortQry wysyła to zapytanie do portu UDP 135 na komputerze docelowym.
  • W zależności od odpowiedzi portQry wykonuje jedną z następujących akcji:
    • Jeśli PortQry otrzyma odpowiedź na to zapytanie, portQry zwraca całą odpowiedź do użytkownika i zgłasza, że port nasłuchuje.
    • Jeśli port PortQry nie otrzyma odpowiedzi na to zapytanie, raportuje, ż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, które usługi lub programy są rejestrowane w bazie danych mapowania punktów końcowych RPC na komputerze docelowym. Dane wyjściowe obejmują uniwersalny unikatowy identyfikator (UUID) dla każdego programu, nazwę z adnotowaną nazwą (jeśli istnieje), protokół używany przez każdy program, adres sieciowy powiązany z programem oraz punkt końcowy programu w nawiasach kwadratowych.

Uwaga

Po określeniu -r opcji w poleceniu PortQry do skanowania zakresu portów, PortQry nie wykonuje zapytania mapowania punktu końcowego RPC o informacje o punkcie końcowym. Ten parametr przyspiesza skanowanie zakresu portów.