无法连接GCP Compute Engine实例:4003后端连接失败(端口22)
排查GCP Compute Engine IAP SSH连接失败(错误4003)
以下是可能导致连接失败的原因及对应的排查/解决步骤:
1. 实例内部防火墙拦截
GCP层面的防火墙规则允许流量,但VM内部的防火墙(如ufw、iptables)可能阻断了22端口的入站流量:
- 若能通过GCP控制台的串行端口或内置终端访问实例,执行以下命令检查:
# 查看ufw状态 sudo ufw status # 检查iptables是否允许22端口 sudo iptables -L INPUT -n | grep 22 - 若发现拦截,执行
sudo ufw allow 22或调整iptables规则放行22端口。
2. IAP访问权限缺失
当前账号可能丢失了IAP隧道访问的必要权限:
- 检查账号是否拥有
roles/iap.tunnelResourceAccessor角色(或iap.tunnelInstances.accessViaIAP权限):gcloud projects get-iam-policy <project-name> --filter="bindings.members:你的邮箱地址" --format="value(bindings.role)" - 若权限缺失,在GCP IAM控制台为账号添加
IAP Tunnel Resource Accessor角色。
3. SSH服务未正常运行
VM实例内的SSH服务(sshd)可能未启动或出现故障:
- 通过串行端口日志检查服务状态:
搜索gcloud compute instances get-serial-port-output <vm-name> --zone=us-west1-bsshd相关日志,确认是否有启动失败、配置错误等信息。 - 若服务未运行,在串行终端执行
sudo systemctl start sshd启动服务,或检查/etc/ssh/sshd_config配置是否有误。
4. GCP防火墙规则细节错误
即使规则已关联实例,仍可能存在配置细节问题:
- 确认规则符合以下要求:
- 方向:Ingress
- 来源IP范围:
35.235.240.0/20(IAP官方IP段) - 允许协议/端口:
tcp:22 - 目标标签:与VM实例的标签匹配(或目标为所有实例)
- 用命令验证规则:
若规则不存在或配置错误,重新创建符合要求的规则。gcloud compute firewall-rules list --filter="direction=INGRESS AND allowed.tcp:22 AND sourceRanges=35.235.240.0/20"
5. 实例网络状态异常
VM实例的网络配置可能出现异常:
- 检查实例是否处于Running状态,内部IP是否正常分配;
- 确认子网路由未拦截IAP流量,或未配置错误的自定义路由。
内容的提问来源于stack exchange,提问作者sir-dreams-a-lot
相关产品推荐
相关产品推荐

