如何在Oracle SQL Developer中通过SSH网关连接数据库并绕过VPN?
在Oracle SQL Developer中通过SSH跳转连接内网Oracle数据库
第一步:确认内网数据库机器上的Oracle监听端口
因为你不知道数据库端口,先通过SSH登录dbmachine,执行以下命令获取:
- 执行
lsnrctl status,在输出的Listening Endpoints Summary部分找到监听端口(默认通常是1521) - 或者用Linux命令查看:
netstat -tulpn | grep LISTEN | grep oracle - 也可以查看Oracle配置文件:
cat $ORACLE_HOME/network/admin/tnsnames.ora,里面的连接字符串会包含端口信息
方法一:通过本地SSH端口转发实现(简单直接)
利用你已有的SSH配置,在本地终端执行端口转发命令,将本地端口映射到dbmachine的Oracle端口:
ssh -L 本地端口:dbmachine.company.org:Oracle端口 dbmachine
比如Oracle端口是1521,本地也用1521:
ssh -L 1521:dbmachine.company.org:1521 dbmachine
执行后保持终端窗口打开,不要关闭,这条命令会通过你的ProxyJump配置自动走gateway跳转。
然后在SQL Developer中新建数据库连接:
Connection标签页:- Hostname:填
localhost - Port:填刚才用的本地端口(比如1521)
- SID/Service Name:根据你在
dbmachine上sqlplus的登录方式填写,可通过sqlplus / as sysdba后执行select name from v$database;获取SID,或select value from v$parameter where name='service_names';获取服务名 - 填写数据库的用户名和密码
- Hostname:填
- 直接点击
Test测试连接,成功后保存即可。
方法二:让SQL Developer直接使用系统SSH(无需手动保持终端)
SQL Developer可以调用系统的SSH客户端,直接读取你~/.ssh/config里的ProxyJump配置,步骤如下:
- 打开SQL Developer,依次进入
Tools > Preferences > Database > Advanced - 在
SSH Client选项中,选择Use system SSH(默认是Use built-in SSH),点击OK保存设置
然后新建数据库连接:
- 切换到
SSH标签页,勾选Use SSH Tunnel- Host:填
dbmachine(对应你SSH配置里的Host名,系统SSH会自动处理ProxyJump跳转) - Port:填22(默认SSH端口)
- Username:填
marc(你的SSH用户名) - 认证方式:如果是密钥登录,选择
Use Key File并指向你的私钥文件;如果是密码登录,直接填写SSH密码
- Host:填
- 切换到
Connection标签页:- Hostname:填
localhost - Port:填第一步查到的Oracle监听端口
- SID/Service Name:同上填写对应的数据库标识
- 填写数据库的用户名和密码
- Hostname:填
- 点击
Test测试连接,成功后保存连接配置。
内容的提问来源于stack exchange,提问作者marc.soda
相关产品推荐
相关产品推荐

