How To

Windowsでポートが開いているかどうかをテストする方法

February 13, 2026 1 分で読む Updated: February 13, 2026

ネットワーク関連のことは、慣れていないと少し敷居が高いかもしれません。ポートは、開いているか閉じているかに関わらず、PCが他のデバイスやサービスと通信するために使用する秘密のゲートウェイのようなものです。ローカルネットワーク上であろうとオンラインでも構いません。ポートは、何の問題もなく開いている場合もありますが、ロックされていないまま外部から見える状態になっていると、セキュリティ上の懸念が生じる場合があります。このガイドでは、Windowsで開いているポートを確認する方法について説明します。内部で何が起こっているかを知っておくことで、予期せぬ事態や厄介な侵入から身を守ることができます。

Windows で開いているポートを確認するにはどうすればいいですか?

NetstatWindowsには、内部を覗き見るのに役立つ組み込みツールがいくつかあります。PowerShellGet-NetTCPConnectionの 、そしてGUIベースの ですTCPView。使いこなせばとても便利です。トラブルシューティングをする場合でも、何か怪しいものがリッスンしていないか確認する場合でも、これらの方法は役に立ちます。アクティブなポートのリストが表示され、IPアドレスや、リッスン中かどうか、接続が確立されているかどうかなどの情報が表示されます。少し見づらい場合もありますが、それがWindowsの仕組みです。

Netstat の使用 – コマンドラインクラシック

これは古典的な方法です。高速で、現在アクティブなポートをすべて確認できます。管理者特権のコマンドプロンプトを開きます(もちろん、Windows は必要以上に難しくする必要があるためです)。

  • Windows + Rを押して、 と入力しますcmd。Enter キーを押すだけでなく、Ctrl + Shift + Enter管理者権限で入力してください(プロンプトが表示される場合がありますが、はいと答えてください)。
  • 次のように入力netstat -naして Enter キーを押します。

このコマンドは、すべてのネットワーク接続と待機ポートを一覧表示します。n はアドレスを数値で表し(ホスト名は解決しません)、a はすべてのアクティブな接続を表示します。出力には0.0.0.0:135のような行が表示されます。これはポート 135 が開いており、任意の IP アドレスを待機していることを意味します。このポートを使用していない場合、セキュリティリスクが発生する可能性があります。

PowerShellの使用 – より柔軟に

PowerShell の方がお好みなら(正直に言うと、PowerShell の方が強力です)、コマンドを実行してリッスンポートのみを表示できます。フィルタリングをサポートしているので、アクティブなポートを簡単に見つけることができます。

  • [スタート] を右クリックし、[Windows PowerShell (管理者)]を選択します。
  • 次のように入力しGet-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort | Sort-Object LocalPortて Enter キーを押します。

開いているポートとそのIPアドレスが表示されます。手間はかかりません。0.0.0.0 :445のようなポートや、着信接続を待機しているローカルIPアドレスをすぐに見つけることができます。開いているべきではないポートや見慣れないポートが表示された場合は、そこで何が実行されているか確認することをお勧めします。

TCPView — ビジュアルユーザー向けGUI

クリックして操作する方が簡単な場合もあります。TCPView をダウンロードしてください。Microsoft Sysinternals から無料で入手できます。展開してtcpview.exe実行するだけで、開いている、待機中の、確立済みのすべてのネットワーク接続がリアルタイムで表示されます。より使いやすく、視覚的にも優れているため、コマンドラインの煩雑さが苦手な方にも便利です。ただし、設定によっては、情報が表示されるまでに少し時間がかかる場合や、管理者として実行する必要がある場合があります。

Telnet の使用 – クイックリモートポートチェック

Telnet は、リモートサーバーまたはデバイスのポートが開いているかどうかをテストできます。詳細な手順は不要ですが、簡単に実行できます。まず、「Windows の機能の有効化または無効化」から Telnet を有効にする必要があります。「Telnet」までスクロールしてチェックボックスをオンにし、「OK」をクリックします。その後、コマンドプロンプトを管理者として起動し、以下を実行します。

telnet <IP/hostname> <port>

画面がクリアされ、点滅するカーソルが表示されたら、ポートが開いている良い兆候です。接続失敗のメッセージが表示される場合は、ポートがブロックされているか閉じられている可能性があります。リモートサーバーで簡単な確認をしたい場合などに便利です。

ではすべての港を閉鎖すべきでしょうか?

必ずしもそうではありません。インターネットは恐ろしい場所になり得ますが、多くのオープンポートは、その用途さえ理解していれば正常かつ安全です。80番ポートや443番ポートはWebトラフィック用なので、ウェブサイトやサーバーを運用している場合は当然のこととして想定されます。ローカルホストポート(127.0.0.1など)は自分のマシンからしかアクセスできないため、大きな脅威にはなりません。しかし、0.0.0.0(すべてのインターフェース)で世界中に開かれているポートは、認識していない、あるいは必要としていない場合はリスクとなる可能性があります。重要なのは、何が正常で何が異常なのかを理解することです。

ポートを閉じる前に、ファイアウォールのルールを確認してください。リモートデスクトップやファイル共有など、サービスによっては必要なポートが開かれる場合があります。未使用のポートや疑わしいポートは調査する必要があります。すべてのポートを盲目的に閉じると、予期せぬ問題が発生する可能性があります。

Windows で開いているポートを閉じるにはどうすればいいですか?

信頼できないポートや開く必要のないポートがある場合は、プロセスID(PID)を使ってプロセスを強制終了できます。次のコマンドを実行してください。

netstat -aon

このコマンドは、すべてのアクティブな接続とそのPIDを表示します。問題のポートまたはアドレスを見つけ、そのPIDをメモしてから、次のコマンドを実行します。

taskkill /f /pid <PID>

これにより、そのポートを使用しているプロセスが強制的に停止されます。ただし、プロセスが何であるか分からない場合、ランダムにプロセスを強制終了すると問題が発生する可能性があるので注意してください。まずはプロセス名をGoogleで検索することをお勧めします。

特定のポートへの着信接続をより確実にブロックしたい場合は、Windowsファイアウォールを使用してください。管理者権限のコマンドプロンプトで実行してください。

netsh advfirewall firewall add rule name="BlockPortX" dir=in action=block protocol=TCP localport=<port number>

BlockPortX を分かりやすい名前に変更し、<ポート番号>を実際のポート番号に置き換えてください。再度ポートを開くには、action=block をallowに変更してください。また、送信トラフィックの方向をoutに変更したり、TCP と UDP を切り替えることもできます。

繰り返しますが、盲目的にポートを閉じないでください。何が傍受されているかを把握した上で、ファイアウォールのルールを安全策として活用してください。安全第一に行動しましょう。

結局のところ、開いているポートを調べるのは技術的で面倒に思えるかもしれませんが、マシンを安全に保つためには習慣として持つ価値があります。特にサーバーを運用している場合や、オンラインでのプライバシーを重視している場合はなおさらです。