端口转发:ssh -L 或 -R

2023-05-16

SSH 除了可以访问服务器,还可以创建加密隧道,充当两台服务器之间的通信加密跳板,使得原本不加密的通信变成加密通信。这个功能称为端口转发(port forwarding),又称 SSH 隧道(tunnel)。
这里介绍本地转发和远程转发两种场景。需要注意的是,对于openssh的不同版本实现,默认值略有差异,但命令语法相同。

提示:ssh转发缺点同样是性能不足,所以在生产环境下慎用。

 -L监听

Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

在本地启动local_port监听,将访问流量转发到remote_host:remote_port,默认将local_port绑定到localhost,需要指定bind_address或者*,或者增加-g参数(-Nfg)默认绑定到*上;这里tunnel_host无所谓,可以是localhost。

注意:-L的local_port绑定在执行ssh命令的机器上。
ssh -Nf -L [bind_address:]local_port:remote_host:remote_port  username@跳板机IP

-f   后台认证用户/密码,通常和-N连用,不用登录到远程主机。
-N   不执行脚本或命令,通常与-f连用
举例:11.41跳板机上执行如下命令,会在本机启动127.0.0.1:5022监听
ssh -L 5022:172.16.200.240:4022 xiao@localhost -fN

等同 ssh -L 127.0.0.1:5022:172.16.200.240:4022 localhost -fN

举例:11.41跳板机上执行如下命令,会在本机启动192.168.11.41:5022监听,则14.229即可通过访问192.168.11.41:5022登录172.16.200.240:4022

ssh -L 192.168.11.41:5022:172.16.200.240:4022 localhost -fN

举例:11.229上执行如下命令,会在11.229上启动192.168.11.229:5022监听,收到请求后发送给192.168.11.41,192.168.11.41在讲请求转给172.16.200.240:4022

ssh -L 192.168.11.229:5022:172.16.200.240:4022 192.168.11.41 -fN

总结:-L方式监听即可在“跳板机”(当在跳板机上执行上述命令时)上也可以在其他机器(当其他机器上执行上述命令时)上,即便是在其他机器上,也不是由该机器直接转发到目标机,而是发送给“跳板机”转发给目标机。

-R转发

ssh -Nf -R [bind_address:]local_port:remote_host:remote_port  username@跳板机IP

-R与-L的不同点在于local_port不绑定在执行命令的机器上,而是跳板机IP,通过指定-g参数绑定在*上或者bind_address上,没有-g参数直接指定bind_address无效(跳板机/etc/ssh/ssh_config中,启用GatewayPorts才行)。

举例:如果14.229要用-R的方式连接172.16.200.240:4022,则需要在跳板机上执行如下命令,然后再访问192.168.11.41:5022端口,转发到172.16.200.240:4022

ssh -L 5022:172.16.200.240:4022 192.168.11.41 -fNg

总结:-R方式监听在tunnel_host上。

参考链接: 
https://wangdoc.com/ssh/port-forwarding.html
https://www.jianshu.com/p/65c13339f8e2

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

端口转发:ssh -L 或 -R 的相关文章

  • Manjaro-i3的安装

    Manjaro i3的安装 manjaro的安装方法记录在这里 xff0c 其中涉及到一些常用软件的安装 xff0c 此处只介绍Manjaro i3的安装 xff0c 并对一些安装配置中出现的问题列出解决方法 写在前面 之前用Win10的时
  • 解决Error:Configuration with name 'debug' not found.

    在同步开发时 同事添加了某个module 自己同步代码后会出现Error Configuration with name 39 default 39 not found 的错误 这是因为同步时不会自动把远程仓库下载下来需要你自己初始化下载
  • Altium Designer布局布线基本规则设置

    PCB布局布线过程中 xff0c 有如下几项最基本的规则需要设置 1 间距规则 一般情况下设置三个不同的间距规则即可 即整板间距 ALL ALL xff0c 一般密度的板子 6mil间距即可 如果有 BGA 封装 xff0c 或者需要控制阻
  • 使用环形缓冲区ringbuffer实现串口数据接收

    文章目录 1 ringbuffer简单介绍2 ringbuffer的代码实现2 1 ringbuffer数据结构定义2 2 ringbuffer初始化2 3 ringbuffer写数据2 4 ringbuffer读数据 3 在串口中使用ri
  • 在线刷机详细教程(图文)〓诺基亚——NSS修改CODE+NSU升级

    导读 xff1a 在线刷机详细教程 图文 诺基亚 NSS修改CODE 43 NSU升级 上次帮零刷机的时候发生了好多问题 费了好久的时间才搞定 主要是之前都没做好细致的工作 对刷机没有太深的了解 所以我用了一点时间把刷机教程再重新的整理一下
  • angularJS绑定数据时自动转义html字符串

    angular js转换字符串形式的html标签 在保存数据到数据库的时候有些保存一个商品的描述数据 会直接保存这个文件描述中的一些html标签 当在数据库拿这个数据的时候用angular显示会直接字符串 显示下列这样 span class
  • 【K8S 一】使用kubeadm工具快速部署Kubernetes集群(单Master)

    此为安装部署单Master集群 xff0c 如需高可用Master集群 xff0c 请一并参考 K8S 五 使用kubeadm工具快速部署Kubernetes集群 Master高可用集群 目录 安装前配置 依赖包安装 kube proxy开
  • [Scala Shell脚本执行]

    Scala语言来自于Scalable xff08 可伸缩的 xff09 xff0c 既可以写一些小的脚本 xff0c 又可以写一写复杂的服务器端的程序 scala支持源文件解释执行 xff0c jar执行 xff0c 各有利弊 本文主要介绍
  • 全息投影技术

    1 概念 全息投影技术 xff08 front projectedholographic display xff09 也称 虚拟成像 技术是利用干涉和衍射原理记录并再现物体真实的 三维 图像的技术 全息投影技术不仅可以产生立体的空中幻像 x
  • Android Settings源码结构分析与自实现

    最近的项目一直是按照PRD与高清 xff0c 修改系统设置 xff0c 调整布局 间距 颜色 xff0c 涉及到一些流程的更改与自定义控件 xff0c 以及对settings源码结构的研究 在项目相对空闲是 xff0c 做个整理记录 由于项
  • 程序员的职业规划

    在这个节点讲讲我对职业发展路径的理解 xff0c 另外就是理一理脑子里的一些思路 过段时间再看此文又可能是另一番理解 很多路从后往前看的时候总会有遗憾 xff0c 要是当初怎么怎么样就会怎么怎么样 导致这样的原因的第一个原因是人在做决策的时
  • 深度思考Java成员变量的初始化

    写Java代码的时候很少去关注成员变量的声明和初始化顺序 xff0c 今天借此机会抛出一些问题 xff1a 语言的设计者们为什么会这样设计 xff1f 比如说很常见的一个问题 xff1a abstract xff08 抽象 xff09 类不
  • 生产者消费者模型(二)-引入ArrayBlockingQueue

    前言 在 生产者消费者模型你知道多少 中简单的模拟了一个生产者消费者模型 有些网友对我的实现提出了很多质疑 我在文章的结尾也对抛出了一个问题 xff1a 在添加的过程中可能出现数据丢失的情况 xff0c 应该怎么处理 xff1f 在代码中也
  • 存储系统的实现-探析存储的机制和原理

    这一篇主要想写写一些自己对于存储的思考和领悟 xff0c 因为有些东西自己实践过 xff0c 所以感触过更加深一些 xff0c 技术上我还是认为自己实现和看别人的代码在感触上是不同的 这里假设一个图书馆 xff0c 假如说书就是要我们要放的
  • 毕业四年

    直至目前毕业已经快四年 xff0c 我的经历代表了大多数普通程序员的经历 xff0c 没有牛人传奇的经历 xff0c 甚至连进入这个职业都是一种偶然 xff0c 只是因为分数不够被调剂到计算机专业 很多人可能会有和我一样的经历甚至一样的困惑
  • 最佳实践:AtomicInteger实现边界值控制

    最佳实践 xff1a AtomicInteger实现边界值控制 前言 这篇文章主要讲两部分 xff0c 一部分简单的讲了一下AtomicInteger和LongAdder的实现对比 xff0c 这部分不会讲太细 xff0c 因为有更好的文章
  • Java多线程并发锁和原子操作,你真的了解吗?

    前言 对于Java 多线程 xff0c 接触最多的莫过于使用synchronized xff0c 这个简单易懂 xff0c 但是这synchronized并非性能最优的 今天我就简单介绍一下几种锁 可能我下面讲的时候其实很多东西不会特别深刻
  • Huawei 鲲鹏(ARM/Aarch64)服务器安装kvm虚拟机

    硬件 类别 项目 要求 硬件 服务器 TaiShan 200服务器 xff08 型号2280 xff09 CPU 鲲鹏920处理器 RAID卡 Avago 3508 操作系统 项目 要求 银河麒麟 银河麒麟高级服务器操作系统V10 部署KV
  • 我的六年程序之路

    以前看刘未鹏的 我在南大的七年 xff0c 就在感叹每个人的人生迥异 和大牛之间的差距加重了我对自己的卑微 写下这篇日志一方面是为了记录我这和计算机的六年 xff0c 也是缅怀过去 xff0c 反思自己 或许大部分程序员有着一样的迷茫和困惑
  • 深入探析Java线程锁机制

    今天在iteye上提了一个关于 43 43 操作和线程安全的问题 xff0c 一位朋友的回答一言点醒梦中人 xff0c 至此我对Java线程锁有了更加深刻的认识 在这里也做个总结供大家参考 先看几段代码吧 xff01 代码一 xff1a p

随机推荐