【Linux】SSH 隧道转发场景搭建
ssh建立隧道转发
A设备:没有公网IP地址的本地设备,如本地内网服务器(需要能通公网)
B设备:有公网IP地址的服务器,可以是云服务器
C设备:终端设备,想通过公网服务器B访问到设备A
要实现通过公有云服务器 B 访问内网 A 服务器的场景,可以使用 SSH 隧道转发(SSH Tunneling)技术。这个技术可以通过公有云服务器 B 建立一个跳板,使得你可以通过 SSH 访问到内网 A 服务器。
下面是具体的配置步骤:
1. 在 A 服务器上配置 SSH
A 服务器已经获取到 IP,假设 A 服务器的 IP 是 192.168.1.100,首先确保 A 服务器上已经安装并配置好了 SSH 服务。
2. 在 B 服务器上配置 SSH
B 服务器是具有公网 IP 的云服务器,假设 B 服务器的公网 IP 是 203.0.113.1,同样确保 B 服务器上已经安装并配置好了 SSH 服务。
3. 在 A 服务器上建立反向 SSH 隧道
在 A 服务器上运行以下命令来建立反向 SSH 隧道:
ssh -R 2222:localhost:22 user@203.0.113.1
这条命令的含义是将 A 服务器的 22 端口映射到 B 服务器的 2222 端口。其中 user 是 B 服务器上的用户名。
可以使用 autossh 工具来保持这个隧道的持久连接,确保断开后能够自动重新连接。安装 autossh 并使用它来建立隧道:
sudo apt-get install autosshautossh -M 0 -f -N -R 2222:localhost:22 user@203.0.113.1
4. 在 B 服务器上配置 SSH 以允许端口转发
确保 B 服务器上的 SSH 配置文件允许网关和端口转发。编辑 /etc/ssh/sshd_config 文件,确保以下配置项没有被注释掉:
GatewayPorts yes
AllowTcpForwarding yes
然后重新启动 SSH 服务:
sudo systemctl restart ssh
5. 在本地 PC 上连接 A 服务器
通过 B 服务器建立到 A 服务器的连接。假设你使用的是 OpenSSH 客户端,可以在本地 PC 运行以下命令:
ssh -p 2222 user_on_A@203.0.113.1
这条命令的含义是通过 B 服务器的 2222 端口连接到 A 服务器的 22 端口,其中 user_on_A 是 A 服务器上的用户名。
总结
通过以上配置,你可以实现从本地 PC 通过 B 服务器 SSH 访问到 A 服务器的场景。
# 在A服务器上执行
ssh -R 2222:localhost:22 user@203.0.113.1# 或使用autossh
sudo apt-get install autossh
autossh -M 0 -f -N -R 2222:localhost:22 user@203.0.113.1# 在B服务器上确保ssh配置
sudo vim /etc/ssh/sshd_config
# 确保以下配置项
GatewayPorts yes
AllowTcpForwarding yes
# 重启ssh服务
sudo systemctl restart ssh# 在本地PC上执行
ssh -p 2222 user_on_A@203.0.113.1
相关文章:
【Linux】SSH 隧道转发场景搭建
ssh建立隧道转发 A设备:没有公网IP地址的本地设备,如本地内网服务器(需要能通公网) B设备:有公网IP地址的服务器,可以是云服务器 C设备:终端设备,想通过公网服务器B访问到设备A 要…...
前后端部署-服务器linux中安装数据库Mysql8
一、登录Xshell7 && 开放Mysql 3306端口, Redis 6379 端口 二、手动部署MySQL数据库 1.运行以下命令,更新YUM源。 sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm 2.运行以下命令,安装My…...
如何使用jd-gui对springboot源码进行分析
背景: 最近在学习springboot的过滤器和拦截器,想了解一下过滤器和拦截器是怎么匹配URL的,在网上搜了半天都搜不到针对源码的,网上大部分内容都是说怎么配置过滤器和拦截器,怎么使用,并没有对源码进行分析的…...
原来ChatGPT是这么评价《黑神话:悟空》的啊?
《黑神话:悟空》一经上线便迅速吸引了全球的目光,成为了今日微博热搜榜上的焦点话题。作为中国首款现象级的中国3A大作,它的发布无疑引发了广泛的关注与讨论。 《黑神话:悟空》,这款3A国产游戏大作,由国内游…...
C语言第17篇
1.在C语言中,全局变量的存储类别是_________. A) static B) extern C) void D) register 提示:extern adj.外来的 register n.登记表,v.登记 提示与本题无关 2.在一个C源程序文件中,要定义一个只允许本源文件中所有函数使用的全局变…...
Springboot+vue实现webScoket
需求 因为在做的项目中,有多个网站登录同一个用户,故想在某一个页面登录或者退出的时候,对其他页面进行相同的操作 跨域,跨页面,跨项目,跨标签页,https 因为一开始不像麻烦后端,所以…...
CSS知识点详解:display+float
display:浮动 1.block:使元素呈现为块级元素,可设置宽高 display: block; 特点:使元素呈现为块级元素,即该元素会以新行开始,占据整行的宽度,即使其宽度未满。 例子: 2.inline&a…...
ant design pro v6 如何做好角色管理
先上图: 整个角色管理是如何做的吗? 首先你要处理后端,要先把角色存到用户那。 这是用户管理部分的内容: 可以看到一个用户是有多个角色的。 看到没有,存的是数组 数组的是一个 role 对象 role 对象是这样…...
C++ 设计模式(3. 抽象工厂模式)
抽象工厂模式也是一种创建型设计模式,提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类【引用自大话设计模式第15章】基本结构 抽象工厂模式包含多个抽象产品接口,多个具体产品类,一个抽象工厂接口和多个具体…...
【PHP入门教程】PHPStudy环境搭建+HelloWorld运行
文章目录 PHP 的历史PHP 的用途PHP 的特点和优势PHP 环境搭建环境准备安装window 安装CentOS / Ubuntu / Debian 安装 第一个Hello World使用Apache服务运行命令行运行代码 PHP 的历史 PHP(Hypertext Preprocessor)超文本预处理器是一种开源的通用脚本语…...
补 0 输出。
题目描述 输入一个整数,请在整数前面补 00 补足 88 位后输出。 输入描述 输入一行包含一个整数 nn。 输出描述 输出补00后的整数。 输入输出样例 示例1 输入 2021输出 00002021示例2 输入 202110输出 00202110 import os import sys# 请在此输入您的代码 si…...
因为嫌吵,在自己家也用上了远程控制电脑
加班嘛,赶稿嘛,参加工作的人都懂那种无形的压力和烦躁。 因为家里空间有限,我平常都是直接在客厅用台式电脑加急改写方案,但今天晚上家里来了几位叔,他们边吃饭边聊着秦始皇的话题,都70多分钟了,…...
vue---echarts环形图
1、完整代码直接可以cv <template><div id"main1"></div> </template><script> import * as echarts from echarts; // import { mapState } from vuex; // import { Alarm_Device } from ../utils/api.js; export default {name: P…...
克服编程挫折:从Bug的迷宫中寻找出口与面对算法保持冷静的策略
在编程学习的道路上,挫折感无疑是每个学习者都必须面对的挑战之一。它们仿佛是一座座高墙,阻挡我们前进的步伐。然而,正如许多有经验的编程高手所证明的那样,挫折并不是终点,而是成长和进步的催化剂。本文将分享一些有…...
Flink之SQL client使用案例
Flink的执行模式有以下三种: 前提是我们已经开启了yarnsession的进程,在下图中可以看到启动的id也就是后续任务需要通过此id进行认证,以及任务分配的master主机。 这里启动时候会报错一个ERROR:org.apache.flink.shaded.curator.org.apache…...
实际开发中的模块化开发 - 应用到直播间
实际开发中的模块化开发 - 模块管理(以直播间为例)-CSDN博客 引言 在前面的两篇博客中,我们已经介绍了直播模块的简单结构,创建了模块管理器和模块抽象基类,并且通过模块化实现了两个小业务功能模块。接下来…...
EmguCV学习笔记 VB.Net 第5章 图像变换
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访…...
【初阶数据结构】顺序表与链表的比较(附题)
目录 一、顺序表和链表的区别(其他链表存在缺陷,比较意义不大,这里用带头双向循环链表与顺序表进行比较) 1.1插入、扩容与随机访问 二、缓存利用率的比较 2.1前置知识 详解及补充知识(本文仅为比较顺序表及链表&am…...
git-20240822
目录 初始化仓库 Git init Git init project --bare 查看提交的记录 git log --prettyoneline 查看当前git远程库地址 git remote -v 查看详细提交记录 git log 撤出暂存区的文件 git reset HEAD file(.代表全部文件) 提交数据到远程仓库 git config --global push.…...
【时时三省】c语言例题----华为机试题< 数字颠倒>
目录 1,题目 描述 输入描述: 输出描述: 示例1 2,代码...
3分钟极速攻略:ctfileGet如何一键破解城通网盘下载限速
3分钟极速攻略:ctfileGet如何一键破解城通网盘下载限速 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 你是否曾因城通网盘的低速下载而焦虑?面对大文件的漫长等待和频繁验证码&…...
VSCode + Cline + Codeium + OpenSpec + DeepSeek 完整配置指南
VSCode Cline Codeium OpenSpec DeepSeek 完整配置指南 📋 最终方案概述 组件用途费用VSCode代码编辑器免费Codeium (Windsurf)Tab 补全 生成注释免费ClineAI Agent(复杂任务、多文件操作)免费OpenSpec规范驱动开发(复杂功…...
Zotero茉莉花插件:3大功能轻松管理中文文献,科研效率翻倍提升
Zotero茉莉花插件:3大功能轻松管理中文文献,科研效率翻倍提升 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件,用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum …...
电池创新如何跨越量产鸿沟:从实验室到工厂的工程化实践
1. 从实验室到工厂:电池创新的“量产魔咒”最近几年,电池行业绝对是资本和媒体眼中的“香饽饽”。动辄数十亿、上百亿美元的投资砸向新的生产设施和前沿技术,目标直指电动汽车、智能电网乃至整个智慧城市的能源基石。新闻稿里,我们…...
YOLOv5锚框(anchor)自适应计算与实战调优指南
1. 为什么需要自定义YOLOv5锚框参数 第一次用YOLOv5跑自己的数据集时,我发现模型死活训不出好效果。明明用的是官方预训练权重,标注数据也检查过没问题,但AP值就是上不去。后来把预测结果可视化出来才发现问题——那些长条形物体(…...
除了综合,DC Shell还能这么用:快速搭建一个轻量级RTL/Netlist查看与调试环境
DC Shell的隐藏技能:打造高效RTL/Netlist交互式调试环境 在数字芯片设计流程中,工程师们经常需要快速查看和分析RTL或网表文件。传统方法要么启动完整的综合流程耗时费力,要么依赖第三方工具可能面临兼容性问题。实际上,Synopsys …...
拆解工业级压力传感器核心:陶瓷电容vs陶瓷电阻,ME505与NSA2862如何选型?
工业级压力传感器技术选型指南:陶瓷电容与陶瓷电阻的深度对比与实战选型 在工业物联网和智慧城市建设的浪潮中,压力传感器作为关键感知元件,其性能直接影响整个系统的可靠性与寿命。面对市场上琳琅满目的传感器类型,工程师们常常陷…...
【运算篇】算术与逻辑律令(3):比特的手术刀,镜像翻转与空间缝合
在 4-bit 的逻辑地牢里,如果说算术指令提供了“肌肉”,逻辑指令开启了“感官”,那么接下来我们要聊的,则是这台机器最细腻的形态手术。如果说 AND/OR 是在判定“存在”,那么 NOT 和移位指令(SHL/SHR&#x…...
Xilinx MIG核读写DDR3时,这个时序细节没处理好,数据就全乱了(附Vivado 2020.1调试实录)
Xilinx MIG核DDR3读写时序陷阱:命令与数据通道异步处理实战解析 当你在Vivado中完成MIG核配置,看着DDR3初始化校准成功的指示灯亮起时,可能不会想到真正的挑战才刚刚开始。我曾在多个高速数据采集项目中,反复栽在同一个坑里——命…...
CANN/asc-devkit bfloat16转half API
__bfloat162half_ru 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://git…...
