需要帮助java中的套接字端口转发(AWS CISCO路由器与AWS服务器)

时间:2016-02-27 08:05:00

标签: java sockets amazon-ec2 portforwarding cisco

我有 aws服务器(10.10.10.1),它将充当 CISCO路由器,它将转发到另一个 aws服务器(10.10。 10.2)即可。现在我使用以下命令在ssh中连接服务器。

ssh -i server.pem ec2-user@10.10.10.1 -p 2222

然后它将连接到服务器10.10.10.2。

现在我需要在那里运行套接字程序,我需要一个客户端(将在本地运行)程序来连接它。

我试过很多方法,但我无法连接它。

我是socket编程的新手,请帮我解决。

在答案结果下方

我尝试通过SSH隧道进行连接,隧道正在为路由器工作,而且它没有进入aws服务器

请参阅我的隧道命令,

ssh -i server.pem -L 9080:10.10.10.2:8090 ec2-user@10.10.10.1

我还在10.10.10.2中运行了Socket服务器代码,在我的本地机器上运行了客户端代码。

请帮我解决一下

1 个答案:

答案 0 :(得分:2)

这是你的布局

DEV ---ssh---> PIVOT ---ssh---> SERVER

有一个称为端口转发的SSH功能,允许用户在连接的一端打开侦听(服务器)套接字(-L表示本地,-R表示远程),代理所有套接字读取和写入另一台机器可访问从那以后。

由于PIVOT可以连接到SERVER,您只需要在DEV计算机上使用代理:

me@dev$ ssh -L 9005:server:80 pivot

然后当你在开发机器上与localhost:9005交谈时,你实际上正在通过SSH渠道与server:80交谈。

注意:如果主机A无法直接连接到服务器并且您将其用于ssh到B,那么您实际上必须设置两个转发器,每个SSH桥接器一个。