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

本地通过Cloud Auth Proxy连接Cloud SQL遇connection reset by peer问题

解决方向
  • 排查本地网络中转/代理
    172.30.0.0/16是Docker默认网桥的CIDR段,这个陌生IP大概率来自本地运行的Docker容器、VPN或第三方代理软件(如Clash、Charles),这类工具可能拦截Cloud SQL Proxy的出站连接导致重置。

    • 临时关闭所有VPN、代理软件,停止无关Docker容器后,重启Cloud SQL Proxy重试。
    • 检查环境变量是否配置了代理:执行echo $HTTP_PROXY $HTTPS_PROXY,若有输出则临时取消(unset HTTP_PROXY HTTPS_PROXY)后重启Proxy。
  • 验证Cloud SQL Proxy的连接参数

    • 若之前使用公网连接正常,可强制Proxy使用公网IP连接,去掉--private-ip参数,添加--public-ip重新启动:
      cloud_sql_proxy -instances=gcloud-xx-yz:europe-west3:mydb=tcp:5432 --public-ip
      
    • 确认Proxy启动日志显示Listening on 127.0.0.1:5432,确保绑定的是本地回环地址而非其他网卡。
  • 检查Django数据库配置与连通性

    • 确认settings.py中的数据库配置无误:
      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.postgresql_psycopg2',
              'NAME': 'your_db_name',
              'USER': 'your_db_user',
              'PASSWORD': 'your_db_password',
              'HOST': '127.0.0.1',
              'PORT': '5432',
          }
      }
      
    • 排查是否有环境变量覆盖配置:执行printenv | grep DATABASE,若存在DATABASE_URL等变量,可能与settings中的配置冲突,临时取消后重试。
    • 用psql直接测试Proxy连通性:
      psql -h 127.0.0.1 -p 5432 -U your_db_user -d your_db_name
      
      如果psql能正常连接,说明问题出在Django应用侧;若同样报错,继续排查网络或Proxy配置。
  • 检查Cloud SQL实例的连接限制与日志

    • 查看实例当前连接数是否达上限:在Cloud Shell中执行SELECT count(*) FROM pg_stat_activity;,对比实例的最大连接数(Postgres 14的最大连接数由实例内存决定,可在GCP控制台实例详情中查看),若接近上限,关闭闲置连接或升级实例配置。
    • 查看Cloud SQL的连接审计日志:在GCP控制台进入Cloud SQL实例 -> 日志 -> 连接日志,排查是否有拒绝连接的记录,确认是否存在IP拦截规则异常。
  • 排查本地防火墙/安全软件
    本地防火墙(如Windows Defender、macOS防火墙)或杀毒软件可能拦截Proxy的出站连接(到Cloud SQL的3307端口),或拦截Django与本地回环地址的通信:

    • 临时关闭防火墙/杀毒软件后测试连接,若恢复正常,添加允许规则:允许Cloud SQL Proxy程序出站到任意IP的3307端口,允许Python程序访问127.0.0.1:5432。

内容的提问来源于stack exchange,提问作者bhordupur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 16:13:22