PortQry - narzędzie do sprawdzania dostępności portów TCP / UDP w systemie Windows

Pomimo faktu, że Windows ma wiele narzędzi do diagnozowania problemów w sieciach TCP / IP (ping, telnet, ścieżki itp.), Nie wszystkie z nich pozwalają wygodnie sprawdzić status lub skanować otwarte porty sieciowe na zdalnym serwerze. Utility Portqry.exe to wygodne narzędzie do sprawdzania dostępności portów TCP / UDP na zdalnym serwerze podczas diagnozowania problemów związanych z funkcjonowaniem różnych usług, a także obecności zapór i zapór w sieciach TCP / IP. Najczęściej narzędzie Portqry jest używane jako bardziej funkcjonalny zamiennik telnetu, a w przeciwieństwie do telnetu, umożliwia także sprawdzanie otwartych portów UDP.

Treść

  • Używamy PortQry do skanowania otwartych portów UDP i TCP.
  • Status zaawansowanych usług sieciowych w PortQry
  • GUI dla Portqry

Używamy PortQry do skanowania otwartych portów UDP i TCP.

Pierwsza wersja Portqry dla Windows Server 2003 nie działa poprawnie z nowszymi systemami operacyjnymi (Windows Server 2008 i nowszymi), więc druga wersja narzędzia została później wydana PortQryV2). To jest ta wersja, której należy dziś użyć (narzędzie PortQryV2 można pobrać z linku).

W systemie Windows 10 możesz zainstalować portqry za pomocą menedżera pakietów Chokolatey:

choco install portqry

Pobierz i rozpakuj archiwum PortQryV2.exe. Uruchom wiersz poleceń i przejdź do katalogu z narzędziem, na przykład:

cd c: \ tools \ PortQryV2

Aby sprawdzić dostępność serwera DNS od klienta, musisz sprawdzić, czy 53 porty TCP i UDP są na nim otwarte. Format polecenia sprawdzania dostępności portu na serwerze zdalnym jest następujący:

PortQry -n serwer [protokół -p] [-e || -r || -o punktów końcowych]

-n - nazwa lub adres IP serwera, dla którego należy sprawdzić dostęp
-e -  numer portu do sprawdzenia (od 1 do 65535)
-r - zakres portów do sprawdzenia (np. 1:80)
-p - Jaki protokół służy do sprawdzenia. Może to być TCP, UDP lub OBA (domyślnie używany jest TCP).

Uwaga. W przeciwieństwie do polecenia cmdlet Test-NetConnection programu PowerShell, którego można używać tylko do sprawdzania dostępności portów TCP, PortQry obsługuje zarówno protokoły TCP, jak i UDP..

W naszym przykładzie polecenie będzie wyglądać tak:

PortQry.exe -n 10.1.10.6 -p oba -e 53

Narzędzie Portqry dla każdego określonego portu zwróci jeden z trzech stanów dostępności:

  • Słuchanie - oznacza, że ​​określony port jest dostępny (akceptuje połączenia), otrzymano od niego odpowiedź;
  • Nie Słuchanie - Proces (usługa), który akceptuje połączenia na określonym porcie, nie działa w systemie docelowym. Portqry otrzymał odpowiedź ICMP „Miejsce docelowe nieosiągalne - Port nieosiągalny” podczas sprawdzania portu UDP lub pakietu TCP z flagą Reset;
  • Filered - Narzędzie PortQry nie otrzymało odpowiedzi z określonego portu lub odpowiedź została przefiltrowana. Tj. w systemie docelowym ten port albo nie nasłuchuje, albo dostęp do niego jest ograniczony zaporą ogniową lub ustawieniami systemu. Domyślnie porty TCP są odpytywane 3 razy, a UDP jest odpytywany jeden.

W naszym przykładzie serwer DNS jest dostępny od klienta przez TCP i UDP.

Port TCP 53 (usługa domeny): SŁUCHANIE Port UDP 53 (usługa domeny): SŁUCHANIE

Za pomocą atrybutu -o, Możesz określić kolejność portów, które chcesz skanować:

portqry -n 10.1.10.6 -p tcp -o 21,110,143

Następujące polecenie przeskanuje zakres „niskich” portów TCP i zwróci listę dostępnych portów, które akceptują połączenia (narzędzie działa w trybie skanera otwartych portów):

portqry -n 10.1.10.6 -r 1: 1024 | znajdź „: LISTENING”

Możesz zapisać wyniki skanowania otwartych portów w pliku tekstowym:

portqry -n 10.1.10.6 -p tcp -r 20: 500 -l logfile.txt

Narzędzie portqry ma tryb interaktywny:

portqry -i

Teraz po pytaniu PortQry Interactive Mode możesz podać nazwę zdalnego komputera i portu.

węzeł srv-lic
ustaw port = 80

Aby sprawdzić port na określonym serwerze, kliknij q i Enter.

Za pomocą argumentów -Wport i -wpid Możesz monitorować stan określonego portu (wport) lub wszystkich portów powiązanych z określonym procesem (wpid) na hoście lokalnym.

Na przykład następujące polecenie sprawdzi dostępność określonego portu lokalnego przez 10 minut (na przykład port RDP 3389), a jeśli zmieni się jego status, powiadomi o tym administratora (szczegółowy dziennik będzie dostępny w pliku LogFile.txt). Aby zatrzymać monitorowanie, kliknij Ctrl-c:

portqry -wport 3389 -wt 600 -l LogFile.txt -y -v

Możesz uzyskać informacje o otwartych portach i aktywnych połączeniach TCP / UDP na komputerze lokalnym:

portqry.exe -lokalny

Status zaawansowanych usług sieciowych w PortQry

PortQry zapewnia wbudowaną obsługę niektórych usług sieciowych. Są to LDAP, zdalne wywołania procedur (RPC), protokoły pocztowe (SMTP, POP3 i IMAP4), SNMP, FTP / TFTP, usługa nazw NetBIOS, L2TP i inne. Oprócz sprawdzania dostępności tych standardowych portów tych usług, narzędzie wykonuje żądania specyficzne dla protokołu w celu uzyskania statusu usługi.

Na przykład za pomocą następującego zapytania nie tylko sprawdzimy dostępność usługi mapowania punktów końcowych RPC (TCP / 135), ale także uzyskamy listę nazw punktów końcowych RPC zarejestrowanych w systemie (w tym ich nazwę, UUID, adres, do którego są przyłączeni oraz aplikację, wraz z które są połączone).

portqry -n 10.1.10.6 -p tcp -e 135

Port TCP 135 (usługa epmap): SŁUCHANIE Korzystanie z efemerycznego portu źródłowego Zapytanie do bazy danych programu mapującego punkty końcowe ... Odpowiedź serwera: UUID: d95afe72-a6d5-4259-822e-2c84da1ddb0d ncacn_ip_tcp: 10.1.10.6 [49152] UUID: 897e215f-93c fd2277495c27 Usługa Frs2 ncacn_ip_tcp: 10.1.10.6 [5722] UUID: 6b5bd21e-528c-422c-af8c-a4079be4fe48 Zdalne API Fw ncacn_ip_tcp: 10.1.10.6 [63006] UUID: 123456723c 10.1.10.6 [63006] UUID: 367abb81-9844-35f1-ad32-91f038001003 ncacn_ip_tcp: 10.1.10.6 [63002] UUID: 50abc2a3-574d-40b3-1d66-ee4fd5fba076 ncacn_ip_tcp: 10.1.10.6 [56020] ... UUID: 3c4428c5-f0ab -448b-bda1-6ce01eb0a6d5 Klient DHCP LRPC Endpoint ncacn_ip_tcp: 10.1.10.6 [49153] Całkowita liczba znalezionych punktów końcowych: 61 ==== Odpowiedź na zapytanie RPP Endpoint Mapper ==== portqry.exe -n 10.1.10.6 -e 135 - p TCP kończy pracę z kodem powrotu 0x00000000.

Lub możesz sprawdzić dostępność i odpowiedź z usługi SQL Server Browser na Microsoft SQL Server:

PortQry.exe -n msk-sql1 -e 1434 -p UDP

Port UDP 1434 (usługa ms-sql-m): SŁUCHANIE lub FILTROWANIE Wysyłanie zapytania programu SQL Server do portu UDP 1434 ... Odpowiedź serwera: Nazwa_serwera MSK-SQL01 InstancjaNazwa MSSQLSERVER IsClustered Nie Wersja 15.0.2000.5 tcp 53200 Nazwa serwera MSK-SQL01 InstancjaNazwa BANKDB IsClustered Nie Wersja 15.0.2000.5 tcp 1433 ==== Odpowiedź na zapytanie SQL Server ==== Port UDP 1434 SŁUCHA SIĘ

Jak widać, narzędzie portqry pokazało nie tylko dostępność portu UDP, ale także wersję serwera SQL oraz nazwy instancji działających na serwerze SQL i ich portach TCP (jedna instancja BANKDB mieszka na domyślnym porcie tcp 1433, druga MSSQLSERVER używa stałego portu z zakresu RPC 53200 ).

Możesz sondować port SNMP na urządzeniu, określając nazwę społeczności:
portqry -n host2 -cn! bezpieczny! -e 161 -p udp

Podczas sprawdzania portu 25 na serwerze SMTP możesz uzyskać baner powitalny serwera:

portqry -n domena.mail.ru -p tcp -e 25

GUI dla Portqry

Początkowo Portqry było wyłącznie narzędziem konsolowym. Dla wygody użytkowników, którzy nie są przyjaźni z wierszem poleceń, Microsoft opracował prosty interfejs graficzny dla narzędzia portqry - PortQueryUI. PortQueryUI można pobrać z witryny pobierania firmy Microsoft http://download.microsoft.com/download/3/f/4/3f4c6a54-65f0-4164-bdec-a3411ba24d3a/PortQryUI.exe

PortQueryUI jest zasadniczo graficznym dodatkiem do portqry, który tworzy linię poleceń i zwraca wynik do okna graficznego.

Ponadto PortQueryUI zawiera kilka predefiniowanych zestawów zapytań, aby sprawdzić dostępność popularnych usług Microsoft:

  • Domena i relacje zaufania (sprawdzanie usług na kontrolerze domeny Active Directory)
  • IP Sec
  • Networking
  • SQL Server
  • Serwer WWW
  • Serwer Exchange
  • Spotkanie netto

Myślę, że nie ma potrzeby dawania specjalnych komentarzy do interfejsu PortQueryUI. Wszystko powinno być jasne z poniższego zrzutu ekranu. Wprowadź nazwę DNS lub adres IP serwera, wybierz jedną ze wstępnie zdefiniowanych usług (Zapytaj wstępnie zdefiniowaną usługę) lub określ numery portów do ręcznej weryfikacji (Ręcznie wprowadź porty zapytań) i kliknij przycisk Zapytanie.

Możliwe kody odpowiedzi w PortQueryUI (podświetlone na zrzucie ekranu):

  • 0 (0x00000000) - oznacza, że ​​połączenie zostało pomyślnie nawiązane i port jest dostępny;
  • 1 (0x00000001) - określony port jest niedostępny lub filtrowany;
  • 2) (0x00000002 jest normalnym kodem powrotu podczas sprawdzania połączenia UDP, ponieważ odpowiedź ACK nie jest zwracana.