公開日:

Windowsで通信ポートを確認する方法|Test-NetConnectionの使い方

「社内システムに接続できない」「サーバーが動いているはずなのに画面が開かない」。そんなときは、自分のPCから接続先の特定のTCPポートまで通信できるかを確認すると、原因の切り分けに役立ちます。

Windowsでは、PowerShellの Test-NetConnection を利用できます。設定を変更せずに通信状況を確認できるため、一次調査に向いています。

説明用の概念図:通信できないときの切り分け
説明用の概念図。図を原寸で開く

まずはポート番号を指定して確認する

スタートメニューから「Windows PowerShell」を開きます。次のコマンドは、example.com のTCPポート443へ接続を試す例です。

Test-NetConnection -ComputerName example.com -Port 443

自社のシステムを確認する場合は、example.com を実際のサーバー名またはIPアドレスに、443 をシステムが使用するポート番号に置き換えます。接続テストは、自分が確認を許可されている宛先に対して行ってください。

実行結果の中で注目するのは、次の項目です。

TcpTestSucceeded : True

これは、指定した宛先のTCPポートへの接続テストが成功したことを示します。False の場合は、その通信テストに成功していません。ただし、それだけでサーバー停止やファイアウォールが原因だと断定することはできません。

よく使う確認方法

1. 接続先の基本情報を確認する

Test-NetConnection -ComputerName example.com

名前解決やPingなどの診断情報を確認できます。Pingが失敗しても、相手側でICMPへの応答を制限しているだけの場合があります。

2. WebシステムのHTTPSポートを確認する

Test-NetConnection -ComputerName example.com -Port 443

HTTPS通信で一般的なTCPポート443への到達性を確認する例です。実際の業務システムが別のポートを使用している場合は、その番号に変更します。

3. 詳しい診断情報を表示する

Test-NetConnection -ComputerName example.com -Port 443 -InformationLevel Detailed

経路や名前解決などの調査に役立つ情報を、通常より詳しく確認できます。

TcpTestSucceeded がFalseの場合の確認順

  1. 宛先が正しいか:サーバー名・IPアドレス・ポート番号に誤りがないか。
  2. DNSで名前が引けているか:サーバー名を指定したときに名前解決できているか。
  3. ネットワーク経路に制限がないか:VPN接続、社内ネットワーク、ファイアウォールなど。
  4. 接続先でサービスが待ち受けているか:接続先の管理者に確認する。

なお、TcpTestSucceeded : True でも、Webアプリへのログインや認証が正常に動くことまでは保証されません。このコマンドが確認するのは、主にTCP接続の可否です。

ポートを確認するコマンドと、待ち受けポートを調べるコマンドは違う

Test-NetConnection は、自分のPCから別の宛先へ接続できるかを調べるコマンドです。

一方、自分のPCでどのポートが使われているかを調べたい場合は、Get-NetTCPConnection など別の方法が適しています。「ポートを確認したい」という言葉でも、目的によって使うコマンドが異なります。

よくある質問

Q. 管理者としてPowerShellを開く必要はありますか?

通常の接続テストは、一般ユーザーのPowerShellから実行できます。ただし、会社PCのポリシーによって実行が制限される場合があります。

Q. 結果がFalseならファイアウォールを無効にすべきですか?

いいえ。接続先の指定ミスやサーバー側の設定など、複数の原因が考えられます。会社PCのセキュリティ設定は独断で変更せず、管理者に相談してください。

まとめ

通信障害の一次調査では、Test-NetConnection -ComputerName 接続先 -Port 番号 が役立ちます。結果を見てすぐに原因を決めつけず、宛先・名前解決・経路・接続先サービスの順に確認すると、状況を整理しやすくなります。

参考資料