「指定されたポートは既に開かれています」の原因とトラブルシューティング:ネットワーク接続エラーの原因と解消法【後編】

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製品導入事例などを厳選してお届けします。