Windows Server 2008 - TCP ポートをバインドできない

Windows Server 2008 - TCP ポートをバインドできない

OS: Win Server 2008 RC2 Windows ファイアウォールオン (オフの場合は効果なし)

突然、検索しても似たようなものが見つからないという問題に悩まされてしまいました。

私は、UDP ポートにバインドし、次に UDP ポートの上の TCP ポート 1 にバインドする約 20 台のゲーム サーバーを実行しています。突然、1 日前に、新しい TCP バインドが機能しなくなりました。

現在、他のアプリケーションはほとんどのポートをリッスンできないことを確認しました。たとえば、コピーした Java プログラムがあり、次のポートを試しました: 33001、23789、89... 完全にランダムなポートです。

HTTP や MySQL など、すでに TCP バインディングを持つアプリケーションに関しては、私が発見したポート 8080 のみが動作可能で、Apache 専用でした。アプリケーションがデフォルト ポートを離れるとバインドできませんでしたが、ポートがデフォルトになると正常に戻りました。

netstat と curports を通じてリッスンしているアプリケーションをチェックし、これらのポート上の接続もチェックしましたが、完全に無料でした。

答え1

サーバーの一時ポートが不足している可能性があります。

これは、イベントビューア(実行 -> eventvwr.msc)。警告がないか確認します。システムプロトコルID: 4227, 4231からプロトコルソース。何か見つかった場合は、サーバーを再起動し、レジストリを介してTCP/IPプロトコルを調整する必要があります。Windows Server 2012 R2では一時ポートが不足するが、そうすべきではない

答え2

おそらく、プログラムがファイアウォールの例外リストに登録されていて、そのリストが消去されたのでしょう。

私も、ファイアウォールがインストールされており、設定する必要があった両方きちんと。そのせいで髪の毛が引っ張られてしまいました。

答え3

Windows ファイアウォール サービスを開始し、その後 Windows ファイアウォール インターフェイスから開始/停止してみましたか?

スタートをクリックし、検索をクリックして、「セキュリティが強化された Windows ファイアウォール」を検索します。

Windows 7 および 2008R2 では、ファイアウォールで何を行うかに関係なく、バックグラウンド サービスを開始する必要があるという問題があります。

答え4

Hyper-Vなどのサービスを使用している場合は、「除外ポート範囲このシナリオでは、一連のポートが使用できなくなります。

確認するには

PS ~> netsh interface ipv4 show excludedportrange protocol=tcp

Protocol tcp Port Exclusion Ranges

Start Port    End Port
----------    --------
      5357        5357
      5985        5985
     47001       47001
     50000       50059     *

ポートが上記の範囲内にある場合、それらをバインドする手段はどれも失敗します。スーパーユーザーの回答、それを解放するために試すことができます

net stop winnat

独自のポートを予約するには、

netsh int ipv4 add excludedportrange protocol=tcp startport=50323 numberofports=1

関連情報