ssh服务端口转发详解
端口转发的概念和应用
什么是端口转发呢,我们知道,SSH 会自动加密和解密所有 SSH 客户端与服务端之间的网络数据。但是,SSH 还同时提供了一个非常有用的功能,这就是端口转发。它能够将其他 TCP 端口的网络数据通过 SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程有时也被叫做“隧道”,这是因为 SSH 为其他 TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些 TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果在平时的工作环境中有防火墙限制了一些网络端口的使用,但是允许 SSH 的连接,那么也是能够通过将 TCP 端口转发来使用 SSH 进行通讯。所以总的来说 SSH 端口转发能够提供两大功能:
加密 SSH Client 端至 SSH Server 端之间的通讯数据。
突破防火墙的限制完成一些之前无法建立的 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服务端口转发详解相关推荐
- 内网服务器外网连接SSH远程端口转发实战详解
问题 前段时间在外地没有在实验室,随身携带了一个笔记本电脑.但是笔记本性能不够,想用SSH远程连接实验室的电脑.问如何连接?现有以下设备 设备 IP 备注 系统 实验室电脑C1 192.168.0.2 ...
- SSH的端口转发:本地转发Local Forward和远程转发Remote Forward
http://zhumeng8337797.blog.163.com/blog/static/100768914201172125444948/ 实战 SSH 端口转发 https://www.ibm ...
- Nuxt SSR 服务端渲染 详解
Nuxt SSR 服务端渲染 详解 1.Nuxt项目构建 2.Nuxt的生命周期 2.1 nuxtServerInit 钩子 2.2 middleware 中间件 2.3 validate 数据校验 ...
- Apollo微服务配置中心详解
Apollo微服务配置中心详解 前言 一.Apollo架构 (一)简介 (二)角色介绍 (三)服务端实现 (四)客服端实现 二.Apollo部署 (一)准备数据库 (二)配置服务 1. 手动部署 (1 ...
- 内网渗透代理转发详解及工具介绍
介绍一下个人网站 欢迎各位大佬光顾 http://www.sec0nd.top 文章目录 前言 正向代理和反向代理 正向代理 反向代理 举例辨别两者 内网渗透中代理的作用 工具介绍 msf nps f ...
- “IT小百科”之“Windows自带的服务和系统进程详解”
大家平时打开任务管理器的时候,就能看到系统进程和系统服务. 有好多是新安装的应用程序进程和服务,但是还有很多系统进程和服务,这些进程和服务有哪些?分别起什么作用?能不能关闭和删除?今天我们就以本篇文章 ...
- 网络安全nmap扫描端口命令详解linux网络探测
简介: nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端.确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting).它是网络管理员必用的 ...
- Sonic 开源移动端云真机测试平台 - 设备中心接入安卓设备实例演示,Agent端服务部署过程详解
Sonic 开源移动端云真机测试平台 - Agent端服务部署与安卓设备接入演示 一加8手机连接效果图展示 第一章:环境准备 ① agent-sources 资源包下载 ② Android SDK安装 ...
- NodeJS+Express+mySQL服务端开发详解
NodeJS+Express+mySQL服务端开发详解 随着NodeJS的发展,现在已经被很多人熟知,NodeJS已经成为了前端开发人员必备的技能.本文不会对NodeJS过多介绍 如果你感兴趣可以访问 ...
最新文章
- 阿里巴巴 Java 开发手册之编程规约(一)-------我的经验
- Linux大作业任务书,《Linux系统管理》期末大作业任务书(计网14级).doc
- call super class will trigger CGLIB
- #HTTP协议学习# (七)cookie
- 马尔可夫决策过程(MDP)
- 【java学习之路】(java SE篇)(练习)一些关于面向对象的题目与思考
- PHP学习思维导图--小树好久没长大了,给它加点枝叶
- 物联网架构成长之路(23)-Docker练习之Elasticsearch服务搭建
- Jmeter进行SOAP协议接口性能测试
- 双盘转子动力学仿真c语言程序,[转载]基于ANSYS经典界面的双转子电机的转子动力学仿真...
- 计算机组成原理——补码一位乘(Booth算法)+举例+小白理解
- 优雅地解决Visio图片插入word中虚线变实线的问题
- 最小径集的算法_【ZZ】最小割集Stoer-Wagner算法
- 阿里全球数学竞赛落幕:全球最强73人出炉,北大获奖人数第一,还“炸出”各路世界大牛...
- 华为云Centos7搭建hadoop集群一:云服务器准备
- ubuntu搭建NAS服务器——序
- 三跨考生准备考研复试(机试)之路(日记版)
- Java+spring+springmvc ssm432咖啡馆咖啡销售预定管理系统#毕业设计
- video.js API
- BW型、CB I型、CB II型和椭圆模拟低通滤波器设计的Matlab仿真
热门文章
- html json解析插件,jQuery插件jsonview展示json数据
- java外挂源码_2.7 万 Star!Github 项目源码辅助阅读神器
- Unity SRP自定义渲染管线 -- 2.Custom Shaders
- GPU Gems1 - 5 改良的Perlin噪声的实现
- MKL学习——基本操作C++实现
- AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
- Beta 讨论分析——持续更新ing
- 流程图制作在云上 https://www.processon.com/
- MySQL关联left join 条件on与where不同
- 用STS创建Maven的Web项目转