easyssh吧 关注:4贴子:28
  • 0回复贴,共1

SSH代理的介绍

只看楼主收藏回复

以下内容摘自互联网
基本原理
SSH客户端连接SSH服务器采用的是22号端口,也既是说,服务器上开放22号端口,用来让客户端通过这个端口连接上服务器。然后在这个通过22号端口建立的连接上,客户端和服务器可以互相进行通信,这便是SSH的22号端口的一般功能。
除了上面所说的SSH连接的一般功能之外,SSH服务器还支持另外一种神奇的通信方式,就是在SSH连接上承载另外端口的连接。
这个功能读起来比较复杂,其实很简单。
比如,http服务器开放80端口来让客户连接,客户通过与服务器上的80端口直接建立一个通道用来与服务器进行http通信。这也是http通信的一个最最普遍的形式。
但是,我们还可以使用SSH服务器,不使用直接连接的方式,而是用另外一种比较怪异的方式来和服务器建立起80端口的连接通道。
这种怪异的方式就是说,客户端不直接跟服务器的80端口建立一个连接通道,反而是和服务器的22端口建立一个连接通道,但是在这个22端口的连接通道中,建立一个子连接通道,这个子连接通道是用来访问服务器的80端口。也就是说,在22号端口上建立的连接,传输的数据不是22号端口本来的数据,而是与服务器的80端口通信的一整条的连接通道。
了解了吧,形象的说就是,在与服务器的22端口建立的大的通道中,又包裹了一个与服务器的80端口的小连接通道。
SSH的这个功能就是所谓的SSH隧道,也即SSH Tunnel.使用“隧道”这个词还是很贴切的,因为数据不是直接跟服务器建立连接,而是在已经建立号的22号端口的隧道中建立跟服务器的连接。
需要了解的是,上面我们举的例子中,22号端口和80号端口都是属于同一个服务器的,实际上SSH隧道功能里面,我们的目的端口(此处是80端口)完全可以跟22号端口不是属于同一个主机,这意味着什么呢?
这意味着,我们能通过连接主机A的22号端口,所实现的功能是访问另外一台主机B的80端口!!这是什么?这不就是相当于把A主机当作代理服务器么???很明显了吧。
所以你也就能够了解为什么使用这个功能能够实现穿墙了吧!!:
我们自己的机器出于墙内,不能访问墙外,但是如果A主机能够访问墙外的数据,而A主机又开放了22号端口给我们来连接,那么我们不就是能通过这个连接来访问墙外的美好世界了么??
以上便是简单的介绍了SSH隧道的肤浅的理论知识。


IP属地:广东1楼2015-09-11 09:18回复