“摄像头App动不动显示设备离线,重新登录又能看几分钟。”多数人第一反应是设备坏了或者WiFi不稳。但在新近装宽带的用户里,相当高比例的这类问题,答案出在一个节奏错配上。
会话表:运营商那台设备只记你15到30分钟
你家设备访问云端,要从一个公网出口出去。在共享地址转换(CGNAT)环境里,运营商那台转换设备靠一张“会话表”记账:哪个内网设备、用了哪个出口端口、连了哪里——回程的数据才能照着表找到你。这张表不永久记,为了周转资源,会话超时普遍设得很短,TCP类会话常见15到30分钟。
而看家设备靠心跳活着:定期给云端发一个小包,证明自己在线。物联网设备的节能设计,把心跳间隔定在5到15分钟。看起来间隔比超时短,没事——问题出在边界上:有的设备TCP长连接按十分钟级别保持,CGNAT的十五分钟超时正好贴着脸。一旦云端会话先被清掉,设备下一个包再过来,被当成全新连接重建,出口端口十有八九会变。
云平台侧看到的是:这个设备的来访“身份”变了。多数平台不能接受“端口说变就变”,判定会话异常,触发重新认证或连接重置——落到App上,就是“设备离线”“登录状态过期”。
一句话概括:设备的心跳节奏,和运营商清会话的节奏,没对上。这中间的错配,就是所有玄学掉线的来源。
双重NAT会让问题更没规律
自家路由器还有自己的一张会话表,它的超时通常长得多(TCP从两小时到一天都有)。两张表规则不一致时,现象就会变得飘忽:有时五分钟就离线,有时一夜都正常。遇到“不规律离线”,先排查双重NAT——光猫拨号加路由器再转一层,改桥接就解决了这一半。
怎么把它坐实:看日志对时间
这套判断不需要仪器:把App里“离线”发生的时间点记下来,连续记一两天。离线间隔稳定在二三十分钟上下、且每次重新登录又能活差不多的时长,基本可以坐实会话错配;离线时间毫无规律、伴随掉线重连WiFi的,回到无线质量那条线去查;只在晚高峰离线,则是共享带宽拥塞叠了进来。三种曲线,三种病因。
四步确认与修复
- 确认自己是否在共享转换后面。进光猫或路由器后台看WAN侧IPv4地址:以10开头、100.64到100.127之间、或172.16到172.31,就是在转换层后头。家庭宽带公网IPv4收紧的背景,本号前面聊过。
- 把设备的保活间隔调短。摄像头、NAS的管理界面或配套App里,凡有“心跳/保活间隔”选项,设到5分钟以内,确保比运营商会话超时短得多——让会话表条目永远在被清理前刷新。
- 检查连接走的什么协议。不少主流物联网平台采用MQTT或UDP类长连接,保活机制对转换环境更友好;纯TCP长连接的老方案最容易撞上错配。设备和支持新旧协议的平台可切,优先切。
- 根治靠换线路。商务宽带提供独立公网地址,不存在千人共用一出口的会话挤压;或者开启IPv6,设备直接拿自己的地址跟云端讲话,没有共享转换这一层。摄像头数量多的店铺,强烈建议把监控上云放进商务线路——晚高峰的家庭线路,带宽和会话稳定性两头都在挤。
一个判断口诀
定时掉线(半小时上下一次),会话层错配,调心跳;不规律掉线,先查双重NAT和无线干扰;白天正常夜里掉,上行带宽和共享拥塞,该动线路。三类成因三种药,别错怪摄像头。
