You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地通过VPN连接Google Cloud SQL PostgreSQL实例超时问题求助

本地通过VPN连接Google Cloud SQL PostgreSQL实例超时问题求助

兄弟,太懂你在网络受限地区折腾Google Cloud的憋屈了!结合你说的情况——脚本在Cloud Run和远程服务器都正常,唯独本地连不上,而且两种认证方式都超时,大概率是本地VPN和Cloud SQL连接的网络路径不兼容导致的,咱们一步步来排查和解决:

先排查核心连接路径问题

首先得明确你是直接连Cloud SQL的公网IP,还是依赖Google的认证通道?这里给你几个关键排查点:

  • 测试PostgreSQL端口的连通性:先在本地试试telnet <你的Cloud SQL公网IP> 5432或者nc -zv <你的Cloud SQL公网IP> 5432,看看能不能打通。如果连不上,说明你的VPN要么屏蔽了5432端口,要么路由规则没把Cloud SQL的IP段导向VPN出口,直接连PostgreSQL端口的路子基本走不通,得换方式。
  • 检查VPN出口IP是否在Cloud SQL白名单里:虽然远程服务器能连,但本地VPN的出口IP可能和远程服务器不一样,而你的Cloud SQL实例公网防火墙规则可能只允许了远程服务器的IP?去Cloud SQL的「连接」设置里看看,是不是把VPN的出口IP加进去了(临时测试可以先开放0.0.0.0/0,测试完再关闭,注意安全)。

优先尝试Cloud SQL Auth Proxy(最靠谱的适配方案)

我强烈建议你用Cloud SQL Auth Proxy做本地连接,它专门针对Google Cloud的认证和网络做了优化,而且走的是443端口(绝大多数VPN都会放行HTTPS端口),步骤很简单:

  1. 下载对应系统的Auth Proxy(你能访问GCP控制台的话,直接搜Cloud SQL Auth Proxy就能找到下载链接)
  2. 给Proxy加执行权限:chmod +x cloud-sql-proxy
  3. 启动Proxy:./cloud-sql-proxy <你的项目ID>:<实例区域>:<实例名称>
  4. 把脚本里的数据库连接地址改成localhost:5432,其他用户名、密码、库名不变,再运行脚本试试

Auth Proxy会帮你处理所有的认证和加密连接,不用直接访问PostgreSQL的5432端口,基本能绕过VPN对特定端口的限制。

排查本地代理和环境变量问题

如果不想用Auth Proxy,得确保你的脚本继承了VPN的代理设置:

  • 运行脚本前,先设置系统代理环境变量:
    export HTTP_PROXY=http://你的VPN代理地址:端口
    export HTTPS_PROXY=http://你的VPN代理地址:端口
    
    有些VPN会自动设置这些变量,但手动配置的VPN可能需要你自己添加。
  • 检查脚本语言的驱动是否支持代理:比如Python的cloud-sql-python-connector库会依赖Google Cloud SDK的代理设置,你可以先运行gcloud config set proxy/address <你的VPN代理地址>和gcloud config set proxy/port <端口>,再启动脚本。

最后排查本地安全软件干扰

别忽略本地的防火墙或者杀毒软件!有时候它们会拦截出站的数据库连接请求,哪怕VPN允许了。可以临时关闭本地防火墙/杀毒软件,再试一次脚本,如果能连,就给你的脚本或者PostgreSQL端口添加一个允许规则。


备注:内容来源于stack exchange,提问作者Thiago

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 09:24:32