windows server 2022服务器运行比特彗星软件一段时间后tcp端口异常丢失,该问题难以复现,排除临时端口解决
windows server 2022服务器运行比特彗星软件一段时间后tcp端口异常丢失,该问题难以复现,排除临时端口解决tcp端口突然丢失找到复现原因了,用户列表peer发起tcp请求的时候,如果软件用到的本地端口和软件监听端口一致,就会导致线程死锁出现tcp端口丢失
windows server系统默认的端口范围是1024-64511,现有版本解决方案,把端口改成3位数(或者65000及之后的端口),避免用到临时端口,后续新版本可以从软件代码上解决
C:\Users\Administrator>netsh int ipv4 show dynamicport tcp
协议 tcp 动态端口范围
---------------------------------
启动端口 : 1024
端口数 : 64511
C:\Users\Administrator>
Windows10 11家用系统不受此问题影响,家用电脑不会丢失tcp端口,默认的临时端口是49152-64511
Windows server不换tcp监听端口的解决办法
netsh int ipv4 add excludedportrange protocol=tcp startport=1235 numberofports=1 store=persistent
netsh int ipv4 add excludedportrange protocol=tcp startport=22223 numberofports=1 store=persistent
netsh int ipv4 add excludedportrange protocol=tcp startport=22224 numberofports=1 store=persistent
确认排除临时端口成功
netsh int ipv4 show excludedportrange protocol=tcp
后续如果要删除添加的排除端口
netsh int ipv4 delete excludedportrange protocol=tcp startport=1235 numberofports=1 store=persistent
netsh int ipv4 delete excludedportrange protocol=tcp startport=22223 numberofports=1 store=persistent
netsh int ipv4 delete excludedportrange protocol=tcp startport=22224 numberofports=1 store=persistent
以上依旧是猜测的结果,因为Windows本身会自动跳过22223当前软件监听端口,上方图中的22223其实是远程访问本地,任务管理器没显示来源方向而已,本地发起请求的时候使用的临时端口会跳过已监听
至少能比较轻松的复现了,软件全选任务停止,批量替换tracker清空等待发起,开启任务就能概率复现
出现丢tcp端口能观察到的就是会卡住几个ESTABLISHED,然后过几分钟会变成CLOSE_WAIT状态一直不消失
netstat -ano | find "22223"
并且,上面添加添加排除端口的方法实际上测试后并不起作用,添加排除后依旧会出现比特彗星丢端口的情况,比较Windows系统内核已经自动化的排除了
等于说又陷入了不知道这是什么原因导致的丢端口,今天得到的结果就是能复现这个问题了,只要重复那个操作开启几次任务就能复现
页:
[1]