服务器 connectex: Only one usage of each socket address (protocol/network address/port) is normally permitt 报错
Window 服务器系统 frp穿透 软件隔段时间报错
如下:connectex: Only one usage of each socket address (protocol/network address/port) is normally permitt
No buffer space available (maximum connections reached?): connect
这里已经很明显了,是tcp连接数的问题,连接数满了,无法再建立连接了
服务器使用的是 windows serve 2016R2
使用命令CMD : netsh interface ipv4 show dynamicportrange tcp 查看了端口数发现只开放了少量端口
只需要打开注册表,新增两个参数
找到 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 目录下
新增 名字为:MaxUserPort 类型为:REG_DWORD (默认可用端口) 值为 65534 最大为: 65534
最小 1 MaxUserPort :65535 就是电脑最大端口数的数量

新增名字 TcpTimedWaitDelay 类型为:REG_DWORD (tcp恢复时间)值为 30 最小为:30 最大:240 秒

我这里修改了注册表后。
然后再次输入命令 netsh interface ipv4 show dynamicportrange tcp
发现端口数改变了。
如果没有继续报错就不需要重启
报错重启电脑应该就不会出现了。
总结:
一、windows环境
1.查看负载机端口号使用情况
netsh int ipv4 show dynamicportrange tcp
2. 查看连接统计
netsh interface ipv4 show tcpstats
3.修改可用端口起始范围:
netsh int ipv4 set dynamicport tcp start=2000 num=63000 netsh int ipv4 set dynamicport udp start=2000 num=63000 netsh int ipv6 set dynamicport tcp start=2000 num=63000 netsh int ipv6 set dynamicport udp start=2000 num=63000
4.修改超时时间
regedit打开注册表,添加:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
“MaxUserPort”=dword:0000fffe
“TcpTimeWaitDelay”=dword:0000005 (缩短为5秒)