SSH端口转发
  SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允许 SSH 的连接,也能够通过将 TCP 端口转发来使用 SSH 进行通讯
SSH 端口转发能够提供两大功能:
    加密 SSH Client 端至 SSH Server 端之间的通讯数据
    突破防火墙的限制完成一些之前无法建立的 TCP 连接
本地转发:
    -L localport:remotehost:remotehostport sshserver
选项:
    -f 后台启用
    -N 不打开远程shell,处于等待状态
    -g 启用网关功能

实验1:本地端口转发

ssh端口转发:远程到99.120上的23端口

用ssh加密的协议封装其他的不加密协议telnet,从而实现安全传输

实验图:

 hostA:  IP:292.168.199.190

 hostB:  192.168.99.20

 hostC:  192.168.99.120 (telnet服务端)

实现过程:先再A和B之间利用ssh协议连接,创建一个隧道,里面走的是telnet,因为ssh协议是加密的,把telnet封装在其内部,在到达内网B主机时会自动的解封装在由B主机转发到主机C上

从而实现了加密连接通讯

实验步骤:①开启本地一个端口9527,先和主机里建立一个隧道连接

②在B主机上查看连接情况,此时通道已经建立好了

③在服务端查看一下23端口是否被连接,此时没有被任何人连接

④这时就可以使用telnet 连接本地的9527端口通过隧道的连接间接的访问服务端了

在服务端查看一下端口连接情况:此时是被B主机连接,实际上是A主机正在访问,下面看一下B主机状态

此时在主机B上查看一下端口连接情况,如图:此时B主机有两个角色:1、对于A主机来说它是A主机ssh的服务端   2、对于C主机telnet服务端来说它是telnet的客户端

实验2:ssh远程端口转发

远程转发:
  主要命令:   -R   sshserverport:remotehost:remotehostport   sshserver
  因在公司里都有防火墙,规则一般都是不允许从外面主动发起请求,所以现在ssh client和server端角色互换以实现
  实验过程: 让sshsrv侦听9527端口的访问,如有访问,就加密后通过ssh服务转发请求到本机ssh客户端,再由本机解密后转发到telnetsrv:23

实验图:

实验步骤:①在主机B时主动发起ssh请求到A主机建立隧道的连接,连接状态如下图:

②此时隧道连接已经建立了,回到主机A上查看一下连接情况:

③在主机A上发起telnet请求,如图,此时已经telnet到远程服务端了

④在主机C服务端和主机B上查看链接情况

主机C:服务端,此时23端口也是被主机B连接,实际上是A主机在连接

主机B:此时也是两种角色,一个是ssh的客户端,另一个是telnet的客户端

 实验3:动态端口转发

实验图:

主机A(客户端) IP:192.168.99.190

主机B(跳板机、代理机) IP:192.168.99.20

主机C(web服务端) IP:192.168.99.120

实验过程:因防火墙的原因国内的主机不能直接访问国外的一些网站,所以我们只能通过一些代理的服务器,如亚马逊云主机等(这里指主机B)间接的去访问这些网站,

实验步骤:

  ①为了模拟真实一些,这里在主机C服务端配置一条防火墙策略,禁止主机A直接访问

  ②  A主机加策略之前是可以访问的,再次访问就被拒绝了

但是主机B不受影响,可以正常服务C的网页

③在A主机开一个端口通过ssh协议连接到B主机,

在B主机查看端口连接

④ 访问服务端: 通过建立的连接,在本机访问9527端口即可以通过隧道连接通过代理主机B去访问服务端(命令行使用代理访问如下),图形界面需要在web浏览器配置里设置代理服务器的ip后再进行访问,如图

浏览器的配置:

这样我们就可以访问国外的一些网站了,是不是so easy呢!

以上实验为本人实验笔记记录,如果有错误欢迎指出

如果对你有帮助的话就给小编点个赞吧 ,非常感谢!

SSH的本地、远程、动态端口转发实验笔记的更多相关文章

  1. ssh动态端口转发

    ssh本地和远程端口转发都需要固定的应用服务器IP和端口,但是很多情况下,应用的端口繁多逐个转发效率不高,而且一些应用使用不固定的端口,经常跳着使用端口,一些网站还不支持IP直接访问,这导致ssh本地 ...

  2. 用SSH解决大局域网反向端口转发问题

    本文作者Tony Lee,转载自FreeBuf.COM ​​自从家里换了联通光纤后,联通就在我家宽带出口前搭了一个路由器,我家也彻底沦为192.168.1.0/24段的局域网了,带来的问题就是在外网无 ...

  3. ssh端口转发学习笔记

    ssh端口转发学习笔记 ssh命令参数介绍 -C 压缩数据传输 -f 将 ssh 转到后台运行,即认证之后,ssh 自动以后台运行.不在输出信息 -n 将 stdio 重定向到 /dev/null,与 ...

  4. 使用 ssh -R 建立反向/远程TCP端口转发代理

    转自:https://yq.aliyun.com/articles/8469 ssh是一个非常棒的工具, 不但能建立动态转发, 例如chrome的Switchy插件用到的就是这个技术.http://b ...

  5. 代理上网(ssh 动态端口转发)

    ssh 是一种加密通讯的网络协议,常用来在两台机器间做远程登陆.在这里,我们用SSH 来做代理上网. 假设情景 你的PC 不能自由联网 但你的PC 可以访问机器B 机器B 可以自由联网 SSH 上网原 ...

  6. 如何用nginx在本地把9000端口转发到80端口上

    起因看到一个用java写的轻博客,于是就兴致冲冲的试用一下.由于是lnmp的环境,Nginx占用了80端口,新博客只能用其他的端口,这里选择了9000端口,本地测试没问题.总不能访问了域名然后在加上端 ...

  7. 【转】实战 SSH 端口转发

    本文转自:http://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/index.html,至于有什么用,懂的懂! 实战 SSH 端口转发 通 ...

  8. SSH 端口转发

    第一部分 概述 当你在咖啡馆享受免费 WiFi 的时候,有没有想到可能有人正在窃取你的密码及隐私信息?当你发现实验室的防火墙阻止了你的网络应用端口,是不是有苦难言?来看看 SSH 的端口转发功能能给我 ...

  9. 实战 SSH 端口转发

    转自实战 SSH 端口转发 通过本文的介绍,读者可以从中了解到如何应用 SSH 端口转发机制来解决日常工作 / 生活中的一些问题.学会在非安全环境下使用端口转发来加密网络应用,保护个人隐私以及重要商业 ...

随机推荐

  1. go笔记--json包使用

    目录 Marshal Unmarshal 处理json对象 @ json包实现了json对象的编解码,参见RFC 4627.Json对象和go类型的映射关系主要通过Marshal和Unmarshal函 ...

  2. Create a Report in Visual Studio 在Visual Studio中创建报表

    In this lesson, you will learn how to create reports in the integrated reporting system. This system ...

  3. Unity容器<1>

    参考地址: https://docs.microsoft.com/en-us/previous-versions/msp-n-p/dn170416(v=pandp.10) 总览 Unity是一个轻量级 ...

  4. Zstack的安装部署

    ZStack是下一代开源的云计算IaaS(基础架构即服务)软件. 它主要面向的是未来的智能数据中心,通过提供全完善的API来管理包括计算.存储和网络在内的数据中心的各种资源.跟OpenStack相比, ...

  5. Oracle查看 open_cursors 和 session_cached_cursors

    本文转自 http://blog.itpub.net/25583515/viewspace-2152997/ 查看当前session已使用的最大open cursor数 和cached cursor数 ...

  6. nginx 修改文件上传大小限制

    修改nginx的配置文件,添加client_max_body_size 字段 注:client_max_body_size 必须要放在server下的server_name下,而不是放在locatio ...

  7. 10. 函数-lambda函数及高阶函数

    一.匿名函数解析 ​ 关键字lambda表示匿名函数,冒号前面的n表示函数参数,可以有多个参数.匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. ​ 用匿名函数有 ...

  8. Fiddler之模拟响应、修改请求或响应数据(断点)

    在测试过程中,有时候需要修改请求或响应数据,或者直接模拟服务器响应,此时可以使用fiddler进行此类操作.可以使用断点功能完成. 一.修改请求数据 在发起请求后,需要修改请求的数据时,可以设置请求前 ...

  9. atom 在Ubuntu 18.04 上安装及基本使用

    前记: Atom 是github专门为程序员推出的一个跨平台文本编辑器.具有简洁和直观的图形用户界面,并有很多有趣的特点:支持CSS,HTML,JavaScript等网页编程语言.它支持宏,自动完成分 ...

  10. JQ的offset().top与JS的getBoundingClientRect区别详解,JS获取元素距离视窗顶部可变距离

     壹 ❀ 引 我在 JQ的offset().top与js的offsetTop区别详解 这篇博客中详细分析了JQ方法offset().top与JS属性offsetTop的区别,并得出了一条offset( ...