WindowsのTCPセッション数が枯渇した場合の上限値の確認&変更方法の備忘録メモです。
確認手順
■ipv4
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
■ipv6
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
結果の見方としては動的ポートの49152から16384個使いますよってことで、規定値では49152ポート~65535ポートまで使う設定となっています。
設定変更
1000番ポートから65535番ポートまで使う設定に変更するには
■ipv4
netsh int ipv4 set dynamicport tcp start=10000 num=65535
netsh int ipv4 set dynamicport udp start=10000 num=65535
■ipv6
netsh int ipv6 set dynamicport tcp start=10000 num=65535
netsh int ipv6 set dynamicport udp start=10000 num=65535
上記と合わせてセッションの解放時間の変更もしましょう。
既定ではセッション終了後、4分維持(TIME_WAIT状態)されてしまいます。
30秒に変更するには管理者としてコマンドプロンプトを起動して
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters" /v TcpTimedWaitDelay /t REG_DWORD /d 30 /f
を実行し再起動します。
おまけ
現在のセッション数を確認するにはコマンドプロンプトで
netstat -an
さらにTCPのセッション数を確認するには
netstat -an | find /c "TCP"
UDPのセッション数を確認するには
netstat -an | find /c "UDP"
総数を確認するには
netstat -an | find /c /v ""
こんな感じですかね。
ころころ状態変わるからTCPカウントして、UDPカウントして総数確認したら足し算して合わないってあるけど、、、ざっくりとした数を知りたいときにどうぞ。