配置腾讯云轻量应用服务器(Lighthouse)与云数据库(TencentDB for MySQL/PostgreSQL 等)的内网互通,核心在于确保两者处于同一地域(Region)和同一可用区(Availability Zone),并正确配置安全组规则。
以下是具体的操作步骤:
1. 基础环境检查(关键前提)
在开始配置前,请务必确认以下两点,否则无法实现内网互通:
- 地域一致:轻量服务器和云数据库必须购买在同一个地域(例如都在“北京”)。
- 网络类型:轻量服务器默认是 VPC 网络,云数据库也是 VPC 网络。只要地域相同,它们通常默认就在同一个私有网络环境中,无需额外创建对等连接。
注意:如果轻量服务器购买时选择了“经典网络”(旧版),则无法直接通过内网访问新版的云数据库。请确保轻量服务器是 VPC 模式(目前新购默认均为 VPC)。
2. 获取云数据库的内网地址
- 登录 腾讯云控制台。
- 进入 云数据库 (TencentDB) 实例列表。
- 点击目标数据库实例名称,进入详情页。
- 在“基本信息”或“连接信息”区域,找到 内网地址(Internal Address)。
- 格式通常为
mysql-xxxxxxx.cjxxxxxx.tencentcdb.com。 - 记下对应的 端口号(MySQL 默认 3306,PostgreSQL 默认 5432)。
- 格式通常为
3. 配置轻量服务器的安全组
这是最容易被忽略的一步。轻量服务器默认的安全组可能只开放了公网 SSH 端口,需要手动放行数据库端口。
- 在控制台左侧菜单选择 安全组(或者在轻量服务器详情页的“安全组”标签页)。
- 找到绑定该轻量服务器的安全组,点击 编辑规则。
- 添加一条 入方向 规则:
- 协议类型:TCP
- 端口范围:填写云数据库的端口(如
3306)。 - 授权对象:
- 方式 A(推荐):输入云数据库实例所在的 VPC CIDR 网段(通常是
172.16.0.0/12或您自定义的网段,可在云数据库详情页的“网络信息”中查看)。 - 方式 B(严格限制):输入轻量服务器的 内网 IP 地址(在轻量服务器详情页“概览”中查看,如
192.168.x.x)。 - 方式 C(临时测试):暂时填
0.0.0.0/0(仅限测试,生产环境极不安全,用完即改)。
- 方式 A(推荐):输入云数据库实例所在的 VPC CIDR 网段(通常是
- 保存规则。
4. 配置云数据库的安全组(白名单)
除了轻量服务器的防火墙,云数据库本身也有访问控制(白名单)。
- 回到 云数据库实例详情页。
- 找到 连接管理 或 白名单设置。
- 点击 修改白名单。
- 添加轻量服务器的 内网 IP 地址(如果不知道,可以暂时填
0.0.0.0/0测试连通性,但建议填入具体 IP)。 - 保存设置。
5. 验证连通性
登录到轻量服务器内部进行验证:
# 使用 telnet 测试端口连通性
telnet <云数据库内网地址> <端口号>
# 例如:
telnet mysql-abcde.cj123456.tencentcdb.com 3306
- 如果显示
Connected to ...或光标闪烁,说明网络层已通。 - 如果一直卡住或提示
Connection refused,请再次检查上述第 3、4 步的安全组和白名单设置。
常见问题排查
- 无法解析域名:轻量服务器可能没有配置 DNS。尝试在
/etc/resolv.conf中添加腾讯云的公共 DNS(如183.60.83.19或119.29.29.29),或者直接尝试使用云数据库的 内网 IP(如果有提供)代替域名连接。 - 跨可用区延迟:虽然同地域不同可用区也能内网通,但为了最佳性能,建议将轻量服务器和数据库部署在 同一个可用区。
- 账号权限:即使网络通了,如果数据库账号未授权该 IP 访问,也会报错。请在数据库管理界面确认用户权限是否包含
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';或指定了轻量服务器的内网 IP。
完成以上步骤后,您的应用程序即可通过内网地址(如 mysql-xxx.cj...)连接数据库,享受更低延迟且不计流量的内网通信。
PHPWP博客