同VPC内公有子网实例SSH连接私有子网实例超时求助
解决同VPC内公有实例SSH连接私有实例超时问题
以下是针对该问题的排查与解决步骤:
1. 检查私有实例的安全组入站规则
- 确保私有实例的安全组已添加**允许公有实例所在安全组(或公有实例私有IP)访问22端口(SSH)**的入站规则。
- 你能从本地连接私有实例,说明安全组已放行本地IP的22端口,但公有实例的访问权限可能未配置。
- 配置方式:在私有实例安全组的入站规则中,新增一条
SSH类型规则,源选择公有实例的安全组ID,或直接填写公有实例私有IP/公有子网CIDR范围。
2. 验证网络ACL(NACL)配置
- 私有子网关联的NACL:
- 入站规则:允许来自公有子网CIDR范围的TCP 22端口流量,同时允许返回的TCP流量(通常为1024-65535端口)。
- 出站规则:允许向公有子网CIDR范围返回TCP响应流量。
- 公有子网关联的NACL:
- 出站规则:允许向私有子网CIDR范围的TCP 22端口流量。
- 入站规则:允许来自私有子网CIDR范围的返回TCP流量。
注意:NACL是无状态规则,必须同时配置双向的入站、出站规则,不同于安全组的有状态特性。
3. 确认路由表的本地路由配置
- 检查公有子网和私有子网关联的路由表,确保均包含VPC本地路由(格式通常为
VPC的CIDR范围 -> local)。- 这条路由是VPC默认自动添加的,用于实现同VPC内不同子网间的通信,若被误删会直接导致跨子网实例无法互通。
4. 检查SSH连接细节
- 确保在公有实例上执行SSH命令时,使用的是私有实例的私有IP地址,而非公网IP(即便私有实例有弹性IP,同VPC内通信也应优先使用私有IP)。
- 验证公有实例上的密钥文件权限:执行
chmod 600 your-private-key.pem,将密钥文件权限设置为仅所有者可读,否则SSH会因权限过高拒绝连接。
5. 排查私有实例的系统防火墙
- 登录私有实例,检查操作系统层面的防火墙设置:
- 对于Linux实例,执行
iptables -L或ufw status,确认未阻止来自公有实例IP的22端口连接。 - 若存在相关限制,可添加允许规则或临时关闭防火墙进行测试。
- 对于Linux实例,执行
内容的提问来源于stack exchange,提问作者Satyen Bose
相关产品推荐
相关产品推荐

