win 解决TCP端口耗尽问题
Windows 服务器中,如果对外发起大量连接时,可能会出现端口耗尽的情况,原因如下:
- TIME_WAIT超时时间为4分钟;
- 最大端口为65535。
例如:某个服务连接数据库服务器出现异常,查看TCP连接池发现TIME_WAIT状态的TCP绑定的6w以上的端口被占用,导致服务无法申请65535之上的端口,而无法建立新的TCP连接。
查看端口是否耗尽
netsh interface ipv4 show tcpstats
netsh int ipv4 show dynamicport tcp
增加端口数(端口超过65535即依旧无法申请)
netsh int ipv4 set dynamicport tcp start=1025 num=60000
# start是起始端口号,num为数量,该命令意思为从1025开始到61025结束,共6000个端口
修改注册表,设置Time Wait时间(最小为30s)
新增值 TcpTimedWaitDelay,类型REG_DWORD , 设置为十进制30。注册表路径如下:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
标签:netsh,win,端口,TCP,ipv4,耗尽
From: https://www.cnblogs.com/RidingWind/p/18650708/win-solving-the-tcp-port-exhausting-problems