【笔记】端口转发

@echo off
:loop
ssh -N -L 13306:192.168.0.3:23306 -o ServerAliveInterval=60 admin@192.168.0.2
timeout /t 5
goto loop

代码功能剖析

1、基础设置

@echo off

        此命令的作用是让批处理脚本在执行过程中不显示命令行,从而使输出更为简洁。

2、定义循环标签

:loop

这里定义了一个名为loop的标签,其用途是为后续的循环跳转提供目标位置。

3、SSH 隧道建立命令

ssh -N -L 13306:192.168.0.3:23306 -o ServerAliveInterval=60 admin@192.168.0.2

该命令包含多个参数,各参数功能如下:

  • -N:表明此 SSH 连接仅用于端口转发,不会执行远程命令。
  • -L 13306:192.168.0.3:23306:这是端口转发的具体配置,意思是将本地(127.0.0.1)的 13306 端口映射到远程主机192.168.0.3的 23306 端口。这里的流量走向是:本地端口 13306 → SSH 服务器192.168.0.2 → 目标主机192.168.0.3的 23306 端口。

  • -o ServerAliveInterval=60:设置 SSH 客户端每隔 60 秒向服务器发送一次 "心跳" 包,以此来维持连接的稳定性,防止连接因长时间无数据传输而断开。
  • admin@192.168.0.2:指定使用admin用户连接到 SSH 服务器192.168.0.2

4、连接断开后的处理

timeout /t 5
goto loop

        当 SSH 连接意外断开时,脚本会先暂停 5 秒(通过timeout /t 5实现),然后跳回到loop标签处(通过goto loop实现),重新尝试建立 SSH 连接,以此保证服务的连续性。

    典型应用场景

    • 远程数据库访问:当你需要访问位于内网(如192.168.0.3)的数据库,而该数据库只能通过中间服务器(192.168.0.2)访问时,就可以使用此脚本。
    • 服务高可用性保障:借助自动重连机制,能够确保网络波动时服务仍能正常运行。

    使用注意要点

    • 权限要求:运行此脚本前,需要确保admin用户对 SSH 服务器192.168.0.2有访问权限,并且该服务器允许端口转发功能。
    • 端口占用情况:要保证本地的 13306 端口没有被其他程序占用,否则 SSH 连接将无法正常建立。
    • 密钥配置建议:为了避免每次连接都需要手动输入密码,建议配置 SSH 密钥认证。

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

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

    相关文章

    Flink Table SQL

    Apache Flink 提供了强大的 Table API 和 SQL 接口,用于统一处理批数据和流数据。它们为开发者提供了类 SQL 的编程方式,简化了复杂的数据处理逻辑,并支持与外部系统集成。 🧩 一、Flink Table & SQL 核心概念 概念描述Table…

    【AWS入门】Amazon SageMaker简介

    【AWS入门】Amazon SageMaker简介 [AWS Essentials] Brief Introduction to Amazon SageMaker By JacksonML 机器学习(Machine Learning,简称ML) 是当代流行的计算机科学分支技术。通常,人们在本地部署搭建环境,以满足机器学习的要求。 AWS…

    解决 Go 构建依赖超时问题:使用 GOPROXY 提升 Docker 构建稳定性

    目录 解决 Go 构建依赖超时问题:使用 GOPROXY 提升 Docker 构建稳定性 ✅ 问题背景 ✅ 正确做法:多阶段中在 Go 阶段设置 GOPROXY ✅ 实际收获 🧪 小技巧:验证 GOPROXY 设置是否生效 ✅ 总结 解决 Go 构建依赖超时问题&#x…

    【周输入】510周阅读推荐-3

    前文 【周输入】510周阅读推荐-1-CSDN博客 【周输入】510周阅读推荐-2-CSDN博客 本次推荐 目录 前文 本次推荐 算法技术 模型产品 算法技术 vLLM和DeepSpeed部署模型的优缺点_vllm deepspeed-CSDN博客 优点缺点总结vLLM 适用于推理 优化内存管理 高效并行化 功能单…

    Kubernetes控制平面组件:Kubelet详解(七):容器网络接口 CNI

    云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…

    【推荐】新准则下对照会计报表172个会计科目解释

    序号 科目名称 对应的会计报表项目 序号 科目名称 对应的会计报表项目   一、资产类     二、负债类   1 1001 库存现金 货币资金 103 2001 短期借款 短期借款 2 1002 银行存款 货币资金 104 2101 交易性金融负债 易性金融负债 3 1012 其他货币资…

    MongoDB的安装及简单使用

    MongoDB 是一个开源的文档型 NoSQL 数据库​​,由 MongoDB Inc. 开发,专为灵活性和可扩展性设计。 特点: ​​1.文档模型​​:数据以 BSON(二进制 JSON)格式存储,支持嵌套结构。 ​​2.动态 S…

    Gartner《如何将生成式人工智能(GenAI)集成到应用架构》学习心得

    针对软件架构师、技术专业人士如何更好的把 GenAI 如何融入解决方案,提升用户体验、生产力并带来差异化成果的趋势,Gartner发布了《Integrating GenAI Into Your Application Architecture》研究报告。 报告首先介绍了 GenAI 的发展背景,指出其已成为主流趋势,大型语言模型…

    IDEA - Windows IDEA 代码块展开与折叠(基础折叠操作、高级折叠操作)

    一、基础折叠操作 折叠当前代码块:Ctrl - # 操作方式按下 【Ctrl】 键,再按下 【-】 键展开当前代码块:Ctrl # 操作方式按下 【Ctrl】 键,再按下 【】 键折叠所有代码块:Ctrl Shift - # 操作方式按下 【Ctrl】…

    基于STM32F103与Marvell88W8686的WIFI无线监控视频传输系统研发(论文)

    基于STM32F103与Marvell88W8686的WIFI无线监控视频传输系统研发 中文摘要 在当今社会信息化进程不断加速的时代背景下,众多领域对于监控系统的需求日益增长,像车内安全监控、电梯运行监控等场景都离不开监控系统的支持。过去,不少领域普遍采用…

    Java基础知识总结(超详细整理)

    一:概述 1.1Java类及类的成员 属性、方法、构造器、代码块、内部类 (1)数组 java虚拟机内存划分 各区域作用 内存解析 基本使用 两个变量指向一个一维数组 没有new就不会在堆里新开辟空间 (2)对象数组 (3&a…

    StarRocks Community Monthly Newsletter (Apr)

    版本动态 3.4.3 版本更新 核心功能升级 Routine Load和Stream Load新增Lambda表达式支持,支持复杂的列数据提取 增强JSON数据处理能力,支持将JSON Array/Object转为ARRAY/MAP类型 优化information_schema.task_runs视图查询,新增LIMIT支持…

    探索AI新领域:生成式人工智能认证(GAI认证)助力职场发展

    在数字化时代的大潮中,人工智能(AI)技术以其强大的影响力和广泛的应用前景,正逐步重塑我们的生活与工作方式。随着生成式AI技术的崛起,掌握这一前沿技能已成为职场竞争中的关键优势。那么,如何通过系统的学…

    数据库触发器Trigger

    在数据库管理系统中,触发器(Trigger)是一种特殊的存储过程,它在特定的事件发生时自动执行。触发器通常用于维护数据的完整性和一致性。通过事件触发而被执行,不能直接调用。 触发器的三要素 触发事件 before/after&a…

    如何利用 Java 爬虫获得某书笔记详情:实战指南

    在知识分享和学习的领域,许多平台提供了丰富的书籍笔记和学习资源。通过 Java 爬虫技术,我们可以高效地获取这些笔记的详细信息,以便进行进一步的分析和整理。本文将详细介绍如何利用 Java 爬虫获取某书笔记详情,并提供完整的代码…

    主成分分析的应用之sklearn.decomposition模块的PCA函数

    主成分分析的应用之sklearn.decomposition模块的PCA函数 一、模型建立整体步骤 二、数据 2297.86 589.62 474.74 164.19 290.91 626.21 295.20 199.03 2262.19 571.69 461.25 185.90 337.83 604.78 354.66 198.96 2303.29 589.99 516.21 236.55 403.92 730.05 438.41 225.80 …

    【Redis】List 列表

    文章目录 初识列表常用命令lpushlpushxlrangerpushrpushxlpop & rpoplindexlinsertllen阻塞操作 —— blpop & brpop 内部编码应用场景 初识列表 列表类型,用于存储多个字符串。在操作和实现上,类似 C 的双端队列,支持随机访问(O(N)…

    Android framework 中间件开发(三)

    前两篇我们讲了中间件的开发和打包应用, Android framework 中间件开发(一) Android framework 中间件开发(二) 这边我们来讲一下在中间件中编写JNI 1.新建C文件 找到frameworks\base\services\core\jni\路径,新建一个cpp文件,文件名为com_android_server_DarkControlService.c…

    深入了解linux系统—— 基础IO(上)

    文件 在之前学习C语言文件操作时,我们了解过什么是文件,这里简单回顾一下: 文件存在磁盘中,文件有分为程序文件、数据文件;二进制文件和文本文件等。 详细描述见文章:文件操作——C语言 文件在磁盘里&a…

    Flink CDC—实时数据集成框架

    Flink CDC 是一个基于流的数据集成工具,旨在为用户提供一套功能更加全面的编程接口(API),它基于数据库日志的 CDC(变更数据捕获)技术实现了统一的增量和全量数据读取。 该工具使得用户能够以 YAML 配置文件…