web-dev-qa-db-ja.com

Windowsでは、コマンドラインを使用して、リモートポートが開いているかどうかをどのように確認しますか?

Windowsでリモートマシンの特定のポートにトラフィックが到達するかどうかをテストする簡単な方法は何ですか?

90
Matt

私は先日、Microsoftから、ポートのテスト用に設計された隠し宝石を見つけました。

Portqry.exe

"Portqry.exeは、TCP/IP接続の問題のトラブルシューティングに役立つコマンドラインユーティリティです。Portqry.exeは、Windows 2000ベースのコンピュータ、Windows XPベースのコンピュータ、およびWindows Server 2003ベースのコンピューター。ユーティリティは、TCPおよび選択したコンピューター上のUDPポートのポートステータスを報告します。 "

62
Peter M

どのバージョンのWindowsですか? Windows 8/Server 2012以降の場合、以下はPowerShellで機能します。

Test-NetConnection 128.159.1.1 -Port 80

一部のGooglingは、Test-NetConnectionを利用できない下位バージョンのWindowsを実行しているシステムで.NET Frameworkを直接使用する代替手段も提供します(PowerShellでそれができるため)。

サードパーティのユーティリティの使用を嫌がらない場合は、 Nmap も非常に役立ち、コマンドラインから機能します。

59
Iszi

Telnetコマンドを使用して、指定したポートでサーバーに接続し、接続を確立できるかどうかを確認します。

成功:

$ telnet my_server 25
220 my_server ESMTP Postfix

失敗:

$ telnet my_server 23632
Connecting To my_server...Could not open connection to the Host, on port 23632:
Connect failed
23

TelnetはTCPで機能します。

Netcatは、UDPを含むこれらの種類のものにより良いツールですが、いくつかのAVソフトウェアはそれを「悪意のあるハッカーツール」と見なしています。

7
whatsisname

次のコマンドは、マシンで使用中のすべてのポートをリストします...

netstat -a

出力には、プロトコル、ローカルアドレス、外部アドレス、および現在の状態が含まれます

Microsoft.comのNetstatのドキュメント

1
Baldy

使用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
>
0
rustyx