学习资料|SSH隧道端口转发功能详解

news2024/9/25 13:18:31

概念

ssh隧道大致可以分为3种,分别为本地端口转发,远程端口转发,动态端口转发,本文将让你彻底搞懂这3个转发的命令表达形式,让你能够灵活运用解决生活中的各种特殊场景。

如果你正在使用mobaxterm、xshell、secureCRT、putty这类工具,可直接可视化界面简单配置即可使用,若你没有使用工具,通过本教程可直接通过命令进行隧道转发。

应用场景

针对部分企业或者个人为了安全只允许ssh登录堡垒机或者防火墙允许的机器访问内部的一些服务。主要作用在于加密 SSH Client 端至 SSH Server 端之间的通讯数据,突破防火墙的限制完成一些之前无法建立的 TCP 连接。

例如:一个互联网用户需要访问公司内网服务器,该服务器不对外提供服务,只是对于管理需要,在防火墙上开了ssh映射端口用于管理内网服务器。对于内网服务器上其它服务的访问无法直接访问的。现有一些需求:

1、需要访问内网服务器的一个web服务;

2、通过内网服务器再访问内网的其他web服务;

3、需要挂内网端口代理进行使用,比如聊天工具使用的SOCK5代理流量交给内网的某个代理进行处理(自行脑补)。

4、本地的一个临时web服务需要通过vps临时让对外访问。

5、突破防火墙,达到内网穿透的效果。

三个ssh安全隧道端口转发详解

1、本地端口转发

连接从客户端主机转发到SSH服务器主机,然后转发到目标主机端口。

语法:

ssh -g -N -L -f [本地端口]:[远程IP]:[远程端口] [ssh帐号]@[ssh服务IP] -p [ssh服务端口]

举个栗子:

ssh -g -N -L -f 9999:192.168.100.100:80 root@www.test.com -p 22

输入命令之后才会让你输入ssh的连接密码,上面的命令意思是,访问本机电脑的 http://本地IP:9999 可以直接访问到远程机器的 http://192.168.100.100:80所在的web服务。

参数说明:

-g:开启网关,表示访问本地的所有IP地址都可以;
-N:表示创建隧道以后不连接到 ssh服务端,连接之后界面会直接卡住,若你要建立之后并连接ssh服务端操作,可以直接取消本参数;
-L:表示local,本地端口转发;
-f:表示在后台运行,注意在后台运行只能通过杀进程的方式结束
9999:192.168.100.100:80:这个表示[本地端口8888]:[远程IP192.168.100.100]:[80];
root@www.test.com -p 22:使用root用户连接 www.test.com 的ssh服务,ssh端口是22,若你不是22端口则需要修改;

上面命令实现了和 mobaxterm 一样的功能如下:

2、远程端口转发

将端口从服务器主机转发到客户端主机,然后转发到目标主机端口。

语法:

ssh -g -N -R -f [远程端口]:[目标机器IP]:[目标机器端口] [ssh帐号]@[ssh服务IP] -p [ssh服务端口]

举个栗子:

ssh -g -N -R -f 9999:localhost:80 root@www.test.com -p 22

输入命令之后才会让你输入ssh的连接密码,上面的命令意思是,访问ssh所在机器的9999端口,相当于访问了目标机器的 localhost:80 所在的web服务。这里需要注意,默认ssh只会绑定端口在127.0.0.1换回地址上面,若需要绑定到所有 IP,需要在远程机器 sshd 配置文件中打开GatewayPorts:on

参数说明:

-g:开启网关,表示访问本地的所有IP地址都可以;
-N:表示创建隧道以后不连接到 ssh服务端,连接之后界面会直接卡住,若你要建立之后并连接ssh服务端操作,可以直接取消本参数;
-R:表示remote,远程端口转发;
-f:表示在后台运行,注意在后台运行只能通过杀进程的方式结束
9999:localhost:80:这个表示[远程端口9999]:[目标IPlocalhost]:[80];
root@www.test.com -p 22:使用root用户连接 www.test.com的ssh服务,ssh端口是22,若你不是22端口则需要修改;

上面命令实现了和 mobaxterm 一样的功能如下:

3、动态端口转发(SOCKS代理)

创建SOCKS代理服务器,该服务器允许跨多个端口进行通信。

无论是本地端口转发还是远程端口转发,都是将某固定主机及其端口映射到本地或远程转发端口上,也就是说,本地或远程转发端口和目标端口所代表的应用层协议是一对一的关系,若需要讲一个聊天软件所有流量代理都交由ssh远程服务器进行中转的话,一个一个的映射软件所需要的端口就比较麻烦,那么我们就可以使用第三种方式动态端口转发,由ssh自动判断不同协议的请求作不同的处理。

语法:

ssh -g -N -D -f [本地监听端口] [ssh帐号]@[ssh服务IP] -p [ssh服务端口]

举个栗子:

ssh -g -N -D -f 9999 root@www.test.com -p 22

输入命令之后才会让你输入ssh的连接密码,上面的命令意思是,在本地开启一个socks端口9999进行监听,只要代理这个端口的流量都会被转发到ssh远程服务器上进行通过。

在使用代理的时候需要客户端手动设置,比如QQ、微信、tg都有相应的位置设置代理,请大家自行探索更多好玩的。

上面命令实现了和 mobaxterm 一样的功能如下:

总结

创建隧道时的常用参数及含义如下:

“-L选项”:表示使用本地端口转发创建ssh隧道

“-R选项”:表示使用远程端口转发创建ssh隧道

“-D选项”:表示使用动态端口转发创建ssh隧道

“-N选项”:表示创建隧道以后不连接到 sshServer 端,通常与”-f”选项连用

“-f选项”: 表示在后台运行ssh隧道,通常与”-N”选项连用

“-g选项”:表示ssh隧道对应的转发端口将监听在主机的所有 IP 中,不使用“-g选项”时,转发端口默认只监听在主机的本地回环地址中,“-g选项”表示开启网关模式,远程端口转发中,无法开启网关功能,只能通过修改远程机器的 sshd 配置文件中的 GatewayPorts:on 参数实现绑定所有IP。

1、创建本地端口转发命令参考:

复制

ssh -g -N -L -f [本地端口]:[远程IP]:[远程端口] [ssh帐号]@[ssh服务IP] -p [ssh服务端口]

2、创建远程端口转发命令参考:

复制

ssh -g -N -R -f [远程端口]:[目标机器IP]:[目标机器端口] [ssh帐号]@[ssh服务IP] -p [ssh服务端口]

3、创建动态端口转发命令参考:

ssh -g -N -D -f [本地监听端口] [ssh帐号]@[ssh服务IP] -p [ssh服务端口]

参考文章

SSH隧道端口转发功能详解
SSH隧道:端口转发功能详解
SSH 隧道简明教程
ssh隧道及转发技术应用场景三例
如何配置SSH端口转发
ssh端口转发:ssh隧道

本文仅限于学习使用,切勿其他用途,文中的部分参阅网上资料都写与参考文献中。如有侵权删。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/367373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎样深度学习?主题碾压式学习法

怎样最深度的学习?【主题碾压式!】 对一个学习主题,大体量投入学习资源 进行对比和实践 会取得突破 限定在社会科学和社会应用范围 趣讲大白话:大力出奇迹 【趣讲信息科技:84期,下期预告:很少有…

C++条件变量唤醒问题 notify_one() 唤醒不及时问题

条件变量唤醒问题 & notify_one() 唤醒不及时问题 因为我对于 C中条件变量的等待唤醒部分、notify_all & notify_one 的区别方面有些疑点,因此就有了以下的同 chatgpt 的沟通,希望同样能够帮助到大家 感叹于 chatgpt的强大 问题? 我比…

(三十二)大白话MySQL一起来看看INSRET语句的undo log回滚日志长什么样?

昨天我们讲解了undo log回滚日志的作用,说白了,就是你执行事务的时候,里面很多INSERT、UPDATE和DELETE语句都在更新缓存页里的数据,但是万一事务回滚,你必须有每条SQL语句对应的undo log回滚日志,根据回滚日…

Docker 名词介绍

Docker核心名词镜像文件镜像:简单理解为就是一个安装包,里面包含容器所需要运行的的基础文件和配置信息,比如:redis镜像、mysql镜像等。镜像的来源方式:1. 自己做镜像 比如(自己开发微服务项目)2. 拉取别人…

python学习笔记——数据类型总结

1.基本数据类型  数据类型对应的内置函数:将其他类型,转换成自己的类型。 int()float()bool()str()list()tuple()set()dict() 2.数据类型对比  3.列表 w [a,b,c] #查 print(w[0]) print(w[0:3:2]) #增 w.appe…

css 属性和属性值的定义

文章目录css文本属性作业列表属性背景属性作业css文本属性 序号属性描述说明1font-size字体大小浏览器默认16px;2font-family字体当字体是中文字体,英文字体,中间有空格时候,要加双引号,多字体之间用逗号隔开 默认微软…

绿通科技在创业板开启申购:超额募资约19亿元,收入依赖贴牌

2月23日,广东绿通新能源电动车科技股份有限公司(下称“绿通科技”,SZ:301322)开启申购。据贝多财经了解,绿通科技本次上市的发行价为131.11元/股,发行数量为1749万股,市盈率73.75倍。 按发行价…

为什么数字孪生技术对工业物联网基础设施至关重要

随着工业物联网基础设施的不断建设和发展,数字孪生技术的重要性也变得越来越明显。由于数字孪生模型是工厂或其资产的虚拟版本,其高度精确和详细的特点使决策者获得了更高的可见性。下面让我们了解一下数字孪生技术给工业物联网基础设施带来的有效帮助。…

【Axure教程】自动生成页码的中继器表格

当表格数据较多时,我们经常会分页显示,这时我们就需要用到页码的元件了。所以作者今天就教大家如何在Axure中制作一个能自动根据中继器表格的数据以及分页情况,自动生成对应页码的原型模板。一、效果展示1、页码能根据表格数据和每页显示条数…

Apache Commons FileUpload Apache Tomcat拒绝服务漏洞解决方案

近日,安全狗应急响应中心关注到Apache官方发布安全公告,披露在Apache Commons FileUpload<1.5版本中存在一处拒绝服务漏洞(CVE-2023-24998)。Commons FileUpload是Apache组织提供的免费的上传组件。由于Apache Commons…

pyaudio声卡信息中hostApi是什么意思?

hostApi是声卡驱动协议,声卡驱动模式,有如下很多类。下面的类型是网上找的PortAudio的类,不不确定是不是python的。typedef enum PaHostApiTypeId{paInDevelopment0, /* use while developing support for a new host API */paDirectSound1,p…

EMC诊断技术

第一课 探讨EMC诊断技术-滤波篇EMC法规:CISPR16-1、GB/T 6113.1 GB/T 7343dBuV3dB是1.41倍6dB是2倍20dB是10倍差模噪声在电源/信号到地上走,差模噪声是电源/地/信号/到EGNDEMI滤波器的性能指标:滤波器插入损坏(共模插损、差模插损)

儿童全脑九大能力,3-6岁的家长都应该知道

什么是全脑? 人的大脑分左右两个半球,形态虽然相似,功能却各有不同。其中,左脑负责文字、数学、计算、分析、逻辑、顺序、事实和记忆,掌管右侧肢体的感觉和运动;右脑则负责颜色、音乐、想象、韵律、感觉、…

【原创】java+swing+mysql物业管理系统设计与实现

之前的文章里也讲过物业管理系统的开发,不过使用的是javaweb技术,bs架构,网页的形式。今天我们主要介绍使用javaswing技术同样去开发一套物业管理系统。以方便管理员进行物业信息的管理。 功能分析: 物业管理系统主要是为了方便…

买卖股票的最佳时机II-力扣122-java贪心策略

一、题目描述给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大 利润 。…

SAP PI PO JDBC接口培训视频

SAP PI PO JDBC接口培训视频XML Document Format for the Message Protocol XML SQL Format You can modify one or more database tables by means of a message. Depending on the content of the message, you can either insert (INSERT), update (UPDATE), or delete (DEL…

Java ”框架 = 注解 + 反射 + 设计模式“ 之 反射详解

Java ”框架 注解 反射 设计模式“ 之 反射详解 每博一文案 无论幸福还是苦难,无论光荣还是屈辱,你都要自己遭遇与承受。—————— 《平凡的世界》 孙少平多少美好的东西消失和毁灭了,世界还像什么事也没有发生,是的&#…

Head First设计模式---5.单例模式

2.2单例模式 单例模式运用的可能比其他几种简单,通俗点理解就是,我这个对象只能存在一个。 问题 保证一个类只有一个实例。 为什么会有人想要控制一个类所拥有的实例数量? 最常见的原因是控制某些共享资源 (例如数据库或文件&am…

STL库实践

STL库实践1 写在最前面的话1.1 容器(container)1.2 算法(algorithm)1.3 迭代器(iterator)1.4 仿函数1.5 适配器1.6 空间配置器1.7 stl初试牛刀2 容器之 string2.1 string 构造函数2.2 string基本赋值操作2.3 string存取字符操作2.4 string拼接操作2.5 string查找和替换2.6 stri…

Windows安装 MySQL5.7(超详细)

Windows安装 MySQL5.7安装包下载安装步骤解压添加环境变量初始化MySQL初始登录MySQL并修改root密码注意,截至2023年2月23日,MySQL所有版本不提供ARM芯片架构的Windows版本(8.0.12开始支持Red Hat系统的ARM版本),所以ARM架构的Windows无法安装…