You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ngrok中“Connection”的含义解析及TCP隧道SSH场景下触发免费版连接限制的排查求助

Ngrok中“Connection”的含义解析及TCP隧道SSH场景下触发免费版连接限制的排查求助

各位大佬好,我在家搭了个自用的小型服务器,用Ngrok客户端跑TCP隧道来做SSH远程访问。最近在Ngrok的用量页面上,我好几次触发了免费版的连接相关限制,但我明明大概每天才主动SSH一次,完全搞不懂为啥会这样,想请大家帮忙分析下!

我触发的限制是:

  • 连接速率(Connection Rate):超过了每分钟120次的上限
  • TCP端点连接数(TCP Endpoint Connections):超过了累计5000次的上限

首先想请教下,Ngrok里的“Connection”到底指什么?然后也请大家帮忙出出主意,怎么排查我为啥会触发这些限制?我已经找过Ngrok支持,但他们完全没提供有用的帮助。

先理清楚Ngrok里“Connection”的定义

Ngrok里的“Connection”对应的就是标准的TCP连接:每当有一个TCP握手请求发向你的隧道端点,不管最终是否成功建立会话,都会被算作一个“连接”计数。针对我触发的两个限制,具体的计数逻辑是:

  • 连接速率(Connection Rate):统计的是每分钟内向你的TCP隧道发起的新TCP连接请求总数,包括所有成功、失败的连接尝试,不止是我主动发起的SSH连接。
  • TCP端点连接数(TCP Endpoint Connections):统计的是你的TCP隧道自启动以来(或者计费周期内)所有TCP连接请求的累计总数,同样涵盖所有连接尝试,不管连接后续是否正常断开。

我整理的几个排查方向,也请大家补充

  1. 排查是否被全网端口扫描盯上:免费版Ngrok的隧道地址是公开可访问的,很容易被全网自动化的端口扫描器盯上——它们会不断尝试连接你的隧道端口,这会疯狂消耗连接数配额。你可以在服务器上抓包(比如用tcpdump监听Ngrok相关的端口),或者查看Ngrok日志里的连接来源,有没有大量陌生IP的请求。
  2. 检查SSH服务和后台自动连接行为:有没有可能是SSH服务的配置问题?比如KeepAlive参数设置不当导致频繁重连?或者服务器上有后台脚本、监控工具、同步服务在自动尝试连接隧道?甚至是SSH的ControlMaster等持久连接配置导致的多余连接请求?
  3. 深挖Ngrok客户端日志:我目前能拿到的日志片段里有心跳超时的错误,这可能说明Ngrok客户端和服务器的会话不稳定,频繁断开重连——每次重连过程中可能会产生额外的连接计数。建议导出完整的Ngrok日志,搜索“new connection”这类关键词,统计短时间内的新连接请求数量。
  4. 测试更换新的隧道地址:如果怀疑是旧隧道地址被扫描,你可以停止当前隧道,重新启动一个新的(会分配新的端口/地址),然后观察连接数是否还会快速上涨。如果新隧道的连接数正常,那基本可以确定是旧地址被恶意扫描了。
  5. 检查Ngrok启动参数:你是用什么命令启动Ngrok隧道的?有没有设置特殊参数导致连接行为异常?比如是否开启了多路复用?或者隧道的协议配置有误?

我的Ngrok日志片段

t=2024-10-22T07:57:35+0000 lvl=eror msg="heartbeat timeout, terminating session" obj=tunnels.session obj=csess id=a7ae52e52338 clientid=103e180cfb4ee6395d96eeaf9d0a8eb7
t=...(剩余日志内容)

备注:内容来源于stack exchange,提问作者olives

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:53:16