Skip to content

Latest commit

 

History

History
41 lines (26 loc) · 1.77 KB

200605091159.txt.md

File metadata and controls

41 lines (26 loc) · 1.77 KB

5.31 调整动态TCP端口号的上限

http://scz.617.cn/windows/200605091159.txt

Q:

4台Windows客户机访问一台Linux服务器,服务器入连接数可以支持15000以上,平均 每台客户机出连接数大致在4000左右,之后客户机再connect()就会报10055错误:

An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full.

A: flier@nsfocus

参看:

http://support.microsoft.com/kb/q196271

动态TCP端口号的上限缺省是5000,动态TCP端口号的范围缺省是[1024,5000],这是 一个闭区间。在XP SP1上如果启用了"SSDP Discovery Service",5000/TCP将被这个 服务占用,则动态TCP端口号上限下降成4999。可以用一个多线程的端口扫描程序大 量创建TCP连接,再用"netstat -na"观察动态TCP端口号的上限。

有一个注册表项用于控制动态TCP端口号上限:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] "MaxUserPort"=dword:0000fffe

该注册表项有效范围是[5000,65534],缺省是5000。如果注册表项不在有效范围内, 将自动选用最接近的有效值(5000或65534),不会引起别的麻烦。最终动态TCP端口号 的范围是闭区间[1024,MaxUserPort]。

D: scz@nsfocus 2007-04-11 21:00

XP SP2的"SSDP Discovery Service"不再使用5000/TCP,换成了2869/TCP。

检查PFW例外设置中的"UPnP框架"。默认情况下2869/TCP并未侦听中,PFW默认开放了 这个端口,但只允许子网内IP访问该端口。注意一些潜在的安全问题。