当前位置:首页 > 文章列表 > 文章 > 软件教程 > DBeaver SSH 隧道配置不生效怎么办:SSH 页、localhost 与端口转发核对

DBeaver SSH 隧道配置不生效怎么办:SSH 页、localhost 与端口转发核对

来源:17golang原创 2026-08-24 11:08:22 0浏览 收藏

不少场景下远程数据库只会开放跳板机的访问权限,你在DBeaver里开了SSH隧道选项,不代表后续数据库连接就默认走这条隧道。最常见的两个配置坑是:SSH标签页信息全填对了,结果Main主页面还留着远端数据库的公网地址;或是你用自定义JDBC URL连的时候,忘了手动配置端口转发规则。碰到“隧道测试显示成功,但死活连不上数据库”的情况,照着下面的界面项逐项核对,比你反复试密码换密钥效率高得多。

排查核心逻辑:先验证SSH隧道本身连通正常,再改主页面数据库地址为localhost走转发,手动JDBC连接额外核对端口映射。
要点速览
  • SSH 页先确认 Use SSH Tunnel、SSH 主机、22 端口和认证方式,再点击 Test tunnel configuration。
  • 隧道建立后,Main 页的数据库 Host 通常应改为 localhost,数据库端口仍对应远端服务。
  • 使用 URL 连接时,Advanced settings 里的 Local Port 与 Remote Port 要按实际端口转发填写。
  • Jump server 只解决“本机到不了目标 SSH 主机”的链路问题,不能替代数据库账号和驱动检查。

DBeaver 报错时先区分是哪一段连接失败

SSH隧道本身是一条独立的中间通道,数据库连接是跑在这条通道里的第二段连接,两段故障的表现完全不一样:SSH主机、端口或者密钥填错,通常在建立隧道的阶段就会直接报错;隧道能正常建立,但数据库驱动返回连接拒绝,大概率是Main页的Host、端口、数据库监听地址或者驱动参数配错了。

你可以先把问题拆成三个独立的检查点逐个确认:

检查点看哪里能说明什么
SSH 通道SSH 页的 Test tunnel configurationSSH 地址、端口、账号和认证材料是否可用
数据库目标Main 页 Host、Port、DatabaseDBeaver 是否从本机端口进入远端数据库
URL 转发Advanced settings 的 Local Port、Remote PortJDBC URL 是否绕过了自动端口映射

SSH 页的设置入口和关键开关怎么填

打开 DBeaver 的新建连接窗口,点击连接配置区域的加号,选择 SSH。顶部出现 SSH 标签后,先勾选 Use SSH Tunnel,再填写 SSH 服务器的 Host/IP、Port 和 User name。默认 SSH 端口是 22,但生产环境经常会改成自定义端口,不能只凭习惯填写。

DBeaver SSH 配置页真实截图:Use SSH Tunnel、Host/IP、Port 和认证方式用于建立数据库隧道

认证方式通常有 Password、Public Key 和 Agent。选择 Public Key 时,私钥路径和口令要指向 SSH 账户实际使用的密钥;选择 Agent 时,先确认本机的 ssh-agent 或对应代理已经启动。这里要注意,填的是SSH登录的凭据,不是数据库用户的密码,两个填反了的报错表现很像数据库连接失败,很容易误导排查方向。

SSH 页填写完成后点击 Test tunnel configuration。只有隧道测试通过,才值得继续排查数据库驱动和SQL层的问题;如果这里已经失败,应先处理主机可达性、密钥权限、跳板机或SSH服务端配置的问题。

Main 页为什么通常要改成 localhost

隧道建立完成后,DBeaver 会把远端数据库端口转发到本机的某个临时端口,数据库连接请求需要从本机的这个端口进入已经建立好的通道。因此官方的标准配置步骤要求在 Main 页把 Host 设置为 localhost。如果这里仍然写着只能在服务器内网访问的远端地址,DBeaver 会直接绕开隧道发起请求,结果自然还是连接超时或者被防火墙拦截。

数据库 Port 要看连接类型:普通连接可以让 DBeaver 自动选择本地转发端口;如果是 PostgreSQL、MySQL 等常规连接,重点是确认远端服务实际监听的端口,测试连接的时候留意有没有出现本机端口占用的提示,绝对不要把 SSH 服务端口 22 误填成数据库端口。

有个很容易踩的坑:SSH隧道测试成功,只能证明你本机可以正常登录SSH服务器,不代表远端的数据库进程正在正常运行监听,也不代表当前数据库账号有对应访问权限。数据库服务未启动、监听在仅限内网访问的网卡、账号被限制登录来源地址,都会在第二层数据库连接的时候报错。

JDBC URL 连接下,端口转发要手动对齐

手动填写 Host 和 Port 时,DBeaver 通常可以自动把远端端口映射到随机本地端口。但使用自定义复杂JDBC URL时,软件没办法安全替换URL内部写死的端口号,这时候你要打开 Advanced settings 面板,手动显式填写 Local Port 和 Remote Port 两个参数。

例如远端 PostgreSQL 监听 5432,你可以让 Local Port 也使用 5432;如果本机本地已经有PostgreSQL服务占用了这个端口,就换一个没人用的空闲本地端口,例如 15432,Remote Port 还是保持远端数据库实际监听的 5432。两者不是必须相同,只要分别对应“本机侧的入口端口”和“远端服务的实际端口”就行。

本机 DBeaver: localhost:15432
SSH 隧道:     localhost:15432  ->  db.internal:5432
远端数据库:   db.internal:5432

如果端口转发填写后还是连不上,先拿本机的端口扫描工具或者netstat检查 15432 有没有被其他进程占用,再去跳板机上核对远端数据库是不是真的在监听 5432。不要为了临时连通就随便勾选绕过SSH主机身份验证的选项,这会直接削弱SSH隧道的安全性,不能当作常规的修复手段。

Jump server 和共享隧道该怎么判断

本机没办法直接访问目标SSH主机,但可以先访问一台网关机的场景下,展开 Jump servers 配置项,先配置好网关信息,再配置目标主机信息。整条链路应该是“本机 → Jump server → 目标 SSH 主机 → 数据库”,少了任何一段都会在对应节点上报错。

DBeaver Jump servers 官方截图:网关 Jump 与 Target 主机的 SSH 链路配置

同一SSH配置下要连多个数据库的时候,DBeaver 支持共享已经建好的隧道。共享隧道的判定条件包含SSH主机名、SSH端口、用户名以及所选认证方式;只要其中一项不一样,DBeaver 就会尝试新建一条独立的隧道。碰到一个连接正常、另一个连接失败的情况,不要光数开了多少条隧道,要逐行比对两条连接的SSH配置项是不是完全一致。

保存后用一条可重复的验收路径收尾

  1. 在 SSH 页再次点击 Test tunnel configuration,确认认证和整条链路都正常。
  2. 回到 Main 页确认 Host 是 localhost,数据库端口对应远端服务,而不是 SSH 的 22 端口。
  3. 点击 Test Connection,区分是驱动报错、数据库账号密码错误还是远端端口拒绝连接。
  4. 执行一条简单的只读查询,比如读取当前数据库版本,确认连接确实落到了你要访问的目标实例上。
  5. 记录下你配置的本地端口;如果后续碰到端口冲突的问题,直接换个空闲本地端口,保持 Remote Port 不变就行。

如果只是临时排查故障,可以先关掉共享隧道、用明确的固定本地端口完成验证,之后再考虑要不要恢复共享配置。回退配置的时候不要直接删掉整个SSH配置页,先取消 Use SSH Tunnel 选项保存一份旧的连接设置,方便后面对比前后配置的差异。

常见问题

Test tunnel configuration 成功,Test Connection 仍然失败怎么办?

先检查 Main 页 Host 是不是已经改成 localhost,再检查数据库服务是不是正常监听远端端口。隧道成功只代表 SSH 链路是通的,不代表数据库服务本身和数据库账号权限没有问题。

为什么 SSH 端口是 22,数据库端口却不能填 22?

22 是 SSH 服务自己的端口,数据库通常监听 3306、5432 这类独立端口。SSH 负责搭建加密通道,数据库端口是通道里最终要访问的目标服务端口,两者职责完全不同。

Local Port 和 Remote Port 必须设置成一样吗?

不必须。本机已有服务占用远端数据库的常用端口时,可以随便换一个空闲的 Local Port,Remote Port 还是填写远端数据库实际监听的端口就可以。

结语

DBeaver SSH 隧道排错的关键不是反复试密码改配置,而是把 SSH 通道、数据库目标和端口转发三个环节拆开逐个验证。先把 SSH 页的隧道测试跑通,再把主页面地址改成 localhost 访问远端数据库;只有用自定义JDBC URL或者碰到本地端口冲突的场景时,再重点调整 Advanced settings 里的端口映射配置。这样每一步都有明确的状态反馈,出了问题也很容易回退定位原因。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
AI 应用 JSON Schema 怎么做版本兼容:新增字段、枚举变更与回滚边界AI 应用 JSON Schema 怎么做版本兼容:新增字段、枚举变更与回滚边界
上一篇
AI 应用 JSON Schema 怎么做版本兼容:新增字段、枚举变更与回滚边界
WebGPU 首次绘制为什么卡顿:Shader 编译、Pipeline 缓存与渐进加载边界
下一篇
WebGPU 首次绘制为什么卡顿:Shader 编译、Pipeline 缓存与渐进加载边界
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • ljg-skills -
    ljg-skills
    ljg-skills 是李继刚开源的 AI 技能与提示词集合,面向大模型使用者整理了一批可复用的 prompt、角色设定和任务技能模板,适合用于学习提示词设计、搭建个人 AI 工作流和沉淀团队常用智能体能力。
    5211次使用
  • MELO音乐 - AI 音乐生成平台,支持多模态创作能力
    MELO音乐
    MELO音乐是一站式AI视频与音乐制作助手,对标suno, udio的高品质体验。提供伴奏生成、原创写词、无损导出、哼唱识曲、混音变声等全套音频与短视频编辑工具。无论是流行Kpop、电音说唱、民谣古风、摇滚儿歌还是商用轻音乐,MELO为你免费谱曲,轻松做同款!
    4715次使用
  • UniScribe - AI 免费在线音视频转文字平台
    UniScribe
    UniScribe 是一款 AI 音视频转文字与内容整理工具,支持上传音频、视频文件或粘贴 YouTube 链接,自动生成转写文本、摘要、思维导图和关键问题,并支持多格式导出,适合会议记录、课程学习、访谈整理和内容创作复盘。
    4666次使用
  • 剧云 - 免费 AI 智能中文剧本创作平台
    剧云
    剧云是专业中文剧本创作平台,安全稳定运行十余年,集成AI编剧、剧本医生审核、人物小传、剧情关系图、大纲编写、多人协作、Word导入导出、版权管控功能,数据安全防护,轻松高效创作剧本。
    4928次使用
  • 万象有声 - AI 一站式有声内容创作平台
    万象有声
    万象有声,一个专为有声创作者打造的新一代智能有声内容创作平台。平台提供专业的智能拆章、智能画本编辑、AI配音、AI生成音效、后期制作、智能对轨、智能审听等有声创作全流程工具,可以帮助创作者高效、低成本创作出引人入胜的有声作品。立即体验,让有声书制作更简单!
    4881次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码