无法跨VPC私有IP SSH连接及同VPC实例通信问题排查求助
排查VPC连通性问题:从同VPC不通到跨VPC SSH互访
咱们一步步拆解你的问题,这里有几个关键配置错误直接导致了连通性问题,先从最核心的问题入手:
1. 先修正VPC与子网的CIDR范围不匹配问题
你这里踩了个典型的配置坑:VPC2的CIDR是10.1.0.0/27(对应的地址范围是10.1.0.0~10.1.0.31),但你给它配置的两个子网却是10.0.0.0/28和10.0.0.16/28——这两个子网的地址段完全不在VPC2的范围内!
这种情况下,VPC2内的实例根本无法正常获取私有IP和网络配置,自然同VPC内的实例连ping都不通。你需要二选一修正:
- 要么把VPC2的CIDR改成能包含这两个子网的范围,比如
10.0.0.0/24 - 要么把VPC2的子网改成属于
10.1.0.0/27的地址段,比如10.1.0.0/28和10.1.0.16/28
2. 修复同VPC内实例的连通性
当VPC和子网CIDR匹配后,同VPC内还是ping不通?检查这两个关键点:
- 安全组规则:确保VPC2内两个实例的安全组都允许来自同VPC CIDR的流量:
- 入站规则添加:ICMP - 回显请求,来源设为VPC2的CIDR(比如
10.1.0.0/27) - 入站规则添加:SSH(22端口),来源同样设为VPC2的CIDR
- 入站规则添加:ICMP - 回显请求,来源设为VPC2的CIDR(比如
- 路由表配置:确认子网关联的路由表保留了默认的
local路由——这条路由是自动生成的,负责同VPC内的实例互访,千万别删除它。
3. 配置VPC对等连接实现跨VPC SSH互访
等同VPC内连通正常后,再配置跨VPC的互访,步骤如下:
3.1 确认对等连接状态
先检查VPC1和VPC2的对等连接是否已经接受并激活,只有状态显示“已激活”的对等连接才是有效的。
3.2 配置路由表
给两个VPC的子网路由表添加指向对等连接的路由:
- VPC1的子网路由表:新增路由,目标地址填VPC2的CIDR(比如
10.1.0.0/27),下一跳选择VPC对等连接的ID - VPC2的子网路由表:新增路由,目标地址填VPC1的CIDR(
10.0.0.0/16),下一跳同样选择VPC对等连接的ID
3.3 调整安全组规则
要允许跨VPC的SSH流量,两边的安全组都要配置对应规则:
- VPC1内实例的安全组:入站规则新增SSH(22),来源设为VPC2的CIDR
- VPC2内实例的安全组:入站规则新增SSH(22),来源设为VPC1的CIDR
如果想更安全,也可以把来源改成对方实例的具体私有IP,而不是整个VPC的CIDR
3.4 验证连通性
配置完成后,先尝试从VPC1的实例ping VPC2实例的私有IP(确保安全组允许ICMP),如果ping通了,再测试SSH:
ssh ec2-user@<VPC2实例私有IP>
如果还是不通,别忘了检查网络ACL(如果有配置的话)——网络ACL是无状态的,需要同时允许入站和出站的22端口TCP流量,以及ICMP的双向流量。
内容的提问来源于stack exchange,提问作者rohanhyd
相关产品推荐
相关产品推荐

