关于 “maximum connection count reached” 错误

提醒

2023-4-25已升级RosZ对接脚本,如遇类似错误,RosZ对接计划任务会自动停止1分钟,待请求限制解除后继续执行,无需人工干预。

 

故障解决思路概述

Ros本地网络对接RosZ不稳定时,偶尔会报“maximum connection count reached”错误。

错误内容

原因是Ros路由系统有指令连接限制,根据Mikrotik论坛的信息,为10个连接限制。

如果Ros设备有较多tool fetch请求,容易触发这个限制。

建议执行以下指令测试是否有连接问题:

/tool fetch url=https://rosz.cn/i
如有报错“maximum connection count reached”,需要检查以下项目:

1、检查System Scheduler,是否有循环执行的计划任务使用了tool fetch功能,如果有建议频率设置为10秒以上;

2、检查PPP Profile中每一项配置文件的Scripts中On Up和On Down是否有使用tool fetch功能的脚本,建议删除,Profile的On和Down是并发执行,很容易堵塞,无法保证执行成功率。建议改为计划任务调用执行。

 

故障解决实例

用户问题反馈(时间:2022年12月16日)

一位赞助用户,之前使用一直正常,突然反馈不能使用了,Ros也不正常,提示磁盘已满。

由于用户此时不方便远程协助,也无法通过片面的问题描述分析清楚故障原因,暂时通过删除文件恢复路由系统正常,并约好时间后续远程查看。

用户问题反馈

 

第一次远程协助(时间:2022年12月21日)

远程协助,发现用户自行添加了input链表所有流量的drop规则,导致Ros路由自身出去的流量全部被阻断。

同时,用户日志保存数据要求高,启用了SFtp模式传输,本地开启了磁盘日志数据缓存。

日志传输链路被input规则阻断后,缓存数据持续增长,导致磁盘塞满,Ros运行出现问题。

解决方案:通过添加到114DNS的accept规则,以及到rosz.cn域名关联ip的accept规则,放行路由自身DNS请求和RosZ对接的流量,这样也兼顾了用户的安全需求。

第一次故障问题修复

 

第二次远程协助(时间:2022年12月22日)

用户反馈某一台设备RosZ连接仍然出现断开问题,远程协助检查发现,设备计划任务中有ddns脚本在执行,对应3322.net域名。

由于input链路的drop规则没有放行3322.net,产生了比较多的超时连接,而Mikrotik限制10个(Mum论坛数据),达到了上限,所以无法连接RosZ。

关闭3322.net的ddns计划任务,使用RosZ动态域名功能替换,并重启设备问题解决。

第二次故障问题修复

 

总结

出现“failure: maximum connection count reached”错误无法正常使用RosZ时,请检查路由设备是否存在运行中的脚本任务,不断请求网络数据,达到Ros的连接上限。

关闭对应任务并重启设备即可修复。

如您设备不方便重启,可以尝试暂停RosZ和其他使用Tool Fetch功能的脚本,等待1-5分钟,再启用,一般都可以恢复正常。