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. mac-安装sshpass

    在配置了ssh免密认证id_rsa.pub之后,在cmd终端可以实现免密登陆对应配置了密钥的服务器,但是在python程序中,想要调用cmd执行免密操作,还需要安装sshpass,sshpass用于非 ...

  2. gradle环境搭建

    最近我在尝试了解跨平台技术的发展,首先则是想到了cordova.环境配置过程中有依赖gradle,下面简单记录了在windos10系统下搭建gradle环境的过程. 什么是gradle Gradle是 ...

  3. python 调试大法

    说在前面 我觉得没有什么错误是调试器无法解决的,如果没有,那我再说一遍,如果有,那当我没说 一.抛出异常 可以通过 raise 语句抛出异常,使程序在我们已经知道的缺陷处停下,并进入到 except ...

  4. Python用pip安装第三方库时换源下载

    pip默认是从Python官网下载第三方库,从国外下载当然不如从国内下载来得快 豆瓣:https://pypi.doubanio.com/simple 还有其它源,阿里云等等,一个就够用了 用pip安 ...

  5. 基于Git的数据库sql文件的管理——完美解决团队sql操作协同问题

    目录 基于Git的数据库sql文件的管理--完美解决团队sql操作协同问题 1.产生背景 2.之前没用Git管理数据库出现的问题 2.1 用同一个库调试带来的问题 3.解决方案 3.1 Sql文件的创 ...

  6. mysql创建用户后无法进入

    说明 在mysql中添加用户: #mysql -u root -p >use mysql: >update user set password="" where use ...

  7. facl 用户以及Linux 终端

    FACL : Filesystem Access Control List 利用文件扩展保存额外的访问控制权限setfacl -b:Remove all -m:设定 u:UID:perm g:GID: ...

  8. Python 变量与运算符

    变量 基本概念: 1. 变量,名字,数据的唯一标识2.变量命名: 字母.数字.下划线: 不能以数字开头: 区分大小写: 不能使用保留字和关键字: 命名要有意义:(多个单词时,推荐使用下划线连接) 3. ...

  9. Gluserfs 架构详解【译】官网

    Gluserfs详解 排版看着不舒服的,可以查看[我的简书](https://www.jianshu.com/p/0340e429431b) doc home:https://docs.gluster ...

  10. PHP 将某个http地址的远程图片下载到本地的某个目录

    代码: function getImage($url,$save_dir='',$filename='',$type=0){ if(trim($url)==''){ return array('fil ...