如何将开发机连接至Amazon Memory DB集群?VPN连接后访问失败求助
解决VPN连接后无法访问AWS MemoryDB集群的问题
1. 先找到MemoryDB的私有IP
- 控制台操作:打开AWS MemoryDB控制台,进入目标集群详情页,滚动到「节点」区域,每个节点的「Endpoint」字段里的前缀就是私有IP(比如
10.0.2.100:6379,前面的10.0.2.100就是IP)。 - CLI命令方式(替换你的集群名):
执行后直接输出所有节点的私有IP列表。aws memorydb describe-clusters --cluster-name your-cluster-name --query 'Clusters[0].Nodes[*].Endpoint.Address'
2. 检查MemoryDB安全组配置
- 找到MemoryDB集群关联的安全组,在入站规则里添加VPN客户端所在的CIDR段(比如VPN分配的客户端IP段是
192.168.100.0/24),允许TCP端口6379的访问。 - 核心原因:EC2能正常连接是因为其所在CIDR已经在安全组允许列表中,但VPN客户端的IP段大概率未被添加,这是此类问题最常见的诱因。
3. 验证VPN与VPC的路由配置
- 确认OpenVPN服务器推送的路由包含MemoryDB所在子网的CIDR。比如MemoryDB部署在
10.0.1.0/24子网,需确保VPN客户端能获取这条路由(开发机上可通过ip route(Linux/macOS)或route print(Windows)查看路由表)。 - 检查VPC路由表:MemoryDB所在子网的路由表,需存在指向VPN网关的路由条目,允许来自VPN客户端CIDR的流量通行。
4. 定位故障的实用工具
- 在能正常连接MemoryDB的EC2上抓包排查:
同时在开发机执行sudo tcpdump port 6379 -i anytelnet <MemoryDB私有IP> 6379,若EC2上看不到数据包,说明路由存在问题;若能看到数据包但无响应,大概率是安全组或MemoryDB自身配置问题。 - 开发机上追踪路由:
通过数据包卡住的节点,快速定位是VPN路由、VPC路由还是子网安全组的问题。traceroute -T -p 6379 <MemoryDB私有IP> # Linux/macOS tracert -d -p 6379 <MemoryDB私有IP> # Windows
5. 排除其他次要问题
- 确认MemoryDB未启用传输加密:若开启加密,telnet会直接失败,需使用
redis-cli --ssl -h <IP> -p 6379连接(但你EC2能正常telnet,这条可优先忽略)。 - 检查开发机本地防火墙:临时关闭防火墙,测试是否能连通,排除本地端口拦截的可能。
内容的提问来源于stack exchange,提问作者kah
相关产品推荐
相关产品推荐

