端口转发的概念和应用

什么是端口转发呢,我们知道,SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发。它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做“隧道”,这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果在平时的工作环境中有防火墙限制了一些网络端口的使用,但是允许 SSH 的连接,那么也是能够通过将 TCP 端口转发来使用 SSH 进行通讯。所以总的来说 SSH 端口转发能够提供两大功能:

  1. 加密 SSH Client 端至 SSH Server 端之间的通讯数据。

  2. 突破防火墙的限制完成一些之前无法建立的 TCP 连接。

本地端口转发

a要访问c先将telnet用ssh封装,传到b后,解封后,再以telnet方式访问c,此时的c认为是b通过telnet再链接自己,而其实是a在链接(要保证防火墙上的端口是打开着的,如果没打开,就进不来了,需要进行远程端口转发,后面解释)

实例:

a是centos5,b是centos6,c是centsos7,首先在a上制定防火墙策略,即禁止a访问,如下指令

iptables -A INPUT -s 192.168.37.105 -j REJECT

然后启动a的telnet服务

systemctl start telnet.socket

接下来在a上执行如下命令

ssh -L 9527.192.168.37.107:23 -fN 192.168.37.106

9527是a的发出端口,在执行前,最好检查下(ss -nutl)有么有程序占用着这个端口,后面的ip地址是目标也就是c的ip地址,23是c的接收端口,在后面的地址是b的地址,也就是接收ssh链接的b,fn是后台启用且不打开7的shell,而是处于等待状态,执行完后,隧道已经就建立了,可使用ss -nt查看

此时,用a链接c,就执行如下命令

telnet 127.0.0.01 9527

这时,可以在c上执行,下面的命令

ss -ntl

能够查看到6正在链接,在b上使用同样的命令,看到a在链接,也就是说测试此时隧道已经建立起来。

远程端口转发

与本地端口转发类似,但是此时防火墙上的端口是关闭的,所以此时用远程端口转发即可解决问题。此时,防火墙已经打开,端口不可访问,只准往外链接不能外,部往内部链接,因此要想建立链接需要从内部链接外部,也就是此时命令是在b中打的,执行如下命令

ssh -R 9527.192.168.37.107:25 -fN 192.168.37.105

也就是l换成R,第一个ip是最终要访问的7第二个ip是此时充当服务器的a,b此时扮演的是客户端,执行完成后,输入指令

telnet 127.0.0.1 9527

这里的地址和端口号是a自己的地址和端口号,这样一个远程端口转发就完成了

动态端口转发

当用firefox访问internet时,本机的1080端口做为代理服务器, firefox的访问请求被转发到sshserver上,由sshserver替之访问internet在本机firefox设置代理socket proxy:127.0.0.1:1080,它的命令格式如下,

ssh -D 1080 root@sshserver

动态端口转发,和本地和远程端口转发不一样,在动态端口转发中,目标主机地址和端口都不固定,具体转发到哪里,可以通过代理服务器由自己来指定。

转载于:https://blog.51cto.com/11093860/1970816

ssh服务端口转发详解相关推荐

  1. 内网服务器外网连接SSH远程端口转发实战详解

    问题 前段时间在外地没有在实验室,随身携带了一个笔记本电脑.但是笔记本性能不够,想用SSH远程连接实验室的电脑.问如何连接?现有以下设备 设备 IP 备注 系统 实验室电脑C1 192.168.0.2 ...

  2. SSH的端口转发:本地转发Local Forward和远程转发Remote Forward

    http://zhumeng8337797.blog.163.com/blog/static/100768914201172125444948/ 实战 SSH 端口转发 https://www.ibm ...

  3. Nuxt SSR 服务端渲染 详解

    Nuxt SSR 服务端渲染 详解 1.Nuxt项目构建 2.Nuxt的生命周期 2.1 nuxtServerInit 钩子 2.2 middleware 中间件 2.3 validate 数据校验 ...

  4. Apollo微服务配置中心详解

    Apollo微服务配置中心详解 前言 一.Apollo架构 (一)简介 (二)角色介绍 (三)服务端实现 (四)客服端实现 二.Apollo部署 (一)准备数据库 (二)配置服务 1. 手动部署 (1 ...

  5. 内网渗透代理转发详解及工具介绍

    介绍一下个人网站 欢迎各位大佬光顾 http://www.sec0nd.top 文章目录 前言 正向代理和反向代理 正向代理 反向代理 举例辨别两者 内网渗透中代理的作用 工具介绍 msf nps f ...

  6. “IT小百科”之“Windows自带的服务和系统进程详解”

    大家平时打开任务管理器的时候,就能看到系统进程和系统服务. 有好多是新安装的应用程序进程和服务,但是还有很多系统进程和服务,这些进程和服务有哪些?分别起什么作用?能不能关闭和删除?今天我们就以本篇文章 ...

  7. 网络安全nmap扫描端口命令详解linux网络探测

    简介: nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting).它是网络管理员必用的 ...

  8. Sonic 开源移动端云真机测试平台 - 设备中心接入安卓设备实例演示,Agent端服务部署过程详解

    Sonic 开源移动端云真机测试平台 - Agent端服务部署与安卓设备接入演示 一加8手机连接效果图展示 第一章:环境准备 ① agent-sources 资源包下载 ② Android SDK安装 ...

  9. NodeJS+Express+mySQL服务端开发详解

    NodeJS+Express+mySQL服务端开发详解 随着NodeJS的发展,现在已经被很多人熟知,NodeJS已经成为了前端开发人员必备的技能.本文不会对NodeJS过多介绍 如果你感兴趣可以访问 ...

最新文章

  1. 阿里巴巴 Java 开发手册之编程规约(一)-------我的经验
  2. Linux大作业任务书,《Linux系统管理》期末大作业任务书(计网14级).doc
  3. call super class will trigger CGLIB
  4. #HTTP协议学习# (七)cookie
  5. 马尔可夫决策过程(MDP)
  6. 【java学习之路】(java SE篇)(练习)一些关于面向对象的题目与思考
  7. PHP学习思维导图--小树好久没长大了,给它加点枝叶
  8. 物联网架构成长之路(23)-Docker练习之Elasticsearch服务搭建
  9. Jmeter进行SOAP协议接口性能测试
  10. 双盘转子动力学仿真c语言程序,[转载]基于ANSYS经典界面的双转子电机的转子动力学仿真...
  11. 计算机组成原理——补码一位乘(Booth算法)+举例+小白理解
  12. 优雅地解决Visio图片插入word中虚线变实线的问题
  13. 最小径集的算法_【ZZ】最小割集Stoer-Wagner算法
  14. 阿里全球数学竞赛落幕:全球最强73人出炉,北大获奖人数第一,还“炸出”各路世界大牛...
  15. 华为云Centos7搭建hadoop集群一:云服务器准备
  16. ubuntu搭建NAS服务器——序
  17. 三跨考生准备考研复试(机试)之路(日记版)
  18. Java+spring+springmvc ssm432咖啡馆咖啡销售预定管理系统#毕业设计
  19. video.js API
  20. BW型、CB I型、CB II型和椭圆模拟低通滤波器设计的Matlab仿真

热门文章

  1. html json解析插件,jQuery插件jsonview展示json数据
  2. java外挂源码_2.7 万 Star!Github 项目源码辅助阅读神器
  3. Unity SRP自定义渲染管线 -- 2.Custom Shaders
  4. GPU Gems1 - 5 改良的Perlin噪声的实现
  5. MKL学习——基本操作C++实现
  6. AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
  7. Beta 讨论分析——持续更新ing
  8. 流程图制作在云上 https://www.processon.com/
  9. MySQL关联left join 条件on与where不同
  10. 用STS创建Maven的Web项目转