• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Elaina
V2EX  ›  程序员

关于 Datagrip 无法连接数据库而 Navicat 可以连接的问题

  •  
  •   Elaina · Mar 30, 2024 · 4969 views
    This topic created in 955 days ago, the information mentioned may be changed or developed.

    现在的网络是这样的,有一台服务器,配置好了 zerotier 。 然后使用 zerotier 的 ip ,远程连接数据库,zerotier 提供的 ip 段是 172.31.xx.xx 。

    当我使用了 surge 的系统代理+增强模式( tun 模式)之后,Datagrip 就无法连接远端数据库了,但是 Navicat 可以,当关掉 surge 之后,Datagrip 才能顺利连接,这个有什么解决办法吗?

    使用 surge 的请求查看器观察到是匹配的直连规则,但花费了 10s 才建立连接,但是我 ping 这个 ip 只有 30-40ms ,ssh 之类的速度也很快。

    1.png

    以及 Datagrip 报错是这样的,但这个错误提示好像并没有任何信息量。 2.png

    求 v 友们指点一下,有什么解决办法吗?

    33 replies  •  2025-06-26 16:37:21 +08:00
    moshiyeap100
    moshiyeap100
    Mar 30, 2024
    1
    点一下 Test Connection 看看连接信息里的 PING 是多少
    moshiyeap100
    moshiyeap100
    Mar 30, 2024
    2
    我在想是不是走了 GEOIP 判定了,看看有没有类似的规则
    moshiyeap100
    moshiyeap100
    Mar 30, 2024
    3
    在请求查看器里看看连接的 Timing/Note ,截个图看看
    jaoyina
    jaoyina
    Mar 30, 2024
    4
    这个错并不像是网不通,看下驱动和连接参数有什么差异。
    Starxy
    Starxy
    Mar 30, 2024
    5
    之前 mysql 遇到过类似的 dg 连不上 navicat 能连上的问题,当时也在用 zt ,但是 surge 没用过,最后是 vm 参数加了-Djava.net.preferIPv4Stack=true 解决的
    chen90902
    chen90902
    Mar 30, 2024 via iPhone
    6
    之前我也遇到过类似的情况,排查出来是开了代理的问题,可以关闭代理试试。

    有环境变量可以忽略代理,搜一下吧
    Elaina
    Elaina
    OP
    Mar 30, 2024
    7
    @moshiyeap100
    好像 test connection 的信息没有 ping 值,
    这个 surge 是信息,看着是没有匹配到 GEOIP 的地方,
    ![3.png]( https://s2.loli.net/2024/03/30/HaYqmnisgdkWVJI.png)
    Rule Evaluating - 2 ms

    Events
    13:53:07.784155 [Connection] Incoming proxy protocol: SOCKS
    13:53:07.787155 [Rule] Sub-rule matched: IP-CIDR 172.16.0.0/12(Direct.list)
    13:53:07.787215 [Rule] Rule matched: RULE-SET Direct.list
    13:53:07.789037 [Socket] Connecting with address: 172.30.245.40, bound to the primary interface (en0) explicitly under Enhanced Mode
    13:53:12.794170 [Connector] Set up backup connection #2
    13:53:12.794873 [Socket] Connecting with address: 172.30.245.40, bound to the primary interface (en0) explicitly under Enhanced Mode
    13:53:17.794880 [Connection] Disconnect with reason: Closed by client
    Elaina
    Elaina
    OP
    Mar 30, 2024
    8
    @Starxy vm 上加了这玩意儿还是不行,很离谱
    Elaina
    Elaina
    OP
    Mar 30, 2024
    9
    @jaoyina 参数我开始以为是 ssl 的问题,把 ssl 改成了 false 还是不行
    Elaina
    Elaina
    OP
    Mar 30, 2024
    10
    @moshiyeap100 能定位的问题是关闭增强模式就能正常连接了,开启的话直接提示连接失败。这个是什么原理呢
    moshiyeap100
    moshiyeap100
    Mar 30, 2024
    11
    @Elaina [Rule] Sub-rule matched: IP-CIDR 172.16.0.0/12(Direct.list) 把这个 Direct.list 中的规则关于 172.16.0.0/12 的规则干掉试试
    Elaina
    Elaina
    OP
    Mar 30, 2024
    12
    @moshiyeap100 干掉了还是连不上,虽然走的是我梯子的规则,surge 那里 50ms 就成功了,上面那个得 10s😂
    Elaina
    Elaina
    OP
    Mar 30, 2024
    13
    @moshiyeap100 我排查出问题了,是开了 socks 代理之后,jdbc 会出问题,这个有解决方法吗?
    p2007
    p2007
    Mar 30, 2024 via iPhone
    14
    我也是同样的问题。
    rm0gang0rf
    rm0gang0rf
    Mar 30, 2024
    15
    socks 代理关掉就行了
    moshiyeap100
    moshiyeap100
    Mar 30, 2024
    16
    @Elaina datagrip 的配置页面,就是你截图的这个页面,connect type 选 default 或者 unix socket 试试
    Elaina
    Elaina
    OP
    Mar 30, 2024
    17
    @moshiyeap100 default 和 url 都试过了,不行,不知道这个 socks 有啥坑😂,头疼
    Elaina
    Elaina
    OP
    Mar 30, 2024❤️1
    18
    @moshiyeap100 我调试出来了,把 host 加到这个列表里面:TCP Force HTTP Hosts ,就可以连接了,不知道为啥,很怪
    moshiyeap100
    moshiyeap100
    Mar 30, 2024
    19
    @Elaina 晚上回家我也研究下,上次我用 tun 模式也遇到了类似的问题,不过我当时改了下规则就可以用了。
    zzping
    zzping
    Mar 30, 2024
    20
    Datagrip 无法连接 startrocks ,但 Navicat 能,有什么好的解法吗
    ChicC
    ChicC
    Mar 30, 2024
    21
    可能是使用了 Datagrip 的 socks 代理?用 http 代理试试
    GlobalNPC
    GlobalNPC
    Mar 30, 2024
    22
    在 DBeaver 里面遇到过 复制后修改的连不上,完全新建的可以
    楼主是复制的吗?
    Elaina
    Elaina
    OP
    Mar 30, 2024
    23
    @infun 我是手填的
    Elaina
    Elaina
    OP
    Mar 30, 2024
    24
    @ChicC 有可能是这个原因,我在 http proxy 选项里面看到了这个警告:
    ```
    You have JVM property "https.proxyHost" set to "127.0.0.1".This may lead to incorrect behaviour. Proxy should be set in Settings HTTP ProXyThis JVM property is old and its usage is not recommended by Oracle.(Note: lt could have been assigned by some code dynamically.
    ```
    难道是这玩意儿的锅😂
    ChicC
    ChicC
    Mar 30, 2024
    25
    @Elaina 他家软件配置的代理会导致所有连接都走那个代理
    Elaina
    Elaina
    OP
    Mar 30, 2024
    26
    @ChicC 但是我在 vm 的配置里删掉了这个,然后选 no Proxy ,不关掉本机的 socks 代理仍然无法连接,感觉像是环回了? Datagrip->虚拟网卡->zerotier->虚拟网卡?因为外网的服务器连接并没有问题,就是使用 zerotier 的内网服务器才会有这个问题
    ChicC
    ChicC
    Mar 30, 2024
    27
    @Elaina Tun 了就复杂了
    guin
    guin
    Aug 31, 2024
    28
    @Elaina 请问这个具体怎么设置?
    Elaina
    Elaina
    OP
    Aug 31, 2024
    29
    @guin 具体设置指的是?
    guin
    guin
    Aug 31, 2024
    30
    @Elaina 就是你是怎么解决的,我现在是在规则里面直接写上 ip 地址 DIRECT ,你说的那个没看懂
    Elaina
    Elaina
    OP
    Aug 31, 2024
    31
    @guin 我的解决方法是把 socket 代理关掉,改配置没用
    guin
    guin
    Sep 1, 2024
    32
    @Elaina 好的 感谢
    wxjer
    wxjer
    Jun 26, 2025
    33
    我敲他个 dj 终于解决了,根据 op 说的关掉 socket 代理,去 vpn 里面关掉即可
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   959 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 19:49 · PVG 03:49 · LAX 11:49 · JFK 14:49
    ♥ Do have faith in what you're doing.