SSH隧道与端口转发及内网穿透-服务器安全-黑吧安全网

本文的受众

如果你遇到了以下问题,那么你应该阅读这篇文章

  1. 我听说过这种技术,我对它很感兴趣
  2. 我想在家里访问我在公司的机器(写程序,查数据,下电影)。
  3. 公司为了防止我们用XX软件封锁了它的端口或者服务器地址。
  4. 公司不让我们上XX网站,限制了网址甚至IP。
  5. 公司不让我们看关于XX的信息,甚至花血本买了XX设备,能够对内容进行过滤。一看XX内容,链接就中断了。
  6. 我爸是搞电脑的,他在家里的路由器上动了手脚,我不能看XXX了。

带着这些问题,我们先从什么是ssh隧道开始。

什么是SSH隧道

首先看下面这张图,我们所面临的大部分情况都和它类似。我们的电脑在右上角,通过公司带有防火墙功能的路由器接入互联网(当然可能还有交换机什么的在中间连接着你和路由器,但是在我们的问题中交换机并不起到什么关键性的作用)。右下脚的部分是一个网站的服务器,它是我们公司防火墙策略的一部分,也就是说公司不希望我们访问这个服务器。在右上角还有一台机器,它也是属于我们的。但是这台机器并不在我们公司里面,换句话说他不受到公司防火墙的限制。最后也是最重要的一点是,我们能够在公司通过互联网直接访问这台机器。或者说这台位于公司防火墙外面的机器需要拥有一个独立的互联网IP,同时公司的防火墙规则不会屏蔽这台机器,并且这台机器运行着一个OpenSSH服务器。

现在,我们清楚地知道了自己所处的网络环境。并且不难理解我们在公司无法访问那个服务器的原因是:线路A-B-C上A-B之间的防火墙屏蔽了对那个服务器的访问。与此同时,我们也很快注意到,线路A-B-D之间、D-C之间是不受阻碍的。相信你已经想到了,在A-B之间的防火墙不会屏蔽对机器d的访问。因此我们可以通过机器d建立一个通道A-B-D-C,从而访问到机器c上的数据。

这条通道可以用很多技术来建立,这里我们仅仅介绍如何使用SSH服务器来建立这样一个通道-他被称为SSH隧道。

如何建立本地SSH隧道

在我们计划建立一个本地SSH隧道之前,我们必须清楚下面这些数据:

  1. 中间服务器d的IP地址
  2. 要访问服务器c的IP地址
  3. 要访问服务器c的端口

现在,我们把上面这张图变得具体一些,给这些机器加上IP地址。并且根据下面这张图列出我们的计划:

  1. 需要访问234.234.234.234的FTP服务,也就是端口21
  2. 中间服务器是123.123.123.123

现在我们使用下面这条命令来达成我们的目的

来源URL:http://www.myhack58.com/Article/60/63/2013/38396.htm