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. WPF数据可视化-瀑布图

    实现方式一: 将数据(Point[])根据索引沿X轴使用虚拟画布进行绘制,每个数据绘制大小为1px * 1px:最终绘制出的宽度等于数据的总长度.标记并存储当前绘制的图为PreviousBitmap; ...

  2. 对Python中一些“坑”的总结及技巧

    一.赋值即定义 1.运行以下代码会出现报错 #!/usr/bin/env python #_*_conding:utf-8_*_ x = 100 def outer(): def inner(): x ...

  3. Flask 路由,配置,蓝图

    路由 # -*- coding: utf-8 -*-   from flask import Flask, url_for                app = Flask(__name__)   ...

  4. 推荐一款好看的Hexo主题Ayer

    介绍 Ayer 是一个干净且优雅的Hexo主题,自带响应式,加载速度很快,该有的功能都有,可配置项也很多,非常适合作为你的博客主题,主题内还附送了6张精美的高清壁纸.欢迎使用和Star支持,如果你在使 ...

  5. FlowPortal 6.00c 使用xFormDesigner复制粘贴中文总是乱码

    环境: Windows Server 2016中文版 FlowPortal 6.00C 问题: 使用xFormDesigner 在源码选项卡复制粘贴中文总是乱码. 解决办法: 控制面板---区域--- ...

  6. IntelliJ IDEA 2019.2.2同个项目运行多次的方法

    IntelliJ IDEA默认运行项目后,再点击运行就是重启,但有时候,需要配置项目的不同端口号,同时运行. 步骤如下: 1.点击IDEA右上角项目的隐藏下拉框,出现下拉列表,点击Edit Confi ...

  7. SQL Server解惑——为什么你的查询结果超出了查询时间范围

    废话少说,直接上SQL代码(有兴趣的测试验证一下),下面这个查询语句为什么将2008-11-27的记录查询出来了呢?这个是同事遇到的一个问题,个人设计了一个例子. USE AdventureWorks ...

  8. 关于字符串的格式化----format与%

    格式化字符串一般有两种方法 1.%(d整数,s字符,f浮点数) 2.format 用处极为广泛且限制不多 注意:第一种对于数组的传递会报TypeError,所以必须传递数组 a = (1, 2, 3) ...

  9. Cocos2d-x的坐标系统

    推荐转至此处阅读<Cocos2d-x的坐标系统> Cocos2d-x的坐标系统 一.坐标系 二.Cocos2d-x的坐标系统 1.类别 2.定义 三.屏幕坐标系 & OpenGL坐 ...

  10. Unity3D 使用Socket处理数据并将数据 在UGUI、NGUI上显示出来

    Unity3d 不支持C#的线程直接调用Unity3D 主线程才能实现的功能.例如:给UGUI text 赋值.改变Color值等.怎样解决这个问题呢?使用一个Loom脚本. 按照惯例贴上代码. 首先 ...