您的位置:首页 > 其它

SSH端口转发实现代理服务器

2015-11-03 18:46 337 查看
端口转发介绍

         SSH为建立在应用层和传输层基础上的安全协议,常用端口为22。本文主要介绍其端口转发功能。顾名思义,就是监听指定端口,把监听到的信息通过ssh协议通道(22端口和ssh server)转发到remote target host 指定端口。其中ssh server就是中转服务器(代理服务器)。

 

端口转发必备条件

中转服务器连通性:客户端主机能ssh登陆到中间主机;中间主机与目标应用无防火墙限制。当然中转服务器可以是多台(问题2就是两台中转服务器)。

 

 

端口转发方式方法

1.方式

本地端口转发:client能ssh到server时,可使用,属于正向ssh。

远程端口转发:server能ssh到client时,可使用,属于逆向ssh。

某些条件限制下就只能用一种端口转发方式了。

2. 方法

a:ssh命令行(linux主机或仿真器运行)

本地端口转发:

                 
ssh -L <local port>:<remote host>:<remote port> <SSH hostname> 

远程端口转发:

        
         ssh -R <local port>:<remote host>:<remote port> <SSH hostname> 

b:SecureCRT工具端口转发功能(主要介绍)

c:利用orion-ssh2-214.jar包java编码模拟端口转发和基于ssh协议的功能(后面介绍)

 

SecureCRT工具端口转发功能实例一:本机访问受防火墙限制的数据库服务器

1.      
中转服务器:10.10.222.333

2.      
目的主机:11.11.222.444

3.      
实现本机登陆

 

步骤一:快速新建连接 > ssh到10.10.222.333

SecureCRT>quick connect>

 

步骤二:端口转发设置

1.标签右键>session options>Port Forwarding(本地端口转发)



2.新增端口转发

             点击add,新增一个本地端口转发。设置参数后保存。



 

步骤三:重新组装数据库连接串

真实连接串:(DESCRIPTION =(ADDRESS = (PROTOCOL = tcp)(HOST = 11.11.222.444)(PORT=1542))(connect_data=(sid=test-db)))

端口转发连接串:(DESCRIPTION =(ADDRESS = (PROTOCOL = tcp)(HOST =
127.0.0.1)(PORT=1542))(connect_data=(sid=test-db)))

或(DESCRIPTION =(ADDRESS = (PROTOCOL = tcp)(HOST =
localhost)(PORT=1542))(connect_data=(sid=test-db)))

 

注:端口转发连接串中端口不一定与真实连接串中端口相等。

 

步骤四:本机登陆test db

        在pl/sql客户端,用步骤三端口转发连接串,登陆成功。前提是SecureCRT connect要处于连接状态。(即步骤一要一直连接着)

 

 
利用orion-ssh2-214.jar包java编码模拟端口转发

 

Connection conn = new Connection("10.10.222.333");
//  建立连接
           conn.connect();
//ssh登陆
           boolean isAuthenticated = conn.authenticateWithPassword(username,password);
           if (isAuthenticated ==
false)
              thrownew IOException("Authentication failed.");
//localhost:12345 端口转发到11.11.222.444:22端口
           LocalPortForwarder
lpfd
= conn.createLocalPortForwarder(12345, "11.11.222.444", 22) ;
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: