Jak sprawdzić w systemie Windows za pomocą wiersza polecenia, czy port zdalny jest otwarty?

Odpowiedzi:

62

Pewnego dnia znalazłem klejnot hiddem od Microsoft, który jest przeznaczony do testowania portów:

Portqry.exe

„Portqry.exe to narzędzie wiersza polecenia, którego można użyć do rozwiązywania problemów z łącznością TCP / IP. Portqry.exe działa na komputerach z systemem Windows 2000, Windows XP i Windows Server 2003. Narzędzie informuje o stanie portów TCP i UDP na wybranym komputerze. ”

Peter M.
źródło
Uwaga: próba pobrania tego od Microsoft zwróciła stronę z informacją, że pobieranie jest „już niedostępne”.
dgw
@dgw Dzięki za to .. Google wyświetla nową wersję, jeśli szukasz słowa „portret”, które sprawdzę jutro
Peter M
52

Która wersja systemu Windows? W przypadku systemu Windows 8 / Server 2012 i nowszych następujące funkcje działają w programie PowerShell:

Test-NetConnection 128.159.1.1 -Port 80

Niektórzy Googling pojawią się również alternatywy, które korzystają bezpośrednio z .NET Framework (ponieważ PowerShell pozwala to zrobić) dla systemów z niższymi wersjami systemu Windows, które nie będą Test-NetConnectiondostępne.

Jeśli nie masz nic przeciwko używaniu narzędzi innych firm, Nmap jest również bardzo dobrym przyjacielem i działa z poziomu wiersza poleceń.

Iszi
źródło
1
Metoda .Net:$connection = (New-Object Net.Sockets.TcpClient).Connect($target,$port); If ($connection.Connected) { $connection.Close() }
xXhRQ8sD2L7Z
W Win7 to nie działa :-(
samsmith,
@samsmith Czy mówisz o poleceniu w mojej odpowiedzi, czy o komentarzu ST8Z ...? Ten w mojej odpowiedzi działa tylko dla Win8 / 2k12 i wyższych, a odpowiedź mówi tyle samo.
Iszi
1
Wygląda na Windows 8.1 - nie można go znaleźć na Windows 8
Andy Krouwel,
1
Działa świetnie w systemie Windows 10 i nie muszę instalować żadnych programów ani dodawać żadnych funkcji. Dzięki! :)
Steve Bauman
24

Użyj polecenia telnet, aby połączyć się z serwerem na określonym porcie i sprawdź, czy można nawiązać połączenie.

Powodzenie:

$ telnet my_server 25
220 my_server ESMTP Postfix

Zawieść:

$ telnet my_server 23632
Connecting To my_server...Could not open connection to the host, on port 23632:
Connect failed
Jørn Schou-Rode
źródło
14
nie działa dla UDP.
Adriano Varoli Piazza
8
UDP jest bezpołączeniowy ..
Amalgovinus
7

Telnet będzie działał dla protokołu TCP.

Netcat jest lepszym narzędziem do tego rodzaju rzeczy, w tym UDP, uważaj jednak, niektóre programy AV uważają to za „narzędzie złego hakera”

Jaka jest nazwa?
źródło
1

następujące polecenie wyświetli listę wszystkich portów używanych w komputerze ...

netstat -a

Dane wyjściowe zawierają protokół, adres lokalny, adres obcy i aktualny stan

Dokumentacja Netstat na microsoft.com

Baldy
źródło
8
Pytanie dotyczy otwartych portów na zdalnym komputerze, a nie lokalnym.
Chris S
0

Użyj portu Netcat dla systemu Windows :

>nc -zvv www.google.com 80
www.google.com [108.177.96.103] 80 (http) open
sent 0, rcvd 0
>

>nc -zvv www.google.com 888
www.google.com [108.177.96.147] 888 (?): TIMEDOUT
sent 0, rcvd 0: NOTSOCK
>
rustyx
źródło
-4

„netstat” jest twoim przyjacielem.

quosoo
źródło
3
Maszyna lokalna tak, maszyna zdalna nie.
3
Ta odpowiedź została opublikowana przed edycją, w której określono, że chodzi o port na zdalnym komputerze.