如何在不修改拓扑下解决GCP Cloud SQL双层Peering路由问题?
解决双层VPC Peering下本地访问Cloud SQL的路由问题(无需SSH隧道)
核心问题在于VPC Peering的非传递性——流量无法穿透两层Peering从landing net到达Cloud SQL所在网络,而Cloud SQL Proxy刚好能绕过这个限制,无需SSH隧道就能实现连接,具体操作如下:
方法:使用Cloud SQL Proxy的直接TCP转发模式
这种方式不依赖VPC内的路由,Proxy通过GCP公共API端点建立加密连接,完全绕开双层Peering的路由限制:
- 配置权限:给本地机器使用的服务账号(或已登录的用户账号)授予
Cloud SQL Client角色,确保拥有访问目标Cloud SQL实例的权限。 - 下载Proxy工具:根据本地系统(Windows/macOS/Linux)下载对应的Cloud SQL Proxy二进制文件。
- 启动Proxy并建立连接:
在本地终端执行启动命令(以PostgreSQL为例,端口5432;MySQL用3306):
启动后,本地机器就可以通过./cloud-sql-proxy 你的项目ID:实例区域:实例名称 --address 0.0.0.0 --port 5432localhost:5432直接访问Cloud SQL实例,流量路径为:本地机器→公网→GCP服务端点→Cloud SQL,完全不依赖现有VPC Peering拓扑。
关键注意事项
- 确保本地机器能访问GCP的公共API端点(如
sqladmin.googleapis.com),如果VPN配置了强制隧道(所有流量走VPN),需要添加例外路由让Proxy的流量直接走公网。 - Proxy启动时会自动处理认证(本地已配置gcloud SDK并登录,或指定服务账号密钥文件均可),无需额外SSH隧道配置。
内容的提问来源于stack exchange,提问作者Paolo Fusari
相关产品推荐
相关产品推荐

