web-dev-qa-db-ja.com

Windows 10の動的ポート範囲でポートを予約する

Windows 10の動的ポートの範囲を20000〜29999(包括的に)に設定したいので、範囲は10000ポートにします。

これを行うには、次のコマンドを実行します。

netsh int ipv4 set dynamicport tcp start=20000 num=10000
netsh int ipv4 set dynamicport udp start=20000 num=10000
netsh int ipv6 set dynamicport tcp start=20000 num=10000
netsh int ipv6 set dynamicport udp start=20000 num=10000

これに続いて、次のコマンド例を使用して範囲をクエリします。

netsh int ipv4 show dynamicport tcp

...次の結果が生成されます。

Protocol tcp Dynamic Port Range
-------------------------------
Start Port      : 20000
Number of Ports : 10000

これは私には正しいようです。

ここで、そのWindows動的ポート範囲内の特定のポート(21000-21050など)を予約するとし、次のコマンドを実行します。

reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ /v ReservedPorts /t REG_MULTI_SZ /d 21000-21050 /f

これに続いて、Windows動的ポート範囲を再クエリすると、次の結果が生成されます。

Protocol tcp Dynamic Port Range
-------------------------------
Start Port      : 20000
Number of Ports : 10000

これは予想される動作ですか?または、結果のテーブルをやや断片化して、ダイナミックレンジの中間にあるポート予約を反映する必要があります。何かのようなもの:

Protocol tcp Dynamic Port Range
-------------------------------
Start Port      : 20000, 21051 
Number of Ports : 1000 , 8950

私のポート予約コマンドは、ReservedPorts設定でレジストリを更新したので、これはすべて正しい動作であると思います。

システムに配置する前にこのプロセスをテストする他の方法はありますか?

ありがとう

3
user961820

Windows Vista以降は、ReservedPortsレジストリ値をサポートしていません。 ( ソース

代わりに、netshユーティリティを使用して同じ効果を得ることができます。

netsh int <ipv4|ipv6> Add excludedportrange [protocol=]tcp|udp [startport=]<integer> [numberofports=]<integer> [[store=]active|persistent]

エントリを削除することもできます:

netsh int <ipv4|ipv6> delete excludedportrange [protocol=]tcp|udp [startport=]<integer> [numberofports=]<integer> [[store=]active|persistent]

...またはそれらをリストします:

netsh int <ipv4|ipv6> show excludedportrange [protocol=]tcp|udp [[store=]active|persistent]

netsh int <ipv4|ipv6> show dynamicport tcpの出力に影響するものはないと思います。

4
Daniel B