PortQry - nástroj pro kontrolu dostupnosti portů TCP / UDP ze systému Windows

Přestože Windows má mnoho nástrojů pro diagnostiku problémů v sítích TCP / IP (ping, telnet, pathping atd.), Ne všechny vám umožní pohodlně zkontrolovat stav nebo prohledat otevřené síťové porty na vzdáleném serveru. Nástroj Portqry.exe je vhodný nástroj ke kontrole dostupnosti portů TCP / UDP na vzdáleném serveru při diagnostice problémů spojených s fungováním různých služeb a také přítomnosti firewallů a firewallů v sítích TCP / IP. Nástroj Portqry se nejčastěji používá jako funkční náhrada telnetu a na rozdíl od telnetu také umožňuje kontrolu otevřených portů UDP..

Obsah:

  • PortQry používáme ke skenování otevřených portů UDP a TCP.
  • Stav rozšířených síťových služeb v PortQry
  • GUI pro Portqry

PortQry používáme ke skenování otevřených portů UDP a TCP.

První verze Portqry pro Windows Server 2003 nepracuje správně s novějšími operačními systémy (Windows Server 2008 a vyšší), takže druhá verze nástroje byla později vydána PortQryV2. Je to tato verze, která by měla být použita dnes (můžete si stáhnout nástroj PortQryV2 z odkazu).

V systému Windows 10 můžete portqry nainstalovat pomocí správce balíčků Chokolatey:

choco install portqry

Stáhněte a rozbalte archiv PortQryV2.exe. Spusťte příkazový řádek a přejděte do adresáře s obslužným programem, například:

cd c: \ tools \ PortQryV2

Chcete-li zkontrolovat dostupnost serveru DNS z klienta, musíte zkontrolovat, zda je na něm otevřeno 53 portů TCP a UDP. Příkaz kontroly dostupnosti portu na vzdáleném serveru je následující:

PortQry -n server [-p protokol] [-e || -r || -o koncový bod (y)]

-n - název nebo IP adresa serveru, pro který musí být zkontrolován přístup
-e -  číslo portu ke kontrole (od 1 do 65535)
-r - rozsah portů ke kontrole (např. 1:80)
-str - Jaký protokol se používá ke kontrole. Může to být TCP, UDP nebo BOTH (standardně se používá TCP).

Poznámka:. Na rozdíl od rutiny PowerShell Test-NetConnection, kterou lze použít pouze ke kontrole dostupnosti portů TCP, PortQry podporuje protokoly TCP i UDP..

V našem příkladu bude příkaz vypadat takto:

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

Nástroj Portqry pro každý určený port vrátí jeden ze tří stavů dostupnosti:

  • Poslech - znamená, že zadaný port je k dispozici (přijímá připojení), od něj byla přijata odpověď;
  • Ne Poslech - Proces (služba), který přijímá připojení na zadaném portu, není v cílovém systému spuštěn. Portqry obdržel odpověď ICMP „Destination Unreachable - Port Unreachable“ při kontrole portu UDP nebo TCP paketu s příznakem Reset;
  • Filtrováno - Obslužný program PortQry neobdržel odpověď ze zadaného portu nebo byla odezva filtrována. I.e. v cílovém systému tento port buď neposlouchá, nebo je přístup k němu omezen bránou firewall nebo nastavením systému. Ve výchozím nastavení jsou TCP porty dotazovány třikrát a UDP je dotazován jeden.

V našem příkladu je server DNS přístupný z klienta přes TCP a UDP.

Port TCP 53 (služba domény): LISTENING Port UDP 53 (služba domény): LISTENING

Použití atributu -o, Můžete určit pořadí portů, které chcete prohledat:

portqry -n 10,1.10,6 -p tcp -o 21 110 143

Následující příkaz prohledá rozsah „nízkých“ portů TCP a vrátí seznam dostupných portů, které přijímají připojení (obslužný program pracuje v režimu skenování otevřených portů):

portqry -n 10.1.10.6 -r 1: 1024 | najít ": poslouchání"

Výsledky skenování otevřených portů můžete uložit do textového souboru:

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

Obslužný program portqry má interaktivní režim:

portqry -i

Nyní můžete na řádku Interaktivní režim PortQry zadat název vzdáleného počítače a portu.

uzel srv-lic
set port = 80

Chcete-li zkontrolovat port na zadaném serveru, klikněte na q a Enter.

Pomocí argumentů -brada a -wpid Můžete sledovat stav zadaného portu (wport) nebo všech portů přidružených k zadanému procesu (wpid) na místním hostiteli.

Například následující příkaz zkontroluje dostupnost zadaného lokálního portu do 10 minut (například RDP portu 3389) a pokud se jeho stav změní, upozorní na to správce (podrobný protokol bude k dispozici v souboru LogFile.txt). Chcete-li monitorování zastavit, klikněte na Ctrl-c:

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

Informace o otevřených portech a aktivních připojeních TCP / UDP v místním počítači získáte:

portqry.exe -lokální

Stav rozšířených síťových služeb v PortQry

PortQry poskytuje vestavěnou podporu pro některé síťové služby. Jsou to LDAP, Vzdálená volání procedur (RPC), poštovní protokoly (SMTP, POP3 a IMAP4), SNMP, FTP / TFTP, NetBIOS Name Service, L2TP a další. Kromě kontroly dostupnosti těchto standardních portů těchto služeb provádí obslužný program požadavky specifické pro protokol, aby získal stav služby.

Například pomocí následujícího dotazu nejen zkontrolujeme dostupnost mapovací služby koncových bodů RPC (TCP / 135), ale také získáme seznam názvů koncových bodů RPC registrovaných v systému (včetně jejich názvu, UUID, adresy, ke které jsou připojeny, a aplikace, s které jsou spojeny).

portqry -n 10.1.10.6 -p tcp -e 135

TCP port 135 (epmap service): LISTENING Použití efemérního zdrojového portu Querying Endpoint Mapper Database ... Reakce serveru: UUID: d95afe72-a6d5-4259-822e-2c84da1ddb0d ncacn_ip_tcp: 10.1.10.6 [49152] UUID: 897e215fc-93fc-93fc-93fc fd2277495c27 Služba Frs2 ncacn_ip_tcp: 10.1.10.6 [5722] UUID: 6b5bd21e-528c-422c-af8c-a4079be4fe48 Remote Fw API ncacn_ip_tcp: 10.1.10.6 [63006] UUID: 12345cpoint-end policy 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 DHCP klient LRPC koncový bod ncacn_ip_tcp: 10.1.10.6 [49153] Nalezeno celkem koncových bodů: 61 ==== Konec odpovědi koncového bodu mapovače RPC ==== portqry.exe -n 10.1.10.6 -e 135 - p TCP ukončí návratový kód 0x00000000.

Nebo můžete zkontrolovat dostupnost a odpověď ze služby SQL Server Browser na serveru Microsoft SQL:

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

Port UDP 1434 (služba ms-sql-m): LISTENING nebo FILTERED Odesílání dotazu serveru SQL na port UDP 1434 ... Reakce serveru: ServerName MSK-SQL01 InstanceName MSSQLSERVER IsClustered No Version 15.0.2000.5 tcp 53200 ServerName MSK-SQL01 InstanceName BANKDB IsClustered No Version 15.0.2000.5 tcp 1433 ==== Konec odpovědi na dotaz serveru SQL ==== Port UDP 1434 naslouchá

Jak vidíte, obslužný program portqry ukázal nejen dostupnost portu UDP, ale také verzi serveru SQL a názvy instancí spuštěných na serveru SQL a jejich TCP porty (jedna instance BANKDB žije na výchozím portu tcp 1433, druhá MSSQLSERVER používá pevný port z rozsahu RPC 53200 ).

Port zařízení SNMP můžete v zařízení dotazovat zadáním názvu komunity:
portqry -n host2 -cn! bezpečné! -e 161 -p udp

Při kontrole portu 25 na serveru SMTP můžete získat uvítací banner serveru:

portqry -n doména.mail.ru -p tcp -e 25

GUI pro Portqry

Portqry byl zpočátku výhradně konzolovým nástrojem. Pro pohodlí uživatelů, kteří nejsou přátelští s příkazovým řádkem, společnost Microsoft vyvinula jednoduché grafické rozhraní pro obslužný program portqry - PortQueryUI. PortQueryUI si můžete stáhnout z webu pro stahování Microsoft http://download.microsoft.com/download/3/f/4/3f4c6a54-65f0-4164-bdec-a3411ba24d3a/PortQryUI.exe

PortQueryUI je v podstatě grafický doplněk pro portqry, který tvoří příkazový řádek a vrací výsledek do grafického okna..

PortQueryUI navíc obsahuje několik předdefinovaných sad dotazů ke kontrole dostupnosti populárních služeb společnosti Microsoft:

  • Doména a vztahy důvěryhodnosti (kontrola služeb na řadiči domény Active Directory)
  • IP Sec
  • Sítě
  • SQL Server
  • Webový server
  • Exchange server
  • Čisté setkání

Myslím, že není třeba přidávat speciální komentáře k rozhraní PortQueryUI. Vše by mělo být jasné z níže uvedeného snímku obrazovky. Zadejte název DNS nebo IP adresu serveru, vyberte jednu z předdefinovaných služeb (předdefinovaná služba Query) nebo zadejte čísla portů pro ruční ověření (porty manuálního zadání dotazu) a klikněte na tlačítko Dotaz.

Možné kódy odezvy v PortQueryUI (zvýrazněné na obrázku):

  • 0 (0x00000000) - znamená, že připojení bylo úspěšně navázáno a port je k dispozici;
  • 1 (0x00000001) - určený port je nedostupný nebo filtrovaný;
  • 2 (0x00000002 je normální návratový kód při kontrole připojení UDP, protože odpověď ACK není vrácena.