mac 电脑上连接不上数据库

46 阅读1分钟

1、 先确认端口

把下面 5236 换成你的达梦实际端口:

nc -zv 10.255.x.x 5236          # 通
sudo tcpdump -i any -nn "host 10.255.x.x and port 5236"

持抓包,另开终端执行

如果抓包 看不到任何 SYN 说明包被本机防火墙拦截; 如果能看到 SYN 重传 3 次后 RST,说明远端或中间设备拒绝。

2、检查 macOS Application Firewall 是否 block 了 java

系统设置 → 网络 → 防火墙 → 选项

搜索 java 、 Eclipse 、 IDEA 、 jcmd 等,如果有 Block 条目,改成 Allow 或直接关掉防火墙做一次对比测试。

命令行快速关防火墙(测试完记得开):

sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off

3. PF 规则也可能丢包

sudo pfctl -sr | grep -i 10.255.x.x

如果你曾装过 Little Snitch / Radio Silence / TripMode ,先把它们 完全退出 再测

4. 强制 IPv4 + 指定源地址(排除 IPv6 或路由表问题

jdbc:dm://10.255.x.x:5236?useIPv4=true

启动时再加 JVM 参数

-Djava.net.preferIPv4Stack=true

5. 用 root 跑一次 Java

如果 sudo 能通、普通用户不通,100 % 是 防火墙按进程签名拦截。

结论速查表

image.png