现在的网络是这样的,有一台服务器,配置好了 zerotier 。 然后使用 zerotier 的 ip ,远程连接数据库,zerotier 提供的 ip 段是 172.31.xx.xx 。
当我使用了 surge 的系统代理+增强模式( tun 模式)之后,Datagrip 就无法连接远端数据库了,但是 Navicat 可以,当关掉 surge 之后,Datagrip 才能顺利连接,这个有什么解决办法吗?
使用 surge 的请求查看器观察到是匹配的直连规则,但花费了 10s 才建立连接,但是我 ping 这个 ip 只有 30-40ms ,ssh 之类的速度也很快。
以及 Datagrip 报错是这样的,但这个错误提示好像并没有任何信息量。
求 v 友们指点一下,有什么解决办法吗?
1
moshiyeap100 236 天前
点一下 Test Connection 看看连接信息里的 PING 是多少
|
2
moshiyeap100 236 天前
我在想是不是走了 GEOIP 判定了,看看有没有类似的规则
|
3
moshiyeap100 236 天前
在请求查看器里看看连接的 Timing/Note ,截个图看看
|
4
jaoyina 236 天前
这个错并不像是网不通,看下驱动和连接参数有什么差异。
|
5
Starxy 236 天前
之前 mysql 遇到过类似的 dg 连不上 navicat 能连上的问题,当时也在用 zt ,但是 surge 没用过,最后是 vm 参数加了-Djava.net.preferIPv4Stack=true 解决的
|
6
chen90902 236 天前 via iPhone
之前我也遇到过类似的情况,排查出来是开了代理的问题,可以关闭代理试试。
有环境变量可以忽略代理,搜一下吧 |
7
Elaina OP @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 |
10
Elaina OP @moshiyeap100 能定位的问题是关闭增强模式就能正常连接了,开启的话直接提示连接失败。这个是什么原理呢
|
11
moshiyeap100 236 天前
@Elaina [Rule] Sub-rule matched: IP-CIDR 172.16.0.0/12(Direct.list) 把这个 Direct.list 中的规则关于 172.16.0.0/12 的规则干掉试试
|
12
Elaina OP @moshiyeap100 干掉了还是连不上,虽然走的是我梯子的规则,surge 那里 50ms 就成功了,上面那个得 10s😂
|
13
Elaina OP @moshiyeap100 我排查出问题了,是开了 socks 代理之后,jdbc 会出问题,这个有解决方法吗?
|
14
parthenon2007 236 天前 via iPhone
我也是同样的问题。
|
15
rm0gang0rf 236 天前
socks 代理关掉就行了
|
16
moshiyeap100 236 天前
@Elaina datagrip 的配置页面,就是你截图的这个页面,connect type 选 default 或者 unix socket 试试
|
17
Elaina OP @moshiyeap100 default 和 url 都试过了,不行,不知道这个 socks 有啥坑😂,头疼
|
18
Elaina OP @moshiyeap100 我调试出来了,把 host 加到这个列表里面:TCP Force HTTP Hosts ,就可以连接了,不知道为啥,很怪
|
19
moshiyeap100 236 天前
@Elaina 晚上回家我也研究下,上次我用 tun 模式也遇到了类似的问题,不过我当时改了下规则就可以用了。
|
20
zzping 236 天前
Datagrip 无法连接 startrocks ,但 Navicat 能,有什么好的解法吗
|
21
ChicC 236 天前
可能是使用了 Datagrip 的 socks 代理?用 http 代理试试
|
22
infun 236 天前
在 DBeaver 里面遇到过 复制后修改的连不上,完全新建的可以
楼主是复制的吗? |
24
Elaina OP @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. ``` 难道是这玩意儿的锅😂 |