通过SSH隧道在DBeaver连接Oracle数据库失败求助
SSH隧道+DBeaver Oracle连接失败的排查思路
核对本地端口映射匹配度
你的SSH命令是将本地55444端口转发至远程{remoteHostName}:1521,所以DBeaver的Oracle连接配置必须满足:- 主机地址填
localhost或127.0.0.1 - 端口填
55444(而非远程的1521)
同时检查本地端口是否被占用:Windows执行netstat -ano | findstr :55444,Linux执行lsof -i :55444,若被占用则更换本地端口(同步更新SSH命令和DBeaver配置)。
- 主机地址填
验证SSH隧道的实际连通性
不要只依赖DBeaver的隧道测试,手动验证:- 在VM上执行
telnet localhost 55444,能连通说明隧道转发正常;连不上则重新执行SSH命令(去掉-f和-N参数),查看是否有报错(比如密钥权限错误、远程主机防火墙拦截)。 - 登录SSH服务器后,测试能否访问数据库:
telnet {remoteHostName} 1521,若连不上,说明SSH服务器到数据库的链路有问题,和DBeaver无关。
- 在VM上执行
确认Oracle服务名/SID一致性
DBeaver中填写的Oracle服务名/SID必须和你批处理脚本查询时用的完全一致。可登录SSH服务器执行lsnrctl status,查看监听的服务名,确保DBeaver配置匹配。检查DBeaver SSH隧道配置细节
确保DBeaver的SSH配置和批处理命令完全对齐:- 远程主机填
{hostName},端口设为2006 - 认证方式选「密钥文件」,导入你的
{keyFile}(Windows注意密钥文件权限,Linux需设为chmod 600 {keyFile}) - 端口转发类型选「本地」,本地端口
55444,目标主机{remoteHostName},目标端口1521
禁用「动态端口转发」选项。
- 远程主机填
排查防火墙与安全组限制
- VM本地防火墙:临时关闭或添加规则允许
55444端口的本地通信 - SSH服务器防火墙:确认允许VM IP访问
2006端口,同时允许SSH服务器访问数据库的1521端口 - 数据库服务器安全组:确认允许SSH服务器IP访问
1521端口
- VM本地防火墙:临时关闭或添加规则允许
内容的提问来源于stack exchange,提问作者Henrik Poulsen
相关产品推荐
相关产品推荐

