DBeaver通过SSH隧道连接数据库时,主机/IP必须填localhost,端口填数据库真实监听端口;SSH页签需正确配置私钥路径、Passphrase及Remote host/port;本地端口冲突或SSL未配会导致静默断连。

填错“主机/IP”是连不上的最常见原因
很多人在“主要”页签里填跳板机的公网 IP 或数据库真实内网地址,结果测试连接失败。DBeaver 通过 SSH 隧道访问时,数据库对它是“本地”的——隧道打通后,它只认 localhost 或 127.0.0.1。
必须这样填:
-
主机/IP:固定填localhost(不能填数据库真实地址,哪怕它也在同一台机器上) -
端口:填数据库服务监听的真实端口(如 MySQL 是3306,达梦是5236或5233) - 用户名、密码:按数据库实际账号填,和 SSH 认证无关
SSH 页签里最容易漏掉的三个配置点
勾选了“使用 SSH 隧道”,但连不上,大概率卡在这三项:
-
认证方式选Public Key时,私钥(Private Key)文件路径必须正确,且文件权限不能太宽松(Linux/macOS 下建议chmod 600) - 如果私钥设置了
Passphrase,一定要填到“口令”框里;留空或填错都会静默失败 - “密码”字段在公钥模式下通常不用填,但某些 DBeaver 版本(尤其是旧版)会误读,可临时切回
Password认证方式试一次
Remote host 和 Remote port 不是你连的那台机器
这是概念混淆重灾区。SSH 页签里的 Remote host 和 Remote port 指的是“数据库服务器在跳板机网络视角下的地址”,不是跳板机自己。
举例:跳板机 IP 是 1.3.1.1,数据库真实内网地址是 10.10.20.5:5432,那么:
-
Remote host填10.10.20.5 -
Remote port填5432 - 跳板机必须能直连这个地址+端口(防火墙、路由、数据库
listen_addresses都得放开)
如果数据库和跳板机是同一台,Remote host 才填 localhost 或 127.0.0.1,否则隧道转发会失败。
本地端口被占或 SSL 配置冲突会静默断连
测试能通、连上几秒就断,先查这两处:
- 用
lsof -i :3306(macOS/Linux)或netstat -ano | findstr :3306(Windows)确认你填的本地端口没被 MySQL、另一个 DBeaver 实例或其他程序占用 - 如果数据库强制 SSL(比如 PostgreSQL 的
sslmode=require),但 DBeaver 的“SSL”页签没启用,或者 CA 证书路径填错,连接会在认证阶段直接中断,错误日志里常出现SSL connection has been closed unexpectedly
隧道本身不处理 SSL,它只负责把 TCP 流量加密转发过去;SSL 是数据库驱动层的事,得单独配。


















