Windowsで開いているTCP/IPポートを確認する方法

更新内容を読む
    • 管理者権限でコマンドプロンプト、PowerShell、またはターミナルウィンドウを開き、「netstat -ab」コマンドを実行すると、アプリケーションと関連付けられたポートの一覧が表示されます。これはWindows 11でも機能します。
    • 開いているポートの確認は、アクティブなポートと関連付けられたプロセス名または識別子を一覧表示する、コマンドプロンプトやPowerShellなどの組み込みツールを使用して行うことができます。
    • NirSoftのフリーウェアアプリケーションCurrPortsを使用すると、ポートをリッスンしている内容をより簡単に表示し、プロセスに関する詳細情報を表示し、ポートをより適切に管理することができます。

    アプリケーションがネットワーク上でアクセスできるようにしたい場合、そのアプリケーションはTCP/IPポートを要求します。つまり、そのポートは他の何にも使用できません。では、どのアプリケーションが使用しているかを確認するために、開いているポートを確認するにはどうすればよいでしょうか?

    この手順をテストして、すべての手順が最新であり、すべてがWindows 11でも機能することを確認しました。

    ポートはどのように機能しますか?

    IPアドレスは、ネットワーク上のコンピューター(または他のネットワークデバイス)を指定します。あるデバイスが別のデバイスにトラフィックを送信すると、IPアドレスを使用してそのトラフィックを適切な場所にルーティングします。トラフィックが正しい場所に到達すると、デバイスはトラフィックを送信するアプリまたはサービスを知る必要があります。そこでポートが登場します。

    IPアドレスが郵便物の住所に似ている場合、ポートはその住所に住む人で郵便物を受け取る人の名前のようなものです。ほとんどの場合、ポートについて心配する必要はありません。しかし、まれに、別のアプリがすでに使用しているのと同じポートでトラフィックをリッスンするように設定されているアプリが発生することがあります。その場合、そのポートをすでに使用しているアプリを特定する必要があります。

    ポートをロックしているアプリケーションを特定する方法はいくつかありますが、コマンドプロンプト、PowerShell、またはターミナルを使用する組み込みの方法をいくつか紹介します。その後、さらに簡単にできる優れたフリーウェアアプリケーションを紹介します。これらの方法はすべて、使用するWindowsのバージョンに関係なく機能するはずです。

    組み込みツールを使用してポートをリッスンしている内容を確認する

    2つのコマンドを紹介します。1つは、それらを使用しているプロセスの名前とともにアクティブなポートを一覧表示します。ほとんどの場合、そのコマンドは正常に機能します。しかし、プロセスの名前だけでは、どのアプリまたはサービスが実際にポートを占有しているのかを特定できない場合があります。その場合は、アクティブなポートとそのプロセス識別子番号を一覧表示してから、タスクマネージャーでそれらのプロセスを検索する必要があります。

    オプション1: プロセス名とともにポートの使用状況を表示する

    まず、管理者モードでコマンドプロンプトを開く必要があります。[スタート]をクリックし、検索ボックスに「コマンド」と入力します。検索結果に「コマンドプロンプト」が表示されたら、それを右クリックして「管理者として実行」を選択するか、右側の「管理者として実行」をクリックします。

    これにはPowerShellまたはターミナルを使用することもできます。

    コマンドプロンプトで、次のテキストを入力してEnterキーを押します。

    netstat -ab

    Enterキーを押した後、結果が完全に表示されるまで1、2分かかることがあるので、辛抱強くお待ちください。リストをスクロールしてポート(ローカルIPアドレスの右にあるコロンの後にリストされている)を見つけると、その行の下にプロセス名が表示されます。作業を少し楽にするために、コマンドの結果をテキストファイルにパイプすることもできます。その後、テキストファイル内で目的のポート番号を検索するだけです。

    たとえば、ここではポート49902がpicpick.exeという名前のプロセスによって占有されていることがわかります。PicPickはシステムのイメージエディターなので、ポートは実際にアプリの更新を定期的にチェックするプロセスによって占有されていると想定できます。

    オプション2: プロセス識別子とともにポートの使用状況を表示する

    検索しているポート番号のプロセスの名前が関連するアプリを特定しにくい場合は、名前ではなくプロセス識別子(PID)を表示するコマンドのバージョンを試すことができます。コマンドプロンプトで次のテキストを入力し、Enterキーを押します。

    netstat -aon

    右端の列にPIDがリストされているので、トラブルシューティングしようとしているポートにバインドされているPIDを見つけるだけです。

    次に、タスクバー上の空白領域を右クリックして「タスクマネージャー」を選択して、タスクマネージャーを開きます。Ctrl+Shift+Escキーを押すこともできます。

    Windows 8、10、または 11を使用している場合は、タスクマネージャーの「詳細」タブに切り替えます。

    以前のバージョンの Windows では、この情報は「プロセス」タブに表示されます。プロセスのリストを「PID」列でソートし、調査しているポートに関連付けられている PID を見つけます。「説明」列を見ると、どのアプリまたはサービスがポートを占有しているかについての詳細がわかるかもしれません。

    見つからない場合は、プロセスを右クリックして「ファイルの場所を開く」を選択します。ファイルの場所は、どのアプリが関係しているかについてのヒントになる可能性があります。

    そこに移動したら、プロセスを制御または停止するために、プロセスを終了、ファイルの場所を開く、またはサービスに移動オプションを使用できます。

    NirSoft CurrPortsを使用してポートをリッスンしているものを表示する

    コマンドプロンプトタイプではない場合、または単純なユーティリティを使用してこれらすべてを1ステップで行うことを好む場合は、NirSoftによる優れたフリーウェアCurrPortsユーティリティをお勧めします。先に進んでツールをダウンロードしてください。適切なバージョンを入手していることを確認してください(通常バージョンは32ビットWindows用、x64バージョンは64ビットWindows用です)。ポータブルアプリなので、インストールする必要はありません。ダウンロードフォルダを解凍し、実行可能ファイルを実行するだけです。

    CurrPortsウィンドウで「ローカルポート」列でソートし、調査しているポートを見つけると、プロセス名、PID、ポート、プロセスの完全なパスなどをすべて見ることができます。

    さらに簡単にするために、プロセスをダブルクリックして1つのウィンドウですべての詳細を表示します。

    調査しているポートを占有しているアプリまたはサービスを特定したら、それをどのように処理するかはあなた次第です。それがアプリの場合、別のポート番号を指定するオプションがあるかもしれません。それがサービスである場合、または別のポート番号を指定するオプションがない場合は、サービスを停止するかアプリを削除する必要があるでしょう。