SSH隧道(客户端的数据加密并通过 SSH 服务器转发到目标服务器)

SSH隧道简介

SSH 隧道(SSH Tunneling)是通过 SSH(Secure Shell)协议创建的安全通道,用于将流量从一个网络传输到另一个网络

SSH 隧道可以用来保护网络数据的传输,通常用于穿越防火墙、隐藏流量、访问受限的网络资源等。

工作原理

SSH 隧道通过 SSH 连接将客户端的数据加密并通过 SSH 服务器转发到目标服务器,或者将目标服务器的数据通过 SSH 服务器加密传输到客户端。

三种类型

本地端口转发(Local Port Forwarding): 客户端将本地端口上的流量转发到远程服务器上的指定端口。

远程端口转发(Remote Port Forwarding): 客户端请求 SSH 服务器将某个远程端口上的流量转发到本地计算机上的指定端口。

动态端口转发(Dynamic Port Forwarding): 使用 SOCKS 代理,客户端可以动态地将任意目的地的流量转发到远程服务器

SOCKS代理:(SOCKS 代理充当客户端与目标服务器之间的中介。客户端将请求发送到 SOCKS 代理服务器,代理服务器再将请求转发给目标服务器,并将目标服务器的响应返回给客户端。这样,目标服务器只会看到来自 SOCKS 代理的请求,而看不到原始客户端的请求)

示例

注意:如果仅进行端口转发,想通过 SSH 隧道访问公司内部的 HTTP 服务,只需要端口转发,不需要在服务器上执行任何命令,三种转发需要在末尾添加-N。

ssh -L 4000:192.168.1.10:80 user@example.com -N
1. 本地端口转发

场景:通过本地端口 8080 访问远程数据库服务器(假设远程数据库服务器只能通过 db.example.com 上的端口 3306 访问)。

ssh -L 8080:db.example.com:3306 user@ssh-server.com

解释

  • -L 表示本地端口转发。
  • 8080 是本地计算机上的端口。
  • db.example.com:3306 是远程数据库服务器及其端口。
  • user@ssh-server.com 是 SSH 服务器及其用户名。
2. 远程端口转发

场景:让远程 SSH 服务器上的端口 9090 访问本地开发服务器(假设本地服务器运行在端口 3000 上)。

ssh -R 9090:localhost:3000 user@ssh-server.com
3. 动态端口转发

场景:使用 SOCKS 代理通过 SSH 隧道进行安全浏览。

ssh -D 8080 user@ssh-server.com

 

实例图

本地端口转发示意图

+---------------------+            +------------------+          +---------------------+
|     Local Client    |            |    SSH Server    |          |    Remote Server    |
|---------------------|            |------------------|          |---------------------|
|  localhost:8080     |<--SSH----->|                  |<-------->|  db.example.com:3306 |
+---------------------+            +------------------+          +---------------------+

远程端口转发示意图

+---------------------+            +------------------+          +---------------------+
|     Local Server    |            |    SSH Server    |          |     Remote Client   |
|---------------------|            |------------------|          |---------------------|
|  localhost:3000     |<--SSH----->|                  |<-------->|   ssh-server.com:9090|
+---------------------+            +------------------+          +---------------------+

动态端口转发示意图 

Client (localhost:8080) --[SOCKS Proxy]--> SSH Server --> Internet
+---------------------+            +------------------+          +---------------------+
|     Local Client    |            |    SSH Server    |          |        Internet      |
|---------------------|            |------------------|          |---------------------|
| SOCKS Proxy :8080   |<--SSH----->|                  |<-------->|      Various Sites   |
+---------------------+            +------------------+          +---------------------+

 finalshell添加隧道

  • 添加隧道

    • 在连接成功后,右键点击左侧连接列表中的目标服务器,选择 "隧道管理" 或 "Tunnels"。
    • 在弹出的隧道管理界面中,可以看到三个选项卡:“本地端口转发”,“远程端口转发”和“动态端口转发”。
  • 配置本地端口转发

    • 选择 “本地端口转发” 选项卡。
    • 点击 “添加” 按钮。
    • 填写本地端口、目标地址和目标端口。例如,要将本地端口 8080 转发到远程数据库服务器(db.example.com:3306),可以填写如下:
      • 本地端口:8080
      • 目标地址:db.example.com
      • 目标端口:3306
    • 点击 “确定” 或 “保存”。

总结

SSH 隧道是一个强大的工具,可以确保数据传输的安全性,提供对受限网络资源的访问,并帮助用户规避网络限制。通过了解本地、远程和动态端口转发,可以灵活地应用 SSH 隧道满足不同的需求。

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

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

相关文章

【Linux】版本

文章目录 linux版本1、linxu技术版本&#xff08;内核版本&#xff09;2、linux商业化版本&#xff08;发行版本&#xff09; 区别 linux版本 1、linxu技术版本&#xff08;内核版本&#xff09; 内核&#xff1a;提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程…

PyTorch与TensorFlow模型互转指南

在深度学习的领域中&#xff0c;PyTorch和TensorFlow是两大广泛使用的框架。每个框架都有其独特的优势和特性&#xff0c;因此在不同的项目中选择使用哪一个框架可能会有所不同。然而&#xff0c;有时我们可能需要在这两个框架之间进行模型的转换&#xff0c;以便于在不同的环境…

高考志愿填报,理科生如何分析选专业?

理科生选择专业的范围更大一些&#xff0c;相比文科说理工科的院校也更多&#xff0c;如何选择适合自己的专业&#xff0c;这是一个比较重要的课题&#xff0c;毕竟大学专业直接关系到职业&#xff0c;是一辈子的大事。 那么理科究竟如何选择专业呢&#xff1f;需要从什么地方…

RPC框架知识学习

RPC框架介绍 RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;框架是一种允许程序调用位于另一台计算机上的程序的技术。这种调用看起来就像是调用本地程序一样&#xff0c;但实际上是通过网络进行的。RPC框架使得分布式系统的开发变得更加简单&…

MyBatis 自定义映射 ResultMap:一对多映射关系处理

在 MyBatis 中处理一对多&#xff08;或称为一对集合&#xff09;的映射关系时&#xff0c;我们通常会使用 collection 标签或分布查询来定义这种关系。这种关系常见于一个部门有多个员工这样的场景。下面我们将详细探讨如何使用 MyBatis 的 resultMap 来处理这种一对多的关系。…

Nginx反向代理Kingbase数据库

本文适用于开发人员学习运维领域知识&#xff0c;主要内容为在个人理解的基础上对企业级开发中所使用的Nginx和数据库kingbase相关使用&#xff0c;并附上Nginx反向代理kingbase数据库的相关配置的操作方式&#xff0c;感谢阅读 为什么是nginx代理kingbase数据库服务端 生产环…

JAVA学习笔记DAY6——SSM_Spring

文章目录 技术体系结构单体架构分布式架构 框架 FrameworkSpringIoc容器和核心概念组件Spring管理组件优点Spring Ioc 容器和容器实现普通容器复杂容器SpringIoc容器具体接口和实现类SpringIoc 容器管理配置方式 SpringIoc Ioc DI Spring Ioc 实践和应用Spring Ioc创建步骤配置…

【VUE3学习手札】

VUE3学习手札 vue3成长之路学习笔记 文章目录 VUE3学习手札前言一、markRaw1.1 代码示例1.2 应用场景1.3 拓展&#xff08;toRaw&#xff09;1.4 实际应用 二、ref 和 reactive 前言 主要用于自己的一个备忘&#xff0c;对知识点的查缺补漏 一、markRaw 将一个对象标记为不可被…

编程精粹—— Microsoft 编写优质无错 C 程序秘诀 02:设计并使用断言

这是一本老书&#xff0c;作者 Steve Maguire 在微软工作期间写了这本书&#xff0c;英文版于 1993 年发布。2013 年推出了 20 周年纪念第二版。我们看到的标题是中译版名字&#xff0c;英文版的名字是《Writing Clean Code ─── Microsoft’s Techniques for Developing》&a…

6spark期末复习

1)var a:Double5;var b:Int7;那么print(a*b) 2) var a:Int5; var bif(a>6) 7 println(b) 3)var a:Int16; var b:Int13; var cif(a>b) 5 else 7; println(c) 4. object TestDemo { print("B") def main(args: Array[String]): Unit { } } 5 def mai…

JeecgFlow排他网关演示

排他网关概念理解 排他网关&#xff0c;也称为异或(XOR)网关&#xff0c;用于流程中实现分支决策建模。排他网关需要搭配条件顺序流使用。 当流程流转到排他网关时&#xff0c;所有流程顺序流都是会顺序求解&#xff0c; 其中第一条条件为true的顺序流会被选中(当有多条顺序流都…

澳汰尔(Altair)3D 打印部件设计仿真——打造高效的增材制造设计

借助 Inspire Print3D&#xff0c;可加速创新、结构高效的 3D 打印部件的创建、优化和研究&#xff0c;提供快速准确的工具集&#xff0c;可用于实现选择性激光熔融 (SLM) 部件的设计和过程仿真。 工程师可以快速了解影响可制造性的工艺或设计变更&#xff0c;然后将部件和支撑…

JWT的优势

1、无状态&#xff1a; 2、有效避免了 CSRF 攻击&#xff1a;CSRF攻击&#xff0c;采用的是cookie进行攻击的&#xff1b;也避免XSS攻击&#xff0c;XSS采用的是js脚本进行攻击。 3、适合移动端应用&#xff1a;移动端没有cookie&#xff0c;jwt 4、单点登录友好&#xff1a…

SoC设计更重要的是IP管理

对于大多数片上系统&#xff08;SoC&#xff09;设计来说&#xff0c;最关键的任务不是RTL编码&#xff0c;甚至不是创建芯片架构。今天&#xff0c;SoC的设计主要使用来自多个供应商的各种IP块。这使得管理硅IP成为SoC设计过程中的主要任务。 一般来说&#xff0c;新编写的RTL…

Swift Combine — JUST Publisher

之前文章介绍的Publisher都是可以连续发送数据的&#xff0c;Subscriber也可以一直接收数据&#xff0c;除非收到了finished或者error而结束。而JUST Publisher则不同&#xff0c;它只向每个订阅者发送一次输出&#xff0c;然后结束。 一起来看一下下面的代码。 class JustVi…

从0到1:手动测试迈向自动化——手机web应用的自动化测试工具

引言&#xff1a; 在当今移动互联网时代&#xff0c;手机web应用已经成为人们生活中不可或缺的一部分。为了保证手机web应用的质量和稳定性&#xff0c;自动化测试工具变得十分重要。本文将介绍手机web应用自动化测试工具的选择和使用&#xff0c;提供一份超详细且规范的指南&a…

GPT3.5的PPO目标函数怎么来的:From PPO to PPO-ptx

给定当前优化的大模型 π \pi π&#xff0c;以及SFT模型 π S F T \pi_{SFT} πSFT​ 原始优化目标为: max ⁡ E ( s , a ) ∼ R L [ π ( s , a ) π S F T ( s , a ) A π S F T ( s , a ) ] \max E_{(s,a)\sim RL}[\frac{\pi(s,a)}{\pi_{SFT}(s,a)}A^{\pi_{SFT}}(s,a)] m…

力扣668.乘法表中第k小的数

力扣668.乘法表中第k小的数 二分查找 是否有k个比mid小的数 class Solution {public:int findKthNumber(int m, int n, int k) {auto check [&](int mid) -> bool{int res0;int row 1,col n;while(row < m){if(row * col < mid){res col;if(res > k) re…

软件测试全面指南:提升软件质量的系统流程

一、引言 随着软件行业的飞速发展&#xff0c;确保软件质量、稳定性和用户体验已成为企业竞争的关键。本文档旨在为测试团队提供一套全面的软件测试指南&#xff0c;通过规范测试用例管理、功能测试、接口测试、性能测试及缺陷管理等流程&#xff0c;助力测试团队实现高效、系统…

重构大学数学基础_week05_雅各比矩阵与雅各比行列式

这周来讲一下雅各比矩阵和雅各比行列式。 多元函数的局部线性属性 首先我们来回顾一下向量函数&#xff0c;就是我们输入一个向量&#xff0c;输出也是一个向量&#xff0c;我们假设现在有一个向量函数 这个函数意思就是在说&#xff0c;我们在原来的平面上有一个向量(x,y),经…