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

无法修改ngrok请求响应Keep-Alive头,长连接超时问题求助

解决ngrok长请求断开及Keep-Alive头不生效问题

问题本质

ngrok默认的5分钟连接超时由其内部会话超时机制控制,不是单纯修改Keep-Alive请求/响应头就能覆盖的。你添加的自定义头大概率被ngrok默认配置覆盖,或者客户端/服务端未正确识别。Postman的SSL解密错误是连接异常断开时的握手异常,根源还是超时断开。

可行解决方案

1. 用--timeout参数直接修改会话超时

这是最有效的方式,优先级高于头信息配置,直接修改ngrok代理层的连接超时:

./ngrok http --timeout 360s 3001

360s代表6分钟超时,可按需调整(最大支持1小时即3600s),从根源避免5分钟断开问题。

2. 通过配置文件强制覆盖Keep-Alive头

配置文件的规则优先级高于命令行临时参数,能确保自定义头生效:

  • 创建/编辑ngrok.yml配置文件:
version: "2"
tunnels:
  web:
    addr: 3001
    proto: http
    request_header_add:
      "Keep-Alive": "timeout=60"
    response_header_add:
      "Keep-Alive": "timeout=60"
    timeout: 360s
  • 启动ngrok时指定配置文件:
./ngrok start -config ngrok.yml web

3. 服务端补充Keep-Alive配置

在本地服务中添加响应头,和ngrok配置形成配合:
以Node.js/Express为例:

app.use((req, res, next) => {
  res.setHeader('Keep-Alive', 'timeout=60, max=100');
  next();
});

让客户端同时接收ngrok和服务端的头信息,减少识别偏差。

4. 临时规避Postman SSL错误

若Postman仍出现解密报错,可在设置中关闭SSL certificate verification(设置>通用>SSL证书验证),但这只是临时规避,核心还是解决超时问题。

验证方式

启动ngrok后,用curl查看响应头确认配置生效:

curl -I https://你的ngrok域名

同时测试长耗时请求,确认超过5分钟后不会断开连接。

内容的提问来源于stack exchange,提问作者Saurav Sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 07:53:12