在 Windows 客户端计算机上运行以下命令。
> netsh int ipv4 show dynamicport tcp
Protocol tcp Dynamic Port Range
---------------------------------
Start Port : 49152
Number of Ports : 16384
根据以上输出,可以预期打开的端口应该在 49,152 和 65,536 之间,但在应用程序运行时,nestat 命令返回以下内容(由于显而易见的原因,IP 地址已更改):
TCP 111.111.11.11:22416 myServer:8888 ESTABLISHED
TCP 111.111.11.11:22436 myServer:8888 ESTABLISHED
TCP 111.111.11.11:22448 myServer:8888 ESTABLISHED
TCP 111.111.11.11:22485 myServer:8888 ESTABLISHED
TCP 111.111.11.11:22498 myServer:8888 ESTABLISHED
TCP 111.111.11.11:22514 myServer:8888 ESTABLISHED
TCP 111.111.11.11:22516 myServer:8888 ESTABLISHED
TCP 111.111.11.11:22518 myServer:8888 ESTABLISHED
TCP 111.111.11.11:22522 myServer:8888 ESTABLISHED
TCP 111.111.11.11:22526 myServer:8888 CLOSE_WAIT
TCP 111.111.11.11:22538 myServer:8888 ESTABLISHED
TCP 111.111.11.11:22584 myServer:8888 CLOSE_WAIT
在另一台 Windows 客户端计算机上运行相同的命令。
> netsh int ipv4 show dynamicport tcp
Protocol tcp Dynamic Port Range
---------------------------------
Start Port : 49152
Number of Ports : 16384
这将生成预期在 49,152 到 65,536 之间的一系列端口。
TCP 222.222.22.22:51131 myServer:8888 ESTABLISHED
TCP 222.222.22.22:51348 myServer:8888 ESTABLISHED
TCP 222.222.22.22:51362 myServer:8888 ESTABLISHED
TCP 222.222.22.22:51363 myServer:8888 ESTABLISHED
TCP 222.222.22.22:51364 myServer:8888 ESTABLISHED
TCP 222.222.22.22:51356 myServer:8888 ESTABLISHED
TCP 222.222.22.22:51382 myServer:8888 ESTABLISHED
TCP 222.222.22.22:51385 myServer:8888 ESTABLISHED
TCP 222.222.22.22:51386 myServer:8888 ESTABLISHED
TCP 222.222.22.22:51387 myServer:8888 CLOSE_WAIT
TCP 222.222.22.22:51392 myServer:8888 ESTABLISHED
TCP 222.222.22.22:51398 myServer:8888 CLOSE_WAIT
问题:
什么原因会导致 Windows 客户端选择超出预期范围的端口范围?
是否有任何设置需要检查、命令需要运行、或者注册表项需要验证?