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


回答:


62

先日マイクロソフトから、ポートをテストするために設計された隠し宝石を見つけました。

Portqry.exe

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


注:これをMicrosoftからダウンロードしようとすると、ダウンロードが「使用できなくなった」ことを示すページが返されました。
dgw

@dgwおかげで..「明日」をチェックする「ポートレイト」を検索すると、グーグルが新しいバージョンを表示します
ピーターM


52

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

Test-NetConnection 128.159.1.1 -Port 80

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

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


1
.Netメソッド:$connection = (New-Object Net.Sockets.TcpClient).Connect($target,$port); If ($connection.Connected) { $connection.Close() }
xXhRQ8sD2L7Z 14

Win7では、動作しません:-(
samsmith

@samsmith私の答えでコマンドについて話していますか、それともST8Z ...のコメントですか?私の答えの1つはWin8 / 2k12以上でのみ機能し、答えは同じように言います。
イッツィ

1
Windows 8の上でそれを見つけるように見えることができません- Windowsの8.1であるように思わ
アンディKrouwel

1
Windows 10で問題なく動作し、プログラムをインストールしたり、機能を追加したりする必要はありません。ありがとう!:)
スティーブバウマン

24

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

14
UDPでは機能しません。
アドリアーノヴァロリ広場

8
UDPはコネクションレス..です
Amalgovinus

7

TelnetはTCPで機能します。

NetcatはUDPを含むこれらの種類の優れたツールですが、一部のAVソフトウェアはそれを「邪悪なハッカーツール」と見なしています


1

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

netstat -a

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

microsoft.comのNetstatドキュメント


8
質問は、ローカルではなく、リモートマシンで開いているポートについて尋ねます。
クリスS


-4

「netstat」はあなたの友達です。


3
ローカルマシンはい、リモートマシンはい。

3
この回答は、リモートマシンのポートに関することを指定する編集の前に投稿されました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.