WindowsのPCで「特定の相手と通信が出来るかどうか」を調べるためには「ping」を使うことが一般的です。
ただ、ファイアウォールでポート遮断を行っている機器と通信する場合などでは「pingではなく特定のポート宛てに通信を飛ばしてみて、実際に応答が返ってくるか調べなければならない」というケースもあります。
この記事ではそうした場合に使える「Windowsで特定ポート宛てに通信を行って応答が返ってくるか確認する方法」について解説を行っていきます。
見出し
Windowsで特定ポート宛ての応答を確認する方法
では、これからはWindowsで「特定ポート宛ての通信の応答を確認する方法」を解説します。
この方法を使用すればポート単位での疎通確認が出来るので、pingよりも精度の高い応答確認を行うことが可能です。
なお、手順についてはそれぞれPowershellとコマンドプロンプトで行う方法を書きますが、Powershellのコマンドのほうが応答結果が分かりやすいのでそちらがおすすめです。
①Powershellで特定ポート宛ての応答を確認する
まずはPowershellで特定ポート宛ての応答結果を確認する方法です。
こちらの方法を使用する場合はWindowsにPowershellがインストールされている必要がありますが、Windows7以降のPCなら標準でPowershellがインストールされているので通常は問題ないはずです。
# Powershellで特定ポート宛ての応答結果を確認する方法
Test-NetConnection -ComputerName [IPアドレス] -Port [ポート番号]
コードを使用する際は、Powershellを開いて上記の構文のうち[IPアドレス]と[ポート番号]を通信テストを行いたい宛先アドレス・ポートに書き換えて利用してください。なお、[]については実際に使用する際は不要です。
なお、こちらのPowershellで接続確認が出来るのはTCPのプロトコルのみです。
UDPについては性質上事前に宛先との接続を確立する手順が無いため、もしUDPとの接続テストを行う場合はnmap等の外部ツールの導入が必要です。
▼使用画面(例)
▼結果画面(成功)
▼結果画面(失敗)
上記のようにPowershellでコマンドを入力して実行すると結果の画面が出てきます。
このうち「TcpTestSucceeded」の項目が「True」の場合は対象アドレス・ポート宛ての通信が成功したということになります。
②コマンドプロンプトで特定ポート宛ての応答を確認する
では次にコマンドプロンプトで特定ポート宛ての応答結果を確認する方法です。
REM コマンドプロンプトで特定ポート宛ての応答結果を確認する方法
telnet [IPアドレス] [ポート番号]
コマンドプロンプトでポート番号での疎通を確認する場合は「telnet」コマンドを使うことで可能ですが、telnetコマンドはWindowsの標準ではオフになっているので有効化を行う必要があります。
telnetの有効化手順は「コントロールパネル」→「プログラムと機能」→「Windows機能の有効化または無効化」→「telnetクライアント」のチェックを入れることで完了です。
▼使用画面(例)
▼結果画面(成功)
▼結果画面(失敗)
このように、ポート接続に成功したらtelnetの画面に遷移して、失敗したらエラーが表示されます。
ただ、こちらのコマンドプロンプトの方法では成功した場合の画面が分かりにくいので、先述したPowershellのやり方で接続確認をするのがおすすめです。
【補足】よく使用されるポート番号
補足情報として、インターネットやLANでよく使用される主要なポート番号について紹介します。プロトコルに対してのポート番号が分からない場合は参考にしてください。
ポート番号 | プロトコル | 説明 |
20 | FTP (転送) | FTPでのデータ転送に使用される。 |
21 | FTP (制御) | FTPでの通信制御に使用される。 |
22 | SSH | リモートで他のデバイスを操作する時に使用される。通信内容は暗号化されている。 |
23 | Telnet | SSH同様、リモートで他のデバイスを操作するときに使用される。通信内容が暗号化されていない。 |
53 | DNS | ドメイン名とIPアドレスを変換するための仕組み。google.comなどのようなドメイン名から実際のサーバのIPアドレスを調べるためにある。 |
67 | DHCP | ネットワークで必要な「IPアドレス」を自動的に設定するための仕組み。 |
80 | HTTP | 暗号化されていないWEBサイトとの通信に使用される。 |
123 | NTP | インターネットを使用して端末の時刻同期を行う仕組みのこと。 |
443 | HTTPS | 暗号化されたWEBサイトとの通信に使用される。 |
587 | SMTP(サブミッション) | メールソフトからメールを送信するときに使用されるポート。他にもsmtpは「25」「465」などのポートがあるが、現在は587番ポートが主要。 |
993 | IMAPS | メールサーバ上にあるメールのデータを端末にダウンロードするための仕組み。メールソフトでよく使用される。 |
1433 | SQL Server | Microsoft SQL Serverのデフォルトで使用されるポート。 |
3389 | RDP | Windowsのリモートデスクトップ機能で使用されるポート。 |
8080 | HTTP(代替ポート) | HTTPの代替ポート。プロキシサーバ等で利用される。 |
なお、他にどんなポート番号があるか知りたい方は下記の記事をご覧ください。
まとめ:Windowsでポートの応答を確認する方法を紹介!
今回に記事では「Windowsで指定したポートとの通信が出来るかチェックする方法」について解説を行いました。
単純にデバイス同士のネットワーク接続を確認するだけなら「ping」コマンドで大丈夫ですが、ファイアウォール等の設定がかかっているとping宛ての通信は通っても特定ポート宛ての通信が通らないこともあります。
そうした場合に今回の方法を使用すれば「○○番ポートとの通信が出来るか実際にテストする」ことが出来ます。ポート宛ての通信が出来るかどうかチェックしたい方はぜひ試してみてください!