GCP启动Compute VM实例后外部IP及SSH无法访问的解决求助
GCP VM重启后SSH/外部IP无法访问的排查解决步骤
1. 核对实例网络基础配置
- 确认外部IP类型:如果是临时外部IP,实例停止重启后会自动更换IP,务必使用控制台显示的最新IP,而非旧IP;如需固定IP,需将其转为静态外部IP。
- 检查网络接口状态:确认实例已关联正确子网,外部IP状态显示为「已分配」,无异常标识。
2. 通过串行控制台排查系统内部状态
GCP控制台提供的串行控制台可绕过外部网络直接连接实例,是核心排查手段:
- 进入实例详情页,点击「连接」→「串行控制台」,使用系统账号登录(若启用OS登录则用对应账号)。
- 检查SSH服务状态:执行
sudo systemctl status sshd(Debian/Ubuntu)或sudo systemctl status ssh(RHEL/CentOS),确认服务是否正常运行、有无启动报错。 - 检查系统防火墙:执行
sudo ufw status(Ubuntu)或sudo firewall-cmd --list-all(CentOS),确认22端口(SSH)及网站服务端口(如80/443)已开放。
3. 验证GCP层面网络规则
- 复查防火墙规则:确保存在针对
0.0.0.0/0开放22、80、443端口的规则,且规则的「目标标签」或「目标实例」包含当前VM,规则状态为「已启用」。 - 检查子网外部IP设置:确认实例所在子网未禁用外部IP分配(若创建时选了「不分配外部IP」,重启后不会自动分配,需手动修改实例网络配置)。
- 核对路由表:查看子网路由,确认无自定义路由拦截外部进出流量。
4. 排查系统启动异常
- 查看启动日志:执行
journalctl -b查看本次启动的系统日志,排查是否存在服务启动失败、磁盘挂载异常、网卡初始化失败等问题(比如网卡未获取到IP)。 - 检查磁盘状态:执行
df -h查看磁盘使用率,mount检查挂载状态,确认无磁盘满、只读等异常。
5. 应急修复方案
若以上排查均无结果,可尝试:
- 创建临时VM,挂载原VM的启动盘,检查SSH配置(
/etc/ssh/sshd_config)、网络配置文件是否存在异常。 - 备份重要数据后,重新创建实例并恢复数据。
内容的提问来源于stack exchange,提问作者Monzur Alam
相关产品推荐
相关产品推荐

