1

我已将我的 jsp 文件放在服务器中,我必须从该服务器通过 ssh 连接到另一台 linux 服务器,然后连接到 postgres 服务器。我们没有直接连接的外部 IP 地址。这就是为什么这看起来很复杂。至少对我来说。这是我的jsp的第一个连接部分。

<%@ page language="java" import="java.sql.*" %>
<%@page import="java.io.*"%>

<%
String driver = "org.postgresql.Driver";
String url = "jdbc:postgresql://10.254.147.162/dbac";
String username = "postgres";
String password = "postgres";
String myDataField = null;

Connection myConnection = null;
PreparedStatement myPreparedStatement = null;
ResultSet rst = null;
Class.forName(driver).newInstance();
myConnection = DriverManager.getConnection(url,username,password);
.
.
.

在这里,我必须连接到 IP 内部地址为 10.0.90.1 到 10.254.147.162 的 postgres 服务器。

请让我知道我应该如何从 10.254.147.162 SSH 到

4

1 回答 1

1

您应该在程序之外处理 ssh'ing。

在 Linux 中使用以下命令建立到数据库的 ssh 隧道:

ssh -fN -L5444:10.0.90.1:5432 10.254.147.162

这将建立从 localhost 端口 5444 到 10.0.90.1 上的 postgres 数据库的隧道。然后,将您的 url 定义更改为:

String url = "jdbc:postgresql://localhost:5444/dbac";

您可以为 5444 选择您喜欢的任何值。例如,您还可以将端口 5444 设置为访问您的生产数据库,并将端口 5445 设置为访问其他机器上的测试数据库。

于 2013-05-30T01:49:12.223 回答