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

开启GlobalProtect VPN时Liquibase连接Docker内PostgreSQL超时求助

解决WSL1+GlobalProtect VPN下Liquibase连接PostgreSQL容器超时问题

环境信息

  • Windows 10 搭载 WSL1(Ubuntu 20.04)
  • Docker Desktop 部署 PostgreSQL 容器
  • GlobalProtect VPN
  • 数据库连接环境变量配置:
export PGDATABASE=pgadmin
export SCHEMA_NAME=public
export PGUSER=pgadmin
export PGPASSWORD='pgadmin_001'
export PGHOST=127.0.0.1
export PGPORT=25432

问题现象

本地可正常登录PostgreSQL容器,但开启GlobalProtect VPN后执行liquibase update始终出现读取超时错误,关闭VPN后操作恢复正常。

解决办法

  • 修复WSL1回环路由优先级
    GlobalProtect会修改系统路由表,可能导致WSL访问本地回环地址时走VPN链路。在WSL终端执行route -n确认127.0.0.0/8网段的路由是否指向本地回环接口(lo)。若路由异常,手动添加回环路由:

    sudo route add -net 127.0.0.0 netmask 255.0.0.0 dev lo
    
  • 改用WSL内网IP连接数据库
    替换环境变量中的PGHOST为WSL的内网IP(执行hostname -I获取),同时确保Docker容器端口绑定到0.0.0.0(启动容器时使用-p 0.0.0.0:25432:5432),避免VPN影响本地回环的端口转发。

  • 配置GlobalProtect排除内网网段
    在GlobalProtect客户端设置中,添加WSL内网网段(通常为172.16.0.0/12或192.168.0.0/16)和Docker默认网段(172.17.0.0/16)到VPN排除列表,让这类内网流量不经过VPN隧道。

  • 增加Liquibase连接超时参数
    在Liquibase命令中添加JDBC超时参数,适配VPN带来的网络延迟:

    liquibase --url="jdbc:postgresql://${PGHOST}:${PGPORT}/${PGDATABASE}?connectTimeout=10000&socketTimeout=30000" update
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 08:37:14