无法通过SSH/gcloud连接无GPU默认配置的Google深度学习VM原因排查
SSH连接Google深度学习VM超时的原因排查与解决办法
遇到SSH连不上刚创建的VM这种情况确实闹心,尤其是配置都按默认来的,本来以为能直接上手。针对你遇到的 ssh: connect to host 34.105.108.43 port 22: Connection timed out 报错,我给你梳理几个最可能的原因和对应的排查步骤:
1. 防火墙规则未开放SSH端口(最常见原因)
Google Cloud默认会有一条 default-allow-ssh 的防火墙规则,允许外部访问22端口,但有时候这条规则可能被误删,或者没正确应用到你的VM所在网络。
- 排查&修复步骤:
- 打开GCP控制台的「VPC网络 > 防火墙」页面
- 查找名为
default-allow-ssh的规则,确认它处于已启用状态 - 检查规则的「目标标签」是否包含
ssh(或者目标设为「所有实例」),「源IP范围」是否覆盖你的本地公网IP(如果想快速测试,可暂时设为0.0.0.0/0,测试完记得改回更严格的范围) - 如果找不到这条规则,手动新建一个:方向选「入站」,目标选「所有实例在网络中」,协议端口填
tcp:22,源IP按需设置,保存后再尝试连接
2. VM实例的网络配置异常
- 先确认你用来连接的IP
34.105.108.43确实是VM的外部IP(去实例详情页核对,别误把内部IP当成外部IP使用) - 检查实例所在的子网是否允许分配外部IP:虽然你用的是默认配置,但偶尔子网可能被修改过,去「VPC网络 > 子网」查看对应子网的配置,确认「外部IP访问」是允许状态
3. 本地网络的限制
你本地的网络(比如公司内网、家庭路由器)可能屏蔽了22端口,或者代理设置影响了SSH连接。
- 测试方法:换一个网络试试,比如手机热点,如果能连上,那肯定是本地网络的问题,需要调整本地防火墙规则或者代理设置
- 也可以在本地终端执行
telnet 34.105.108.43 22,如果返回超时,基本能确定是本地网络层面阻塞了端口
4. VM内部的SSH服务未正常启动
虽然实例显示启动成功,但内部的SSH服务可能没正常运行(不过这种情况一般会报「Connection refused」,但也不妨排查一下):
- 用GCP控制台的「连接到串行端口」功能进入实例的串行控制台,登录后执行
sudo systemctl status sshd查看服务状态 - 如果服务未启动,手动启动:
sudo systemctl start sshd,再设置开机自启:sudo systemctl enable sshd
5. GCP区域网络故障
偶尔会遇到对应区域的网络故障,你可以去GCP的状态仪表板查看对应区域的服务状态,如果有故障,只能等待官方修复。
内容的提问来源于stack exchange,提问作者Franck Dernoncourt




