当前位置: 首页 > news >正文

SSH隧道技术

SSH隧道

简介

SSH隧道是一种通过SSH协议在两个网络节点之间建立安全通信的技术。它可以用于多种用途,包括加密和保护敏感数据传输、绕过防火墙限制、远程访问内部服务等。

应用:

  1. 端口转发:SSH隧道可以将本地端口转发到远程主机上,从而实现本地服务的安全远程访问。例如,你可以将本地的MySQL数据库端口转发到远程服务器上,以便在本地使用MySQL客户端连接和管理远程数据库。
  2. 动态端口转发:SSH隧道还支持动态端口转发,也称为SSH SOCKS代理。通过配置本地浏览器或其他应用程序使用SSH SOCKS代理,你可以将网络流量通过SSH隧道转发到远程主机,从而实现绕过防火墙限制、访问受限网站等功能。
  3. 文件传输:SSH隧道可以用于安全地传输文件。你可以使用SCP或SFTP等SSH协议支持的文件传输工具,通过SSH隧道将文件从本地传输到远程主机,或者从远程主机传输到本地。

原理:

SSH隧道的原理基于SSH协议的加密和身份验证机制。当你建立一个SSH连接时,客户端和服务器之间会进行身份验证,并协商加密算法和密钥。一旦身份验证和密钥协商完成,SSH连接就建立起来了。

SSH隧道的建立是在SSH连接上创建一个加密的通道,用于在两个网络节点之间传输数据。它通过在SSH连接上进行端口转发或动态端口转发来实现。

在端口转发中,客户端将本地端口与远程主机和端口关联起来。当本地应用程序连接到本地端口时,数据会被加密并通过SSH连接发送到远程主机,然后转发到远程端口。类似地,远程主机的响应数据会通过SSH连接返回到本地应用程序。

在动态端口转发中,客户端将本地端口配置为一个SOCKS代理。当本地应用程序使用该代理发送网络请求时,请求会通过SSH连接转发到远程主机,然后由远程主机发送到目标服务器。远程主机将响应数据返回到本地应用程序,从而实现了绕过防火墙限制和访问受限网站的功能。

相关参数

-N:指定这个SSH连接只进行端口消息转发,不执行任何SSH远程命令;
-L:指定本地监听的地址和端口;
-f: 这个SSH会话放入后台运行,不加这个参数的话,当退出当前SSH -L指定的终端时,端口转发进程就结束了,端口转发送也就结束了。所以务必要加上-f参数。
-g: 启用网关功能
-R: 远程端口
-D: 动态转发
-C: 压缩传输,提高效率
-p: 指定ssh端口,当为默认端口22时,可以不添加此参数

应用场景

socks5代理 (SSH动态端口转发)

在这里插入图片描述

假设有如上场景,内网主机和web服务器互通,但是不通外网,而web服务器即可以访问内网主机也可以访问互联网,此时,我们可以通过web服务器的ssh服务,来搭建一个ssh socks5代理,这样内网主机就可以和互联网互通进行文件和数据传输,此时,web服务器就变成了内网主机的代理服务器。

具体操作

内网主机中执行下面命令

ssh -qTfnN -D 7070 root@x.x.x.x

此时,此时该主机的7070端口的流量就会转发到web服务,进而传输给互联网

在kali中使用上面命令,输入密码之后会无回显,然后编辑/etc/proxychains4.conf为如下内容

在这里插入图片描述

然后执行proxychains4 curl www.baidu.com即可看出成功出网

在这里插入图片描述

ssh本地转发

在这里插入图片描述

假设有如下场景:

  • 本地主机可以访问互联网,也可以访问web服务器,但是无法访问内网主机
  • web服务器可以访问互联网也可以访问内网主机
  • 内网主机只能访问web服务器,但是不能访问互联网

此时web服务器可以使用ssh转发将本地主机的流量转发给内网主机,本地主机只需要访问web服务器的某个端口就能访问到内网主机的某个端口上,具体端口根据操作的命令来定

在本地主机上执行下面命令

ssh -L 6666:10.10.10.2:80 root@1.1.1.1 -fN 

此时本机当本地主机访问本地的6666端口时,就相当于访问内网主机10.10.10.2的80端口,此外,我在博客园“骏马金龙”的一篇文章中看到一个有意思的思路,在上面的这个命令中,其实只能让本地主机192.168.162.131访问自身的6666端口,不可以让同一网段的主机访问192.168.162.131:6666 进而来实现访问10.10.10.2:80端口,只要再加一个-g 参数就可以了,具体命令如下:

ssh -L -g 192.168.162.131:6666:10.10.10.2:80 root@1.1.1.1 -fN   #同192.168.162.1/24网段的主机可以通过访问192.168.162.131:6666来实现对10.10.10.2:80的访问

将本地端口转发到远程主机

在这里插入图片描述

假设有如上场景,1.1.1.1的服务器上部署了mysql服务,但是该服务器只能运行本地连接,此时可以通过ssh端口转发,将本地端口转发给远程服务器的端口,当我们访问本地端口3307就相当于访问了服务器的mysql服务

具体操作
ssh -L 3307:localhost:3306 root@1.1.1.1 -fN  #将本地的3307端口转发给远程1.1.1.1的3306

这个命令的作用是在本地主机上建立一个SSH本地端口转发,将本地主机的3307端口转发到远程主机的3306端口。通过这个SSH本地端口转发,可以在本地主机上通过访问3307端口来访问远程主机的MySQL数据库服务。

将远程主机端口转发到本地

在这里插入图片描述

假设有如上场景,我们在内网主机上面部署一个服务,我们的本地主机是无法访问的,不过有一台公网服务器可以使用,我们可以借助这台服务器当作中间人,但是公网服务器有没办法直接访问内网主机,只能有内网主机主动访问公网服务器,所以此时就需要ssh远程转发来实现我们的目标。

内网主机执行命令:

ssh -N -R 9999:127.0.0.1:8080 root@1.1.1.1   #将远程主机9999端口转发到本地8081

执行上面的命令之后,本地主机访问公网服务器的9999端口,公网服务器会将访问流量转发到内网主机的8080端口,这样就实现了由内网到内网的访问了。

相关文章:

SSH隧道技术

SSH隧道 简介 SSH隧道是一种通过SSH协议在两个网络节点之间建立安全通信的技术。它可以用于多种用途,包括加密和保护敏感数据传输、绕过防火墙限制、远程访问内部服务等。 应用: 端口转发:SSH隧道可以将本地端口转发到远程主机上&#xf…...

支付功能的实现

1.商户调用第三方支付服务的主要步骤流程? 1.1 表单跳转 前端点击提交支付,请求后端支付接口 支付接口通过阿里api生成表单信息返回给前端页面 同步回调,异步回调参数 请求参数:总金额,外部订单号 公共参数&#xff1…...

SpringMVC JSON数据处理见解6

6.JSON数据处理 6.1.添加json依赖 springmvc 默认使用jackson作为json类库,不需要修改applicationContext-servlet.xml任何配置&#xff0c;只需引入以下类库springmvc就可以处理json数据&#xff1a; <!--spring-json依赖--> <dependency><groupId>com.f…...

python 读写kafka

1. 安装pykafka pip install pykafka2. 生产者 from pykafka import KafkaClientdef get_kafka_producer(hosts, topics):client KafkaClient(hostshosts)print(client.topics)topic client.topics[topics]producer topic.get_producer()return producer 测试 hosts 19…...

VBA: 如何用VBA遍历文件夹(含子文件夹)里的所有文件

目录 0 原始文件 1 step1:遍历文件夹&#xff08;不包含子文件&#xff09;内的文件数 2 step2: 遍历文件夹内的所有子文件夹的名字 3 step3 遍历文件夹的&#xff08;含子文件&#xff09;内的所有文件 4 step4 遍历文件夹的&#xff08;含子文件&#xff09;内的所有文…...

又快又好! 基于Consistency Model的一步采样歌声转换模型CoMoSVC已开源

在2023年&#xff0c;AI虚拟歌手如AI孙燕姿等已经引起了广泛的关注&#xff0c;而大多数应用都是基于开源框架SoVITS。最近&#xff0c;香港科技大学和微软亚洲研究院推出了一种基于Consistency Model的歌声转换系统CoMoSVC&#xff0c;它在歌声转换速度上与基于Flow的SoVITS系…...

服务器——配置免密登录

一、生成本机的密钥文件 打开本机的终端&#xff0c;输入 ssh-keygen&#xff0c;默认一路点enter。 将生成的 id_rsa.pub 公钥文件&#xff0c;复制一份改一个名称&#xff0c;比如改名成 id_rsa_test.pub。 二、将生成的公钥文件发送到服务器对应账户的.ssh文件夹下 将改…...

GoZero微服务个人探索之路(三)Go-Zero官方rpc demo示例探究

官方网址&#xff1a;https://go-zero.dev/docs/tasks/cli/grpc-demo 项目结构 demo包 两个文件均为protoc-gen-go-grpc自动生成构成一个完整的 gRPC 服务的定义和实现 democlient包 demo.go goctl生成的客户端代码 Request 和 Response 别名&#xff1a; 定义了 Request 和…...

1月下半笔记(个人向)

最近才开始看d2l&#xff08;这种东西早该在两年前看的&#xff0c;拖到现在了&#xff09; 为了做项目还得学一手OpenGL&#xff08;被windows安装GLFW逼疯了&#xff09; 1.15 打完ICPC EC final回来&#xff0c;也许可以出一篇博客写下简单的题解。 对蛋白质相似空间子结…...

ChatGpt使用技巧

通用类技巧 角色扮演 比如让ChatGpt扮演500强营销专家 告诉ChatGpt你的身份。初学者、或是有一定能力、知识的学习者等 限制ChatGpt回答长度 100~200字之间 让ChatGpt一步一步思考 他会预测下一个单词&#xff0c;根据prompt进行生成 明确你的要求和目的 说清楚问题&#x…...

自动安装解压版mysql8的脚本

由于mysql 8的 MSI 安装包&#xff0c;自动把程序安装到了C盘&#xff0c;且没看到有可以更改安装位置的配置可以修改。 故自行写了一个脚本&#xff0c;用来安装mysql 8的压缩包。可以将 mysql 8 以及其 Data目录 安装到C盘以外的位置。第一次写 bat 脚本&#xff0c;希望各位…...

第二讲_HarmonyOS应用创建和运行

HarmonyOS应用创建和运行 1. 创建一个HarmonyOS应用2. 运行新项目2.1 创建本地模拟器2.2 启动本地模拟器2.3 在本地模拟器运行项目 1. 创建一个HarmonyOS应用 打开DevEco Studio&#xff0c;在欢迎页单击Create Project&#xff0c;创建一个新工程。 选择创建Application应用。…...

Android车载系统Car模块架构链路分析

一、模块主要成员 CarServiceHelperService SystemServer 中专门为 AAOS 设立的系统服务&#xff0c;用来管理车机的核心服务 CarService。该系统服务的具体实现在 CarServiceHelperServiceUpdatableImpl CarService Car模块核心服务APP&#xff0c;Android 13版本开始分为…...

C语言经典算法之顺序查找算法

目录 前言 A.建议 B.简介 一 代码实现 二 算法时空复杂度 A.时间复杂度&#xff1a; B.空间复杂度&#xff1a; 三 优点和缺点 A.优点&#xff1a; B.缺点&#xff1a; 四 现实中的应用 前言 A.建议 1.学习算法最重要的是理解算法的每一步&#xff0c;而不是记住算…...

c语言嵌套循环

c语言嵌套循环 c语言嵌套循环 c语言嵌套循环一、c语言嵌套循环格式二、嵌套循环案例九九惩罚口诀 一、c语言嵌套循环格式 for(初始值&#xff1b;表达式&#xff1b;表达式) {for&#xff08;初始值&#xff1b;表达式&#xff1b;表达式&#xff09;{代码} }int main() {for (…...

磁盘位置不可用怎么修复?

磁盘位置不可用是计算机使用中经常遇到的问题。造成磁盘位置不可用的原因有多种&#xff0c;其中最常见的是磁盘文件系统损坏。当文件系统损坏时&#xff0c;操作系统无法正常访问磁盘上的数据&#xff0c;导致磁盘位置不可用。 磁盘位置不可用怎么修复&#xff1f; 当磁盘位置…...

【总结】Linux命令中文帮助手册

1. 为什么要总结Linux命令中文帮助手册 Linux 官方并不提供中文的 help、man 帮助手册。网络上已有的前人翻译过的中文手册版本比较老&#xff0c;且翻译存在误差。从记忆角度来看&#xff0c;Linux 很多命令都不一定记得住详细的用法&#xff0c;易遗忘&#xff0c;缺少经验总…...

[贪心算法] 国王游戏

题目描述 ​ 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数&#xff0c;国王自己也在左、右手上各写一个整数。然后&#xff0c;让这 n 位大臣排成一排&#xff0c;国王站在队伍的最前面。排好队后&#xff0c;所有的大…...

meter报OOM错误,如何解决?

根据在之前的压测过程碰到的问题&#xff0c;今天稍微总结总结&#xff0c;以后方便自己查找。 一、单台Mac进行压测时候&#xff0c;压测客户端Jmeter启动超过2000个线程&#xff0c;Jmeter报OOM错误&#xff0c;如何解决&#xff1f; 解答&#xff1a;单台Mac配置内存为8G&…...

第二百六十九回

文章目录 概念介绍设置方法示例代码内容总结 我们在上一章回中介绍了Card Widget相关的内容&#xff0c;本章回中将介绍国际化设置.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们在这里说的国际化设置是指在App设置相关操作&#xff0c;这样可以让不同国家的…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

规则与人性的天平——由高考迟到事件引发的思考

当那位身着校服的考生在考场关闭1分钟后狂奔而至&#xff0c;他涨红的脸上写满绝望。铁门内秒针划过的弧度&#xff0c;成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定"&#xff0c;构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

从零开始了解数据采集(二十八)——制造业数字孪生

近年来&#xff0c;我国的工业领域正经历一场前所未有的数字化变革&#xff0c;从“双碳目标”到工业互联网平台的推广&#xff0c;国家政策和市场需求共同推动了制造业的升级。在这场变革中&#xff0c;数字孪生技术成为备受关注的关键工具&#xff0c;它不仅让企业“看见”设…...