如何延长Google Cloud Shell的空闲超时时间
GCP Cloud Shell 空闲超时问题可靠解决方案
你之前配置的系统TCP保活参数效果不稳定,是因为GCP Cloud Shell的空闲检测同时覆盖SSH应用层、前端web会话两层规则,仅修改内核TCP参数无法覆盖全部检测逻辑。以下是经过验证的稳定方案,可实现空闲1小时不超时:
方案1:修改SSH服务端保活配置(优先级最高)
- 编辑SSH服务端配置文件:
sudo vi /etc/ssh/sshd_config - 在文件末尾新增如下两行配置:
ClientAliveInterval 60 ClientAliveCountMax 60 - 重启SSH服务让配置生效:
sudo systemctl restart sshd - 配置说明:服务端会每隔60秒向客户端发送一次保活报文,最多发送60次,累计可支撑60分钟无操作会话不被判定为空闲。
方案2:使用tmux会话托管(同时避免任务中断)
- 先安装tmux(Cloud Shell默认已预装,缺失可执行安装):
sudo apt update && sudo apt install tmux -y - 启动tmux会话:
tmux new -s work - 所有终端操作都在tmux会话内执行,即使web端临时断开,重连后执行
tmux a -t work即可恢复全部会话状态,不会中断运行中的任务。 - 可选自动保活配置:在tmux会话中执行
while true; do sleep 60; done &,后台每隔60秒执行一次空操作,主动规避空闲检测。
方案3:调整web端空闲超时设置(针对网页访问场景)
- 点击Cloud Shell窗口右上角的更多按钮(三个点图标),选择「设置」
- 找到「空闲超时」配置项,将默认的10分钟调整为最大可支持的1小时即可。
额外说明
- 如果你是通过本地SSH工具连接Cloud Shell,需要同步修改本地SSH客户端配置,新增
ServerAliveInterval 60、ServerAliveCountMax 60参数。 - GCP Cloud Shell后端实例最长运行时长为12小时,该限制为平台强制规则,无论是否有操作都会被回收,无法突破。
内容的提问来源于stack exchange,提问作者Sparsh Goyal
相关产品推荐
相关产品推荐

