このトピックでは、次の問題、問題の原因、および問題の解決策について説明します。Windows Elastic Compute Service (ECS) インスタンスは、インスタンスのTIME_WAIT状態に多数の接続がある場合、外部ネットワークにアクセスできません。
問題の説明
外部ネットワークはWindowsインスタンスからpingできますが、インスタンスからブラウザを使用して外部ネットワークにアクセスすることはできません。外部Webページを読み込むのに時間がかかりすぎるか、インスタンスでホストされているアプリケーションでネットワーク接続の例外が発生します。 インスタンスのコマンドプロンプトでnetstat -an | find "TIME_WAIT" /cコマンドを実行すると、コマンド出力は、多数のTCP接続がTIME_WAIT状態であることを示します。 コマンド出力の例を次の図に示します。
原因
Windows Server 2008以降では、16,384の動的ポート (ポート49152からポート65535) が既定で提供されます。 デフォルトでは、TCP接続は接続が閉じられるまで4分間TIME_WAIT状態のままです。 インスタンスで多数のTCP接続がアクティブな場合、多くの接続が同時にTIME_WAIT状態のままで、これらの接続が終了した後も多数のポートを消費し続けることがあります。 その結果、新しい接続またはアプリケーションには、消費するポートがなく、例外が発生します。
解決策
このセクションでは、問題を解決する方法について説明します。 この例では、Windows Server 2012 R2を実行するインスタンスが使用されています。 実行する必要がある操作は、インスタンスのオペレーティングシステムによって異なる場合があります。
仮想ネットワークコンピューティング (VNC) を使用してWindowsインスタンスに接続します。
詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
コマンドプロンプトを起動します。
デスクトップの左下隅にある
アイコンをクリックし、
アイコンをクリックします。 検索ボックスに
cmdと入力します。
[コマンドプロンプト] をクリックします。
コマンドプロンプトウィンドウを開きます。

次のコマンドを実行して、動的ポートの設定を表示します。
netsh int ipv4 dynamicport tcp次の図は、コマンド出力のサンプルを示しています。これは、16,384の動的ポート (ポート49152からポート65535) が提供されていることを示しています。

次のコマンドを実行して、ダイナミックポートの範囲を拡張します。
netsh int ipv4 set dynamicport tcp start=1025 num=60000説明startパラメーターは、ダイナミックポート範囲の開始ポートを指定します。numパラメーターは、動的ポートの数を指定します。 必要に応じてパラメーターを設定できます。次の図は、コマンド出力のサンプルを示しています。これは、動的ポートの数が60,000に増加し、新しい動的ポート範囲がポート1025で始まり、ポート61024で終わることを示しています。

外部ネットワークに再度アクセスするか、アプリケーションを外部ネットワークに接続します。
外部ネットワークにアクセスまたは接続できる場合、問題は解決されます。
外部ネットワークにアクセスまたは接続できない場合は、TcpTimedWaitDelayレジストリキーの値を変更して、TCP接続がTIME_WAIT状態にある時間を短縮します。
ダイナミックポート範囲を拡張しても問題が完全に解決されない場合は、TcpTimedWaitDelayレジストリキーの値を30秒に減らすことができます。 TcpTimedWaitDelayレジストリキーの最小値は30秒です。
重要レジストリでの誤った操作によるオペレーティングシステムの問題やデータの損失を防ぐには、レジストリを変更する前に、インスタンスのシステムディスクとデータディスクのスナップショットを作成します。 レジストリを変更した後、変更を有効にするには、インスタンスを再起動する必要があります。
スナップショットの作成方法については、「ディスクのスナップショットの作成」をご参照ください。
インスタンスの再起動方法については、「インスタンスの再起動」をご参照ください。
レジストリエディターを起動します。
デスクトップの左下隅にある
アイコンをクリックし、
アイコンをクリックします。 検索ボックスに
regeditと入力します。
regeditをクリックします。
[レジストリエディター] ウィンドウを開きます。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parametersパスに移動し、TcpTimedWaitDelayレジストリキーを10進値30に設定します。TcpTimedWaitDelayキーが存在しない場合は、次の操作を実行してキーを作成し、その値を変更します。レジストリエディタウィンドウの
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parametersパスで、右側のウィンドウの空白領域を右クリックし、[新規]> [DWORD (32ビット) 値] を選択します。
TcpTimedWaitDelayを入力し、Enterキーを押します。TcpTimedWaitDelayを右クリックし、[変更] を選択します。
表示されるダイアログボックスで、Decimalを選択し、value dataフィールドの値を
30に変更します。
[OK] をクリックします。