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

端口转发介绍

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

 

端口转发必备条件

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

 

 

端口转发方式方法

1.方式

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

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

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

2. 方法

assh命令行(linux主机或仿真器运行)

本地端口转发:

                  ssh -L  port>: host>: port>  hostname> 

远程端口转发:

                  ssh -R  port>: host>: port>  hostname> 

bSecureCRT工具端口转发功能(主要介绍)

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


 

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

1.       中转服务器:10.10.222.333

2.       目的主机:11.11.222.444

3.       实现本机登陆

 

步骤一:快速新建连接 > ssh10.10.222.333

SecureCRT>quick connect>

 

步骤二:端口转发设置

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

SSH端口转发实现代理服务器_第1张图片

2.新增端口转发

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

SSH端口转发实现代理服务器_第2张图片

 

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

真实连接串:(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.jarjava编码模拟端口转发

 

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) ;

 

 

你可能感兴趣的:(SSH端口转发实现代理服务器)