Linux版Navicat不支持SSH隧道配置,必须用系统级SSH端口转发(ssh -L)将内网数据库映射至本地端口,再以localhost:转发端口方式连接;需确保跳板机开启AllowTcpForwarding、数据库账号授权跳板机IP、防火墙放行对应端口。
Linux版Navicat不支持直接SSH隧道连接
linux桌面版navicat(如navicat premium linux)**没有图形化ssh配置界面**,也不支持在连接设置里勾选“使用ssh通道”。这是和windows/macos版本最根本的差异。你看到的ssh标签页、跳板机配置项,在linux版中压根不存在。强行填入ssh参数或尝试导入windows配置,navicat启动时会忽略或报错,连接仍走纯tcp直连——而内网数据库通常根本不暴露在公网或本地网络可达范围内。
必须用SSH端口转发(ssh -L)做前置代理
绕过Linux版Navicat限制的唯一可靠方式,是用系统级SSH端口转发把远程内网数据库“拉”到本地端口。本质是让localhost:3307这个本地端口,实时映射到10.2.67.9:3306(内网DB地址)。
- 先确认跳板机可SSH登录:运行
ssh user@jump-server-ip能成功交互 - 执行端口转发命令(保持终端不关闭):
ssh -L 3307:10.2.67.9:3306 user@jump-server-ip -N - 其中
3307是你本地空闲端口(避免和本机MySQL冲突),10.2.67.9是内网数据库真实IP,jump-server-ip是跳板机公网/可达IP -
-N表示不执行远程命令,只做端口转发;加-f可后台运行(需配好免密登录)
Navicat连接时主机填localhost,端口填转发端口
此时Navicat完全感知不到SSH,它只是连一个“本地服务”。只要端口转发进程在运行,数据库就等效于跑在你本机的3307端口上。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 新建MySQL连接 → 主机:
localhost(不能填127.0.0.1,某些Linux发行版的/etc/hosts解析有差异) - 端口:
3307(和ssh -L里第一个数字一致) - 用户名/密码:填内网数据库账号,不是跳板机账号
- 测试连接前,务必用
telnet localhost 3307验证端口是否通——不通说明SSH转发没生效或被中断
容易被忽略的权限与网络细节
端口转发只是链路一环,数据库侧权限和跳板机网络策略常被跳过检查:
- 内网数据库的账号必须允许从跳板机IP登录,例如
'appuser'@'10.2.100.5'(跳板机在内网的IP),而不是'appuser'@'%'——因为连接实际发起方是跳板机,不是你的Linux本机 - 跳板机的
sshd_config需开启AllowTcpForwarding yes,否则ssh -L会被拒绝 - 若跳板机本身也受限(比如只允许特定IP SSH),需先确保你的Linux本机IP在白名单里
- 防火墙:跳板机的iptables/nftables、内网数据库服务器的firewalld,都必须放行对应端口(3306对跳板机,3307对你本机)
真正卡住的地方往往不在Navicat界面里,而在那条ssh -L命令背后的三层网络策略和三组账号权限上。

















