跳转到主要内容

调整 NPC 断线检测时间

调整 NPS 与 NPC 在连续未收到探测响应时关闭桥接连接的等待时间

NPS 与 NPC 的多路复用数据桥接每 5 秒发送一次探测包。disconnect_timeout 表示允许连续未收到探测响应的次数,不是秒数;默认 60,约 5 分钟后判定桥接失效。

配置两端

服务端 nps.conf:

disconnect_timeout=60

NPC 配置文件:

[common]
disconnect_timeout=60

无配置文件模式:

./npc -server=nps.example.com:8024 -vkey=客户端验证密钥 -disconnect_timeout=60

修改后重启对应进程。建议两端显式设置相同数值,避免一端已经放弃连接、另一端仍长时间等待。

如何选择

网络场景建议
稳定内网/专线,需要快速发现故障可逐步降低,并先验证短时抖动不会误断
公网、移动网络、卫星链路或偶发丢包保持默认或适当提高
防火墙/NAT 有较短空闲超时先调整网络设备;探测间隔固定为 5 秒

数值越小,故障切换越快,但瞬时拥塞可能让该客户端承载的所有活动连接一起中断。数值越大,误断更少,但黑洞连接恢复更慢。

重连行为与排障

只有 NPC 发现数据桥接 socket 已关闭,才会进入重连流程。正常情况下 NPS 主动关闭会通过 FIN/RST 传到 NPC;如果中间网络静默丢弃报文,NPC 必须等自己的阈值到达后才能关闭并重连,随后还会等待约 5 秒再尝试。

调整前先查明断线原因。若固定约 5 分钟断开,检查两端探测日志和防火墙/NAT 会话;若高峰时误断,检查丢包和拥塞。该参数不会让已经中断的 SSH、数据库或 WebSocket 会话自动恢复,应用仍需自行重连。