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

如何让GitHub+ngrok搭建的Windows VPS长期保持在线

Windows VPS运行30分钟自动关机的解决方法

排查优先级从高到低

  • 先查GitHub Actions的默认超时限制
    你这套用GitHub+ngrok搭的Windows实例本质跑在GitHub Actions的Job runner上,免费版GitHub Actions单个Job默认超时就是30分钟,到点平台直接强制销毁运行环境,表现就是和正常关机一模一样的断网下线。
    修复方法:打开仓库.github/workflows目录下的工作流yaml配置,找到timeout-minutes参数,把默认的30改成你需要的数值,免费版单个Job最长支持设为360分钟(6小时)。
  • 排查脚本里的主动关机逻辑
    逐行检查对应项目仓库里的bat、PowerShell启动脚本,删掉所有类似shutdown /s /t 1800的定时关机命令;另外注意很多现成的封装脚本会在检测到ngrok隧道断开、程序异常退出时直接执行关机,把这类逻辑改成自动重启对应进程就行,别一出错就关机。
  • 解决ngrok空闲断连触发的关机
    免费版ngrok默认规则是隧道连续5分钟没有流量就会自动回收断开,不少脚本会把ngrok退出作为关机触发条件。
    对应调整:
    1. 在启动脚本里加心跳任务,每隔3-5分钟用curl打一次ngrok分配的公网地址,保持隧道持续有流量,避免被判定为空闲回收
    2. 加简单的进程守护逻辑,检测到ngrok进程挂了就自动重新启动,不要直接执行关机命令
  • 调整Windows实例内部的电源配置
    实例启动后先改几个系统设置,避免系统自己触发休眠、关机:
    1. 管理员身份打开命令提示符,执行powercfg /h off直接关闭系统休眠功能
    2. 把电源计划切换为高性能模式,把所有“无操作N分钟后自动睡眠/休眠/关闭硬盘”的选项全部设为“从不”
    3. 打开任务计划程序库,扫一遍所有计划任务,把触发条件为“系统启动后30分钟”、执行动作是关机的任务全部禁用

长时在线优化

GitHub Actions免费版本身有单Job最长6小时、账号每月总运行时长2000分钟的额度限制,不可能靠单次启动实现永久在线。可以在工作流配置里加自动续跑逻辑:当前Job运行到5小时50分左右的时候,自动调用GitHub API触发新的Job启动,同时提前给ngrok配置固定隧道(免费版支持绑定固定TCP地址),避免每次重连公网地址变化,就能实现近似不间断运行的效果。

内容的提问来源于stack exchange,提问作者Hammad Tanveer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 19:09:31