「指定されたポートは既に開かれています」というエラーメッセージの原因とは。「Windows」「Linux」「macOS」などOSが異なっても、根本的な問題は共通している。トラブルシューティングのポイントを紹介する。
「指定したポートは既に開かれています」(The specified port is already open)というエラーメッセージがPC利用中に表示される場合がある。前編「『ポートは使用中です』『ポートは既に開かれています』のエラーが出る原因は?」は、このエラーを引き起こす4つの原因のうち、2つを紹介した。本稿は残る2つの原因と、トラブルシューティングの方法を紹介する。
VPN(仮想プライベートネットワーク)のクライアントソフトウェアが使用するポートを、他のアプリケーションが使用することでこのエラーを引き起こすことがある。この問題を解決するには、VPNのクライアントソフトウェアの予約済みポートを他のアプリケーションが使用しないように、「Windows」のレジストリ(設定情報のデータベース)を編集する。衝突を引き起こしているアプリケーションは、ネットワーク接続の状態を表示するコマンド「netstat」を使って確認できる。
「Windows 10」におけるセキュリティ機能の向上に伴い、このエラーが発生しやすくなっている。インターネットには「Windows 10を使い始めてから、このエラーが発生し始めた」というユーザーからの報告が相次いでいる。ただし、これはOSの更新を回避する正当な理由にはならない。
「Linux」「UNIX」「macOS」でも同様のエラーは発生するが、表示されるエラーメッセージは少し異なる。これらのOSでも、基本的な問題はWindowsの場合と同じだ。共有不可能なネットワークリソースを、複数のアプリケーションが同時に使用しようとすると発生する。netstatのコマンドで衝突を引き起こしているアプリケーションを特定できることも、Windowsの場合と同様だ。
Windows以外のOSで、「指定したポートは既に開かれています」といったエラーメッセージが表示される主な原因は、「SSHポートフォワーディング」(SSH:Secure Socket Shell)を使用することだ。SSHポートフォワーディングとは、SSH接続による通信経路を使って、遠隔にあるコンピュータの特定のポートにデータを転送する仕組みを指す。
SSH接続が途切れた後にすぐにSSHポートフォワーディングを実行しようとすると、「アドレスは既に使用されています」(Address already in use)というエラーメッセージが表示される可能性がある。TCP(Transmission Control Protocol)が、ネットワーク接続を切断する最後の処理を待たなければならないからだ。この状態はnetstatのコマンドで確認すると「TIME_WAIT」と表示される。これは接続を切断できる状態になったことを示す。数分待てば、アプリケーションは問題になっているポートを再び使用できるようになる。
「指定したポートは既に開かれています」と同様のエラーメッセージは他にもあり、それらが発生する原因はおおむね共通している。共有不可能なネットワークリソースを他のアプリケーションが使用しようとしていたり、OSにロックされてしまったりすることだ。ただし紛らわしいことに、細部は異なる。本稿で紹介した複数の原因を頭に入れて状況を見極めれば、解決策の絞り込みができる。
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
ハロウィーンの口コミ数はエイプリルフールやバレンタインを超える マーケ視点で押さえておくべきことは?
ホットリンクは、SNSの投稿データから、ハロウィーンに関する口コミを調査した。
なぜ料理の失敗写真がパッケージに? クノールが展開する「ジレニアル世代」向けキャンペーンの真意
調味料ブランドのKnorr(クノール)は季節限定のホリデーマーケティングキャンペーン「#E...
業界トップランナーが語る「イベントDX」 リアルもオンラインも、もっと変われる
コロナ禍を経て、イベントの在り方は大きく変わった。データを駆使してイベントの体験価...