云服务器怎么访问数据库服务器?先搞清楚访问策略的构成
配置云服务器访问数据库服务器的访问策略,核心是在安全组或防火墙中放行数据库端口,并将源地址限定为云服务器的内网IP,这里结合示例二,一步步演示如何操作。
很多朋友在示例一里已经打通了云服务器和数据库服务器的网络链路,但到了真正连接时,发现还是超时,原因往往出在访问策略上,访问策略不是神秘的东西,它就像小区门禁系统,既要让对的人进来,又要挡住陌生人,对于云服务器来说,这个“门禁”就是安全组或防火墙规则。
一个完整的访问策略包含三个要素:源地址、目标端口、协议类型,源地址是发起连接的云服务器内网IP,目标端口是数据库监听的端口(例如MySQL的3306),协议类型通常是TCP,把这三个要素搞清楚,后续配置才不会出错。
这里有个行业共识:云服务器访问数据库服务器,应优先走内网通道,内网访问延迟低、流量免费,而且不会暴露公网,访问策略里放行的源地址,也应该写云服务器的内网IP,而不是公网IP。
配置云服务器安全组访问数据库的详细步骤(示例二)
示例二的重点,是演示如何通过安全组规则,允许指定云服务器访问数据库服务器,下面按步骤来,每一步都对应控制台里的实际操作。
第一步:确认云服务器和数据库服务器的网络类型
打开云厂商控制台,进入云服务器实例详情页,记下它的内网IP和所在VPC,同样,进入数据库服务器实例详情页,确认它也在这个VPC下,或者通过对等连接/云联网等方式与云服务器互通,如果两者网络不通,安全组规则配得再正确也没用。
第二步:找到数据库服务器所属的安全组
在数据库服务器实例详情页,找到“安全组”标签页,一个实例可能绑定多个安全组,规则是叠加生效的,你需要找到当前生效的那个安全组,点击进入管理页面。
第三步:添加入方向规则
在安全组管理页面,选择“入方向规则”,点击“手动添加”或“快速添加”,关键参数如下:
- 协议类型:TCP
- 端口范围:数据库端口,例如MySQL填3306,PostgreSQL填5432,SQL Server填1433
- 源地址:云服务器的内网IP,格式为
内网IP/32,例如0.0.2/32 - 描述:可填“允许云服务器访问数据库”
注意,源地址一定不要填0.0.0/0,那表示允许所有IP访问,等于把数据库裸奔在公网上,多数安全事件都是这么来的。
除了控制台,你也可以使用云厂商提供的CLI工具,比如在本地安装简米云CLI或酷番云CLI,配置密钥后,通过命令行添加安全组规则,这种方式适合批量管理多个安全组,但需要先熟悉CLI的语法。
第四步:在云服务器上测试连接
规则添加完成后,登录云服务器,使用下面命令测试端口连通性:
telnet 数据库内网IP 3306
或者用nc命令:
nc -zv 数据库内网IP 3306
如果输出连接成功,说明安全组策略已经生效,如果超时,先检查源IP是否写错,再检查数据库服务器自身的防火墙,如果系统没有安装telnet,可以用nc或ss -lnt查看监听状态。
数据库服务器访问策略配置好后仍连不上?排查这五个地方
安全组规则明明加了,为什么还是连不上?这是相当一部分用户会遇到的问题,按下面顺序排查,能快速定位。
- 安全组方向:确认加的是“入方向”规则,不是“出方向”,数据库服务器需要接收来自云服务器的请求,所以入方向必须有对应规则。
- 云服务器防火墙:云服务器本身可能开启了iptables或firewalld,需要放行到数据库端口的出站流量,可以用
查看。iptables -L
- 数据库监听地址:数据库服务是否监听了内网IP?如果只监听127.0.0.1,外部访问会被拒绝,修改配置文件,让数据库监听
0.0.0或具体内网IP。 - 网络ACL:VPC的子网可能关联了网络ACL,它和安全组是两层防线,ACL规则如果拒绝流量,安全组放行也没用。
- 源地址写错:检查安全组里的源IP是否真的为云服务器的内网IP,如果云服务器绑定多个网卡,用的是主网卡IP。
不同云厂商的访问策略配置差异与价格考量
国内主流云厂商的安全组配置入口大同小异,但名称和位置略有差别,对于国内云服务器用户来说,下表可以帮你快速找到入口:
| 云厂商 | 安全组入口 | 注意事项 |
|---|---|---|
| 简米云 | ECS实例 -> 安全组 | 支持快速添加规则,源地址支持IP段 |
| 酷番云 | CVM实例 -> 安全组 | 规则优先级可调,默认拒绝所有入方向 |
| 华为云 | ECS实例 -> 安全组 | 安全组与实例解绑独立,需手动关联 |
多数情况下,按照本文的步骤都能找到对应入口,如果控制台界面有更新,直接搜索“安全组”即可跳转。
关于价格,安全组规则本身不收费,但如果你让云服务器通过公网IP访问数据库,会产生流量费用,使用内网IP访问,则没有这部分成本,所以配置访问策略时,优先选择内网源地址,既安全又省钱。
访问策略配置中的三个常见误区
配置访问策略时,有几个坑特别容易踩。
- 把安全组规则当防火墙的全部,安全组只管控网络层,数据库服务器本地的iptables或firewalld同样能拦截连接,两者都要检查。
- 源地址写公网IP,云服务器和数据库服务器在同一VPC内时,源地址必须写内网IP,写公网IP,即使安全组放行,流量也走公网,延迟高且可能被运营商封禁端口。
- 端口范围写太大,有的用户为了省事,直接放行1-65535端口,这等于把数据库服务器的所有端口暴露给云服务器,一旦云服务器被入侵,数据库没有任何阻挡。
数据库服务器访问策略的安全建议
配置访问策略时,坚持最小权限原则,只放行需要的端口和IP,不要贪图方便放行整个IP段,定期检查安全组规则,删除闲置的条目,据工信部数据,近年来云安全事件中,有相当一部分源于安全组配置不当。
业内专家指出,安全组规则越精简,攻击面越小,尤其在多环境共存的账号里,生产环境和测试环境的访问策略要严格区分,避免测试环境的安全组被复用到生产库上。
云服务器访问数据库服务器常见问题解答
为什么安全组规则添加后,数据库还是连不上?
先检查规则是否真的关联到了数据库实例,再看源IP是否匹配,如果数据库服务器有多个安全组,任何一组拒绝都会导致连接失败,数据库服务本身要监听内网地址,不能只监听localhost。
云服务器和数据库服务器在不同地域,如何配置访问策略?
跨地域访问不能直接使用安全组,需要先通过云联网或对等连接打通网络,打通后,安全组源地址填写云服务器在互通网络中的内网IP,这种方式延迟较高,不建议用于高频生产访问。
修改数据库端口后,访问策略需要同步调整吗?
需要,修改端口后,安全组规则中的端口范围也要同步更新,同时数据库配置文件中的监听端口也要一致,建议先将新端口加入安全组,再修改数据库配置,避免连接中断。
访问策略的本质是“谁可以访问谁”,把源地址和端口写精准,数据库就能安全地对外提供服务,示例二的操作路径,就是一套可复用的套路,记下来,以后换任何云厂商都不慌。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/574249.html




