阿里云ECS无法连接阿里云数据库的一般原因

本文涉及的产品
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 阿里云的数据库种类较多,但是网络连接问题出现以及排查和解决方式大部分是一样的,所以以下以RDS控制台为例子进行说明,控制台会与redis,mongodb,ocs等有差别,主要目的是为了举一反三

作者:手辨


实为吾之愚见,望诸君酌之!闻过则喜,与君共勉


适用于:

1,跨地域/本地主机如何公网访问经典/vpc网络的rds?

2,经典网络的ecs如何内网和公网访问经典/vpc网络的rds?

3,vpc网络的ecs如何公网和内网访问经典/vpc网络下的rds?


4,经典/vpc网络的ecs如何内网访问经典/vpc网络的mongodb?


5,经典/vpc网络的ecs如何内网访问经典/vpc网络的redis?


6,经典/vpc网络的ecs如何内网访问经典/vpc网络的ocs(memcached)?




阿里云的数据库种类较多,但是网络连接问题出现以及排查和解决方式大部分是一样的,所以以下以RDS控制台为例子进行说明, 控制台会与redis,mongodb,ocs等有差别 ,主要目的是为了举一反三

第一章 使用阿里云ECS和数据库前需要了解的相关概念


1.1地域和可用区


地域:地域是指物理的数据中心,类似下面的表格

地域名称

华北 1

华北 2

华北 3

华东 1

华东 2

华南 1

所在城市

青岛

北京

张家口

杭州

上海

深圳

RegionId

cn-qingdao

cn-beijing

cn-zhangjiakou

cn-hangzhou

cn-shanghai

cn-shenzhen


可用区:可用区是指在同一地域内,电力和网络互相独立的物理区域


详细说明看这里:


https://help.aliyun.com/document_detail/40654.html?spm=5176.doc51704.6.543.jd1ts9


1.2内网


同地域内的云资源互相访问地址,不同可用区也可以内网访问,但是不同地域正常是不可以内网访问的,不同地域需要公网访问


详细说明看这里:


https://help.aliyun.com/document_detail/25385.html?spm=5176.doc40654.6.557.68NSeb


1.3外网


跨地域之间云资源互相访问的地址,不可以内网访问,可以立即为满足公网访问的地址


1.4安全组


Ecs所特有可以理解为防火墙,区别于windows或者linux系统内部的防火墙,安全组和系统内部防火墙互不影响


详细说明看这里:


https://help.aliyun.com/document_detail/25387.html?spm=5176.doc25385.6.560.F1KUoi



1.5vpc(专有网络)


阿里云的内网隔离的私有网络,同一个vpc内,不同交换机默认是互通的,不同vpc下正常是无法联通的


详细说明看这里:


https://help.aliyun.com/document_detail/34217.html?spm=5176.doc55051.6.539.4PVhVn


1.6白名单


Rds所特有,ip地址写入白名单之后,主机才可以进行访问


https://help.aliyun.com/document_detail/26198.html?spm=5176.product26090.6.686.2Y3o4E


1.7网络类型


经典网络以及专有网络(vpc),经典网络区别于专有网络,经典网络中的云服务在网络上不进行隔离


区别的详细说明看这里:


https://help.aliyun.com/document_detail/26194.html?spm=5176.product26090.6.682.2mjTIX


1.8 Â 访问模式


Rds特有分为高安全模式和标准模式


详细说明看这里:


https://help.aliyun.com/document_detail/26193.html?spm=5176.doc26194.6.681.iNVL3c


第二章 ECS连接RDS问题


以下是指同地域之间的的阿里云ecs访问rds的说明
,皆为正常情况,排除了特殊配置的情况,以下四类情况同样适用于同地域ECS连接云MONGODB,ECS连接云REDIS,ECS连接云OCS(MEMCACHED),并且也适用于不同地域之间连接的问题排查,需要注意的是:


1,云MONGODB,云REDIS,云OCS正常只支持内网连接,所以跨地域公网访问时不支持的,本地主机通过公网访问也是不支持的


2,云REDIS,云OCS在切换到vpc后,是不支持再切换到经典网络的


3,RDS,云MONGODB(复制集版)是可以从经典网络切换到vpc并且也可以从vpc切换到经典网络的


4,云MONGODB(集群版)创建完成后不支持网络类型切换


2.1.1经典网络ECS访问经典网络RDS异常


情况描述:ECS是经典网络(公网和内网都有),RDS是经典网络(公网和内网都有),如下:


Ecs的网络配置:


23d77e9886de1809f85bad518d94aa5a1f363b55


Rds的网络配置:


07e363d81bcb5c1be92bc5db6219cbc7fb3fa8d6


693c5f7b009dde8cdcade9d58a32f2c236646c0f


通过ECS和RDS的配置,它们网络类型相同,又都存在公网和内网地址,所以理论上公网和内网的访问都是没问题的,测试如下:


1d7e97934869c582fe1c97fcda4dd6c0f6c3a7a1


下面模拟一个不可以正常连接的例子进行连通性测试:


Ecs连接rds内网:


5509a9400d488a4c940def2855b6e43449fdd0a0


通过ping内网地址和telnet内网地址,获取了如上的信息,上面说明了如下两点:


1,该rds目前的内网地址是10.50.144.213


2,通过3306端口连接10.50.144.213无法连接


网络类型相同,而无法连接,此类问题一般是ECS的内部的防火墙(或者其他安全软件)或者ECS的安全组设置以及RDS的白名单设置的问题,按照这个思路,往下查:


自带防火墙:


dd690ea1942f8450f0c7443834c1909224719931


结果:状态关闭


Ecs的安全组设置:


1d4722befae191ac283bbd07edcbdab88928d61a


通过安全组可以看到,内网出方向的规则中有一条规则如上,该规则会拒绝发往发往10.50.144.213且目的端口是3306的数据包,所以从ECS发出来的数据包就不可达了


RDS的白名单配置(rds目前提供了高安全的白名单模式,如果是高安全白名单模式,经典网络白名单分组适用于经典网络以及外网主机访问,而专有网络白名单分组适用于专有网络的主机访问):


e29459966613ab5af3423550427be815163faad3


通过白名单可以看到,rds的白名单设置只允许来着127.0.0.0的访问,其他的地址是不允许的


通过上面的查看,一方面是ecs的安全组设置有问题,一方面是rds的白名单设置有问题,先更改ecs的安全组,删除之前的规则(保持rds的白名单不改动),进行测试:


cdd2a70207b9e169cfa97fd790a2f2528ddf7452


红框中的提示是:#28000ip not in whitelist,再结合之前查到的rds的白名单问题,可以判断这是rds的白名单阻止了该ECS的访问,下面修改RDS的白名单,将ecs的内网ip地址10.132.35.143加入:


31bae6998effcfbb02a117a5328a1af9643513b8


再次测试:


ddaeb206f15f7f2e3fef1ddcc28b8324b76ce102


测试正常了,同网络类型的公网访问问题排查方法同上,同地域网络类型相同而无法连接的问题一般是源端或者目标端的安全限制导致的


2.1.2经典网络ECS访问专有网络RDS异常


情况描述:ECS是经典网络(公网和内网都有),RDS是专有网络(公网和内网都有),如下:


ECS网络配置:


23d77e9886de1809f85bad518d94aa5a1f363b55


RDS网络配置:


a050afac721a58414e4e10647b11b34b91bb0523


aabfd465d513ef6187ff1138c307b31cb81339d5


通过上面的信息可以看到,ECS与RDS的网络类型是不同的,ecs是经典网络,rds是专有网络(vpc),这样的话正常内网是无法访问的,只有公网才可以正常访问,测试如下:


c55d159b8505da88baf95ec1438a87022cd2d4f5


376852471846065661bc769c2520397bc9f5bc11


此类情况的解决办法:


1,使用rds的公网地址进行访问


2,如果想使用内网访问,必须是相同网络类型才可以,因为ecs无法直接切换网络类型,则比较好的解决办法就是把rds切换为与ecs相同的网络类型(经典网络),并设置好安全组防火墙已经白名单,具体操作方法如下:


7d8d1b72436c6d739a1b28e1443ae04cf7d4e5a6


71063df3f343072a9719aa0ce2711237c0591631


3710da72521eb698fd3a49a4897977473941f908


再次测试:


e89741c96c4680f619d3f96fd9990bba8e39703c


2.1.3专有网络ECS内网访问经典网络RDS异常


情况描述:ECS是专有网络(只有内网,没有eip),RDS是经典网络(公网和内网都有),如下:


ECS网络配置:


5996a1aaa8e41eaa0dbcbee101fe1d935d4624da


Rds网络配置:


07e363d81bcb5c1be92bc5db6219cbc7fb3fa8d6


693c5f7b009dde8cdcade9d58a32f2c236646c0f


通过上面的信息可以看到,ECS与RDS的网络类型是不同的,ecs是专有网络,rds是经典网络,这样的话与2.1.2相同,也是正常内网是无法访问的,又因为ecs没有eip,所以rds的公网也是无法访问的。


解决办法:


1,配置ECSeip(取决于购买时的配置,此处我购买时选择的不分配公网地址),使用rds的公网访问RDS,操作如下:


1baa79190e235892e0b023dc57510eb973015690


362d574ab4bc446ec0dbe8b810f2cc0ac4782085


92a2d9540f1d53c73ee1f76c503d44145fb0a0d8


测试如下:


67b30d19fce5cea3ee50248951f5739a5f43c5f7


2,如果需要内网的话,需要将rds切换到与ecs相同的vpc下才可以(交换机可以不同,但是交换机必须在同一个vpc下),具体操作如下:


Ecs所在vpc以及交换机:


1c94419ecdb6b45d5f12ee71b7504e240e90383f


相应的vpc以及交换机信息


c1e3e48967469b44df13018ab45316219628f12d


8cf53e1242d1ef482b422c4b2dd0b3bacaacee32


Rds进行网络类型切换:


2f6f0fa9033f8dd8b8fd252fe474d40639fd5f6c


26cea46d3b7bbb781ed1f02a6249f53a711e2dcc


a0ff27905e17a49af5a985c11b8cfd5e812932c1


测试内网如下:


120ab48baffa7bb9e5de29b46e40c523dec6fc45


2.1.4专有网络ECS内网访问专有网络RDS异常


情况描述:ECS是专有网络(只有内网,没有eip),RDS是专有网络(公网和内网都有),如下:


Ecs的网络配置:


3756a6d5b18da4fcf2d4b9c7ee898e07977574f1


0db5dc31a152babf3051dc0d966adb0bfe993e66


RDS网络配置:


13765986cc0aa8ac00cf023358ab756976871fee


92bdb3a17f2fc8592129a962add03c101fe7585c


通过上面的信息,可以看到ECS和RDS都是同一个vpc下的,但是他们内网可以连接吗?外网可以吗?做个测试(测试公网需要申请eip):


绑定eip:


3f4fca6d50c3e787782fc7c4dbabe54fd84438fa


43ab14ae3a1210f2f4a77e462cc2cdb2dc368556


0505624cd45228cc7abc2b7caaa7ea5b95fe4c82


45cc69c9a3f281fe73137cf7118685175395a8e3




内网测试:


7bfa7bc24828dab7f13e757320959de5eee08d3c


结果:内网测试不通


外网测试:


0e9fe0cb27237df44f57ccbf13159d05c89052c5


结果:外网测试可以联通,只是提示白名单问题


内网无法连通原因:通过上面的ecs的rds的网络类型,可以看到RDS和ECS的vpc是不同的,所以他们处在两个不同的vpc下,所以他们无法连通


下面将RDS切换到与ecs相同的vpc下再测试(ecs无法直接切换vpc):


639887b3f8474a39c86ce1d0a6ed599b3acd2fce


再次内网测试:


f522c08c421bdae7b377add6e9715de2933e4b9c


结果:内网测试可以联通,只是提示白名单问题



第三章 问题延伸


通过第二章的测试和验证,当选择ECS和RDS时,如果需要内网正常连接,可能需要满足(以下均不包括特殊情况):


1,同地域如果需要内网连接,则网络类型要相同,如果是经典网络ecs和rds都为经典网络才可以内网连接,如果是vpc网络,ecs和rds必须是在同一个vpc下才可以内网连接


2,不同地域时,经典网络以及VPC网络的ecs和rds一般需要公网地址进行连接,不同地域无法内网连接


3,云mongodb,云redis,云ocs此类只允许内网连接,一般无法通过公网来连接,所以ecs需要与其在同一地域下,


4,当遇到某个ECS连接数据库出现问题时,可以尝试使用如下方法进行分析:


1)“ping 实例地址”:解析出ip地址即可,如下


5e3df02179222adcdaaf1844d82af1fd4551d1fc


2)“telnet 实例地址 端口” 或者”telnet ip 端口”


5e81b7cf47e0ec4aa1ab0a635ac934c0389278d1


Ps: 28000ip not in whitelist是因为白名单未设置,可以看另一篇:


https://yq.aliyun.com/articles/158321?spm=5176.100240.searchblog.8.XNCQSl


3)如果telnet失败(失败如下,表现为长时间无反应或者超时):


6f0647dde629bdda32cdde4c9dca3e73ac40349d


可以执行route -n检查下路由信息


21af4cd026e35b112fae12e37c6473890d9a391e


如果路由信息也没问题,可以考虑检查下网络类型以及安全限制方面是否符合,如果网络类型和安全限制也没有问题的话,需要检查系统是否有其他的特殊配置,尤其是网络方面的特殊配置(回忆下我在这台主机上做过什么?)


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
17天前
|
Cloud Native 关系型数据库 分布式数据库
阿里云牵手海亮科技,共建“教育科技数据库创新应用中心”
海亮科技选择引入阿里云PolarDB开源分布式版(PolarDB for Xscale)数据库,不仅能解决海亮科技数据库业务中面临的可靠性、稳定性问题,也为海亮科技业务的高速发展提供了更好的灵活性和可扩展性。
|
25天前
|
存储 监控 安全
阿里云数据库(ADB)的多租户秘籍:资源隔离的魔法如何施展?
【8月更文挑战第27天】多租户系统在云计算与大数据领域日益重要,它让不同用户或组织能在共享基础设施上独立运行应用和服务,同时确保资源隔离与安全。ADB(如阿里云数据库)通过资源组及标签实现高效多租户隔离。资源组作为一种软隔离策略,允许为不同租户分配独立的计算和存储资源,并设置资源上限;资源标签则支持更细粒度的硬隔离,可为每个数据库表或查询指定特定标签,确保资源有效分配。此外,ADB还提供了资源监控与告警功能,帮助管理员实时监控并调整资源分配,避免性能瓶颈。这种灵活且高效的资源隔离方案为多租户环境下的数据处理提供了强大支持。
68 0
|
10天前
|
存储 缓存 关系型数据库
阿里云数据库 SelectDB 多计算集群核心设计要点揭秘与场景应用
在云原生存算分离架构下,多计算集群的实现从技术方案上看似乎并不存在过多难题。但从产品的角度而言,具备成熟易用的多计算集群能力且能运用于用户实际业务场景中,还有较多核心要点需要深度设计
阿里云数据库 SelectDB 多计算集群核心设计要点揭秘与场景应用
|
20天前
|
存储 Oracle 关系型数据库
Oracle同一台服务器创建多个数据库
【8月更文挑战第30天】在 Oracle 中,可在同一服务器上创建多个数据库。首先确保已安装 Oracle 软件并具有足够资源,然后使用 DBCA 工具按步骤创建,包括选择模板、配置存储及字符集等。重复此过程可创建多个数据库,需确保名称、SID 和存储位置唯一。创建后,可通过 Oracle Enterprise Manager 进行管理,注意服务器资源分配与规划。
34 10
|
24天前
|
缓存 NoSQL 数据库
Web服务器与数据库优化:提升系统性能的最佳实践
【8月更文第28天】在现代的Web应用中,Web服务器与后端数据库之间的交互是至关重要的部分。优化这些组件及其相互作用可以显著提高系统的响应速度、吞吐量和可扩展性。本文将探讨几种常见的优化策略,并提供一些具体的代码示例。
35 1
|
8天前
|
存储 负载均衡 数据库
探索后端技术:从服务器架构到数据库优化的实践之旅
在当今数字化时代,后端技术作为支撑网站和应用运行的核心,扮演着至关重要的角色。本文将带领读者深入后端技术的两大关键领域——服务器架构和数据库优化,通过实践案例揭示其背后的原理与技巧。无论是对于初学者还是经验丰富的开发者,这篇文章都将提供宝贵的见解和实用的知识,帮助读者在后端开发的道路上更进一步。
|
4天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
6天前
|
存储 SQL 关系型数据库
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
69 11
|
25天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~
|
1天前
|
存储 SQL 关系型数据库
MySQL的安装&数据库的简单操作
本文介绍了数据库的基本概念及MySQL的安装配置。首先解释了数据库、数据库管理系统和SQL的概念,接着详细描述了MySQL的安装步骤及其全局配置文件my.ini的调整方法。文章还介绍了如何启动MySQL服务,包括配置环境变量和使用命令行的方法。最后,详细说明了数据库的各种操作,如创建、选择和删除数据库的SQL语句,并提供了实际操作示例。
27 13
MySQL的安装&数据库的简单操作