![通过另一台可以访问第一台服务器的服务器,从我的笔记本电脑连接到另一台服务器](https://linux22.com/image/740112/%E9%80%9A%E8%BF%87%E5%8F%A6%E4%B8%80%E5%8F%B0%E5%8F%AF%E4%BB%A5%E8%AE%BF%E9%97%AE%E7%AC%AC%E4%B8%80%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%8C%E4%BB%8E%E6%88%91%E7%9A%84%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%8F%A6%E4%B8%80%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我在一台服务器(我们称之为服务器 A)的 1522 端口上运行着一个数据库。我想将我的客户端连接到这台服务器 A,但端口未打开。我可以通过 ssh 访问另一台已打开连接的服务器(服务器 B)。
有没有什么方法可以使用服务器 B 作为代理服务器并将数据库客户端从笔记本电脑连接到数据库服务器?
目标: 笔记本电脑 MAC OS ===[JDBC]===> DB 服务器 A
当前访问: 笔记本电脑 MAC OS ===[ssh 访问]===> 服务器 B ===[JDBC]===> DB 服务器 A
Mac:OS 10.14.1
服务器 B:SLES 12 OpenSSH_7.2p2(完全访问服务器)
服务器 A:Oracle DB(仅与服务器 B 建立 JDBC 连接)
答案1
您可以通过代理请求轻松地完成此操作。
通常使用 SSH 以临时方式执行此操作 - 请参阅https://www.systutorials.com/944/proxy-using-ssh-tunnel/如果您还没有使用过一些更高级的 SSH 功能,这可能会有点复杂。
或者,您可以为生产系统使用专用代理服务器(如 HA Proxy)。这样,您只需说“如果有东西访问此框上的端口 1522,则将其转发到服务器上的端口 1522”。这是原始 TCP 代理 - 我相信 Oracle 会向您出售各种花哨的东西来做同样的事情。