一 什么是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隧道之前,我们必须清楚下面这些数据:

中间服务器d的IP地址

要访问服务器c的IP地址

要访问服务器c的端口

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

需要访问234.234.234.234的FTP服务,也就是端口21

中间服务器是123.123.123.123

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

ssh -N -f -L 2121:234.234.234.234:21 123.123.123.123

ftp localhost:2121 # 现在访问本地2121端口,就能连接234.234.234.234的21端口了

这里我们用到了SSH客户端的三个参数,下面我们一一做出解释:

-N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发

-f 告诉SSH客户端在后台运行

-L 做本地映射端口,被冒号分割的三个部分含义分别是最后一个参数是我们用来建立隧道的中间机器的IP地址(IP: 123.123.123.123)

需要使用的本地端口号

需要访问的目标机器IP地址(IP: 234.234.234.234)

需要访问的目标机器端口(端口: 21)

我们再重复一下-L参数的行为。-L X:Y:Z的含义是,将IP为Y的机器的Z端口通过中间服务器映射到本地机器的X端口。

在这条命令成功执行之后,我们已经具有绕过公司防火墙的能力,并且成功访问到了我们喜欢的一个FTP服务器了。

三、AutoSSH

使用SSH的方式不够稳定,使用AutoSSH可以自动在连接断开时自动重连,再把AutoSSH加入系统服务自动启动,则可以做到稳定的连接。

autossh是个很好的东西,他是用来保证SSH隧道连接稳定性的。在Ubuntu下安装

apt-get install autossh

使用方法很简单,比如原来直接用ssh的命令:

ssh -N -v -D localhost:8527 root@remote_ssh_server -p remote_ssh_port

现在改成:

autossh -M 5122 -N -v -D localhost:8527 root@remote_ssh_server -p remote_ssh_port

linux ssh连接交换机_linux SSH 隧道相关推荐

  1. linux ssh连接交换机_访问SMB交换机CLI使用SSH或远程登录

    访问SMB交换机CLI使用SSH或远程登录 客观 Cisco小型企业被管理的交换机可以通过命令行界面(CLI)远程访问和被配置.访问CLI在一个基于终端的窗口允许命令被输入.如果喜欢配置使用在您的交换 ...

  2. linux远程连接交换机,思科:路由器、交换机 ssh远程连接

    1.实验名称:思科:路由器.交换机.ssh远程连接 2.实验拓扑图: 3.地址规划 : pc0 : 192.168.10.1 255.255.255.0  gateway 192.168.10.254 ...

  3. linux ssh连接交换机_如何配置交换机SSH远程登录

    如何配置交换机SSH远程登录,本期我们就来了解下ssh远程登陆的方式,以锐捷交换机为例. 如何配置锐捷SSH远程登陆? 一.配置思路 配置ssh远程登陆,一般是有四个步骤: 1.首先选择Console ...

  4. Python用SSH连接交换机以及多命令输入(paramiko)

    一段小demo: import paramiko import time client = paramiko.SSHClient() #创建SSH连接 client.set_missing_host_ ...

  5. 远程mysql用ssh连接_使用SSH密钥连接到远程MySQL服务器

    远程mysql用ssh连接 In this article, it will be described how to connect to remote MySQL Server on Linux O ...

  6. linux ssh连接交换机_使用SSH登录交换机(RSA方式)

    由于原来使用的rsa key convert下载不到了,不能将公钥转换成DER格式,而老式的VRP只支持DER格式,不支持OPENSSL以及PEM编码格式的公钥.本文介绍了在Linux及puttyge ...

  7. linux ssh连接交换机_设置交换机SSH的详细命令

    对于交换机的使用我们需要特别注意安全.那么接下来我们就对设置交换机SSH的内容进行一下具体的分析.其中我们所介绍的是有关于H3C S3100交换机SSH登录配置公钥和密码认证.希望能够帮助大家完成设置 ...

  8. linux ssh连接交换机_java通过ssh协议管理交换机,linux

    1.参阅文档 http://blog.csdn.net/pengchang_1981/article/details/8095683(http://blog.csdn.net/pengchang_19 ...

  9. Linux无法连接远程仓库,ssh无法连接到远端Ubuntu的解决方法

    ssh无法连接到远端Ubuntu的解决方法 2014-10-16      0个评论    来源:KiteRunner的专栏 近日,饱受无法远程登录到新安装在VMWare上的Ubuntu虚拟机,如今发 ...

最新文章

  1. matlab语言实验二,实验二 MATLAB语言基础
  2. 每日英语:Losing It at the Movies: Silly Beats Sober in China's Box Office
  3. python 表格格式输出_利用python对excel中一列的时间数据更改格式操作
  4. 简单实现迷你Vue框架
  5. VC学习笔记 -单选按钮控件(Ridio Button)的使用
  6. C#程序员经常用到的10个实用代码片段
  7. Hbase总结(四)- Hbase与传统数据库的区别
  8. 聊起 BigTable,让你不再胆怯
  9. markdown 转义字符
  10. iframe带了token不显示_不就是登录吗,能有多复杂?sa-token带你轻松搞定多地登陆、单地登录、同端互斥登录...
  11. 程序员数据库访问的优化的一些思考
  12. 【leetcode】1041. Robot Bounded In Circle
  13. 证件照怎么制作?超简单的证件照制作教程来了
  14. c++中fail函数
  15. 中国互联网出现数学家的科普乐园
  16. 总结用过的几个视频同步分离电路--LM1881
  17. 优步和滴滴激战中国市场
  18. React项目-好客租房一些报错及解决方法及Navicat for MySQL的使用
  19. Sycode.DWG.DXF.Converter.v2.0 1CD
  20. Modbus/Modbus Plus(MB+)/Modbus TCP/IP区别

热门文章

  1. 【iOS-cocos2d-X 游戏开发之十一】使用New CCSprite() CCUserDefault要注意!
  2. simulink里面pid模块N的参数什么意思?
  3. VMware安装MacOSx系统
  4. 在Windows下编译WebRTC
  5. Python中的shape和reshape()
  6. win10+vs2017+caffe(crnn)编译过程记录(验证成功)
  7. 如何利用C/C++逐行读取txt文件中的字符串(可以顺便实现文本文件的复制)
  8. python dlib学习(十一):眨眼检测
  9. 如何改进yolov3_揭秘YOLOv3鲜为人知的关键细节
  10. Mysql 的 聚簇索引和二级索引