Di Windows, menggunakan baris perintah, bagaimana Anda memeriksa apakah port jarak jauh terbuka?

Jawaban:

62

Saya menemukan permata hiddem tempo hari dari Microsoft yang dirancang untuk menguji port:

Portqry.exe

"Portqry.exe adalah utilitas baris perintah yang dapat Anda gunakan untuk membantu memecahkan masalah masalah konektivitas TCP / IP. Portqry.exe berjalan pada komputer berbasis Windows 2000, pada komputer berbasis Windows XP, dan pada komputer berbasis Windows Server 2003. Utilitas melaporkan status port port TCP dan UDP pada komputer yang Anda pilih. "

Peter M
sumber
Catatan: Mencoba untuk mengunduh ini dari Microsoft mengembalikan halaman yang menyatakan unduhan "tidak lagi tersedia".
dgw
@dgw Terima kasih untuk itu .. google menunjukkan versi baru jika Anda mencari `potret" yang akan saya periksa besok
Peter M
52

Versi Windows yang mana? Untuk Windows 8 / Server 2012 dan yang lebih baru, yang berikut ini berfungsi di PowerShell:

Test-NetConnection 128.159.1.1 -Port 80

Beberapa Googling juga akan menemukan alternatif yang menggunakan .NET Framework secara langsung (karena PowerShell memungkinkan Anda melakukan itu) untuk sistem yang menjalankan versi Windows yang lebih rendah yang tidak akan Test-NetConnectiontersedia.

Jika Anda tidak suka menggunakan utilitas pihak ketiga, Nmap juga merupakan teman yang sangat baik untuk dimiliki dan berfungsi dari baris perintah.

Iszi
sumber
1
Metode .Net:$connection = (New-Object Net.Sockets.TcpClient).Connect($target,$port); If ($connection.Connected) { $connection.Close() }
xXhRQ8sD2L7Z
Pada Win7, itu tidak berhasil :-(
samsmith
@samsmith Apakah Anda berbicara tentang perintah dalam jawaban saya, atau satu komentar ST8Z ...? Yang ada di jawaban saya hanya berfungsi untuk Win8 / 2k12 dan lebih tinggi, dan jawabannya mengatakan banyak.
Iszi
1
Tampaknya Windows 8.1 - Tampaknya tidak dapat menemukannya di Windows 8
Andy Krouwel
1
Bekerja dengan baik pada Windows 10, dan saya tidak perlu menginstal program apa pun atau menambahkan fitur apa pun. Terima kasih! :)
Steve Bauman
24

Gunakan perintah telnet untuk terhubung ke server pada port yang ditentukan, dan lihat apakah koneksi dapat dibuat.

Keberhasilan:

$ telnet my_server 25
220 my_server ESMTP Postfix

Gagal:

$ telnet my_server 23632
Connecting To my_server...Could not open connection to the host, on port 23632:
Connect failed
Jørn Schou-Rode
sumber
14
tidak berfungsi untuk UDP.
Adriano Varoli Piazza
8
UDP tanpa koneksi ..
Amalgovinus
7

Telnet akan bekerja untuk TCP.

Netcat adalah alat yang lebih baik untuk hal-hal ini, termasuk UDP, hati-hati, beberapa perangkat lunak AV menganggapnya sebagai 'alat peretas jahat'

Apa namanya
sumber
1

perintah berikut akan mencantumkan semua port yang digunakan pada mesin ...

netstat -a

Outputnya berisi protokol, alamat lokal, alamat asing dan keadaan saat ini

Dokumentasi Netstat di microsoft.com

Botak
sumber
8
Pertanyaan bertanya tentang port terbuka pada mesin jarak jauh , bukan lokal.
Chris S
0

Gunakan port netcat 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
sumber
-4

'netstat' adalah teman Anda.

quosoo
sumber
3
Mesin lokal ya, mesin jarak jauh tidak.
3
Jawaban ini diposting sebelum pengeditan yang menentukan bahwa ini tentang port pada mesin jarak jauh.