在Linux中,我可以使用/proc/sys/net/ipv4/ip_local_port_range
文件查看或更改短暂端口范围。
在Windows机器上,如何查看或更改短暂端口范围?
在Linux中,我可以使用/proc/sys/net/ipv4/ip_local_port_range
文件查看或更改短暂端口范围。
在Windows机器上,如何查看或更改短暂端口范围?
http://www.ncftp.com/ncftpd/doc/misc/ephemeral_ports.html#Windows上写道:
根据Microsoft Knowledgebase文章929851,从Windows Vista和Windows Server 2008开始,Windows现在默认使用一个大范围(49152-65535)。该文章还展示了如何更改范围,但默认范围现在对于大多数服务器已足够。
对于较旧的Windows操作系统(Windows XP及更早版本),Windows使用传统的BSD范围1024到4999作为其短暂端口范围。不幸的是,似乎您只能设置短暂端口范围的上限。以下信息摘自Microsoft Knowledgebase文章196271:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
在“编辑”菜单上,单击“添加值”,然后添加以下注册表值:
Value Name: MaxUserPort Data Type: REG_DWORD Value: 65534 <for example>
有效范围:5000-65534(十进制)默认值:0x1388(5000十进制)
描述:此参数控制应用程序从系统请求任何可用用户端口时使用的最大端口号。通常,短暂(即短暂的)端口分配在1024和5000之间的值之间。
注意:还有另一篇相关的KB文章(812873),它声称允许您设置排除范围,这可能意味着您可以排除端口1024-9999(例如),以使短暂端口范围为10000-65534。但是,我们无法使其正常工作(截至2004年10月)。
这是一个老问题,在新的Windows版本中答案似乎已经改变了(我不确定具体是哪些版本)。
netsh int ipv4 show dynamicport tcp
Protocol tcp Dynamic Port Range
---------------------------------
Start Port : 49152
Number of Ports : 16384
netsh int ipv4 set dynamicport tcp start=49200 num=16000
对于Windows Server 2003以上的版本,不支持ReservedPorts。
可以通过使用netsh添加缺失的功能来解决问题。