AWS跨VPC实例连接及VPC Endpoint访问失败问题排查
AWS跨VPC及终端节点访问实例问题排查
环境配置
- 公网VPC
VPC-A:已配置互联网网关,可连接公网- 子网:
VPC-A-Subnet-1 - 实例:
Instance-A(私网IP:10.0.1.10,绑定弹性公网IP)
- 子网:
- 私网VPC
VPC-B:无公网连接- 子网:
VPC-B-Subnet-1 - 实例:
Instance-B(私网IP:10.0.0.5) - 资源:VPC终端节点
VPC-B-Endpoint
- 子网:
VPC连接关系:VPC-A与VPC-B已建立VPC对等连接,拓扑如下:
弹性公网IP | VPC-A(公网)---------------- VPC-A-Subnet-1 --- Instance-A (10.0.1.10) |(对等连接) | VPC-B ----------------------- VPC-B-Subnet-1 --- Instance-B (10.0.0.5) | |--- VPC-B-Endpoint
需求目标
- 实现
Instance-A与Instance-B的SSH受限连接,允许Instance-B从Instance-A获取数据 - 允许通过
VPC-B-Endpoint连接Instance-B
当前已做配置
在Instance-B关联的安全组中,已放行来自Instance-A私网IP(10.0.1.10)的所有流量:
ALL TRAFFIC ............................................ 10.0.1.10
问题现象
- AWS Network Analyzer检测显示
Instance-A可访问Instance-B - 但在
Instance-A中通过浏览器访问Instance-B的IP(10.0.0.5)时,连接被拒绝 - 通过
VPC-B-Endpoint连接Instance-B同样失败
网络检测结果示意图:
Network Analyzer Instance-A --------------------> Instance-B (可达) | |-----------------------> Instance-B (失败) 浏览器 VPC-B-Endpoint -----------> Instance-B (失败)
排查与解决步骤
1. 检查Instance-B的操作系统防火墙
Network Analyzer仅检测网络层连通性,操作系统层面的防火墙(如Linux的iptables/ufw、Windows防火墙)可能拦截了浏览器请求(通常是80/443端口)或终端节点流量:
- 登录
Instance-B,执行iptables -L(Linux)查看规则,确认是否放行对应端口;Windows需检查防火墙入站规则。 - 临时关闭操作系统防火墙测试,若能访问则调整规则放行所需端口(如SSH的22端口、HTTP的80端口等)。
2. 确认Instance-B的服务状态
浏览器访问失败可能是因为Instance-B未启动Web服务(如Apache、Nginx),或服务未监听10.0.0.5地址:
- 执行
netstat -tulpn(Linux)查看端口监听状态,确认目标端口(如80)是否在0.0.0.0或10.0.0.5上监听。 - 检查Web服务日志(如
/var/log/httpd/error_log),排查服务启动或连接失败原因。
3. 调整VPC终端节点的安全组与路由
VPC终端节点无法连接Instance-B,需检查以下配置:
- 终端节点安全组:确保
VPC-B-Endpoint关联的安全组放行到Instance-B私网IP(10.0.0.5)的目标端口流量(如SSH的22端口)。 - 终端节点策略:检查VPC终端节点的资源策略,是否允许通过终端节点访问
Instance-B所在资源(若为EC2实例终端节点,需确认策略授权对应访问)。 - 路由表配置:
VPC-B中关联VPC-B-Endpoint的路由表,需包含指向Instance-B子网的路由条目;同时Instance-B所在子网的路由表,需包含指向终端节点的路由(若终端节点为网关型,需确认路由指向终端节点)。
4. 验证VPC对等连接的路由与DNS
虽然Network Analyzer显示可达,但需确认:
VPC-A的路由表中,是否有指向VPC-B网段(如10.0.0.0/16)的路由,下一跳为VPC对等连接。VPC-B的路由表中,是否有指向VPC-A网段(如10.0.1.0/24)的路由,下一跳为VPC对等连接。- 若使用DNS解析,确认VPC对等连接的DNS解析功能已启用,避免因解析问题导致访问失败。
5. 细化安全组规则(按需)
当前安全组放行所有流量,若需受限SSH连接,可将规则修改为仅放行22端口,来源为Instance-A的私网IP:
SSH (22) ............................................ 10.0.1.10/32
同时为浏览器访问和终端节点连接,添加对应端口的放行规则:
- 若需HTTP访问:添加
HTTP (80)规则,来源为VPC-A网段(或Instance-AIP) - 若需终端节点访问:添加对应端口规则,来源为
VPC-B-Endpoint的网段或安全组
内容的提问来源于stack exchange,提问作者user3541631
相关产品推荐
相关产品推荐

