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. ”


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ń.


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

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”


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


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
>

-4

„netstat” jest twoim przyjacielem.


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.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.