ssh如何实现端口转发

news2024/9/23 11:27:06

SSH 可以通过端口转发(SSH Tunneling)实现将本地或远程的端口映射到另一台机器的端口。这通常用于在不直接暴露端口的情况下,通过 SSH 隧道访问某些资源。SSH 支持三种类型的端口转发:本地端口转发远程端口转发动态端口转发。下面详细介绍这三种方式:


1. 本地端口转发(Local Port Forwarding)

本地端口转发允许你将本地计算机的某个端口通过 SSH 隧道转发到远程服务器上的指定端口。常用于通过堡垒机访问内部网络中的服务。

语法:
ssh -L [本地端口]:[目标地址]:[目标端口] [用户名]@[远程服务器]
示例:

假设你需要通过 SSH 访问内部网络中的 10.10.101.88:8080,但你只能通过 SSH 登录到堡垒机 bastion_host。你可以在本地创建一个端口转发,通过本地的 8080 端口访问内部服务。

ssh -L 8080:10.10.101.88:8080 your_username@bastion_host

解释:

  • -L 8080:10.10.101.88:8080:将本地的 8080 端口转发到堡垒机可访问的 10.10.101.88:8080
  • your_username@bastion_host:SSH 登录到堡垒机。

完成后,你可以通过本地的 http://localhost:8080 访问 10.10.101.88:8080 的服务。


2. 远程端口转发(Remote Port Forwarding)

远程端口转发允许你将远程服务器的某个端口转发到本地计算机或其他机器上的某个端口。这种方式常用于让远程机器访问本地的服务。

语法:
ssh -R [远程端口]:[目标地址]:[目标端口] [用户名]@[远程服务器]
示例:

假设你想将你本地的 Web 服务器(本地的 8080 端口)暴露给远程服务器 remote_host,使得 remote_host 上的用户可以通过访问 localhost:8080 来使用你本地的服务。

ssh -R 8080:localhost:8080 your_username@remote_host

解释:

  • -R 8080:localhost:8080:将远程服务器的 8080 端口转发到本地的 8080 端口。
  • your_username@remote_host:SSH 登录到远程服务器。

这样,remote_host 上的用户可以通过访问 http://localhost:8080 访问你本地的服务。


3. 动态端口转发(Dynamic Port Forwarding)

动态端口转发类似于本地端口转发,但它提供了更多灵活性,可以通过 SOCKS 代理将任何请求转发到指定的服务器。这种方式常用于建立代理服务器。

语法:
ssh -D [本地端口] [用户名]@[远程服务器]
示例:

假设你想通过远程服务器 remote_host 建立一个 SOCKS 代理,允许通过该代理访问多个目标服务器。可以使用如下命令:

ssh -D 1080 your_username@remote_host

解释:

  • -D 1080:在本地启动一个 SOCKS 代理服务器,监听 1080 端口。
  • your_username@remote_host:SSH 登录到远程服务器。

完成后,配置浏览器或其他工具使用 localhost:1080 作为 SOCKS 代理,你就可以通过该代理访问远程服务器所能访问的所有资源。


常用选项:

  • -N:只建立连接,不执行远程命令,适用于仅需要端口转发的场景。
    ssh -N -L 8080:10.10.101.88:8080 your_username@bastion_host
  • -f:将 SSH 进程放入后台运行,适用于长时间运行的端口转发。
    ssh -f -N -L 8080:10.10.101.88:8080 your_username@bastion_host

总结:

  • 本地端口转发:将本地端口转发到远程服务器的端口,适合通过中间主机访问远程服务。
  • 远程端口转发:将远程服务器的端口转发到本地或另一台主机的端口,适合让远程服务器访问本地资源。
  • 动态端口转发:通过 SOCKS 代理灵活地访问远程服务器上的资源,适合建立一个代理服务。

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

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

相关文章

实操学习——个人资料的录入、修改、密码的修改

实操学习——个人资料的录入、修改、密码的修改 一、个人资料的录入和修改知识补充:装饰器二、密码的修改知识补充:docker的关闭与启动 一、个人资料的录入和修改 在users的app下创建一个用户详情表 from django.contrib.auth.models import User from…

C/C++逆向:switch语句逆向分析

在逆向分析中,switch语句会被编译器转化为不同的底层实现方式,这取决于编译器优化和具体的场景。常见的实现方式包括以下几种: ①顺序判断(if-else链): 编译器将switch语句转化为一系列的if-else语句。这…

【第十四章:Sentosa_DSML社区版-机器学习时间序列】

目录 【第十四章:Sentosa_DSML社区版-机器学习时间序列】 14.1 ARIMAX 14.2 ARIMA 14.3 HoltWinters 14.4 一次指数平滑预测 14.5 二次指数平滑预测 【第十四章:Sentosa_DSML社区版-机器学习时间序列】 14.1 ARIMAX 1.算子介绍 考虑其他序列对一…

Flutter鸿蒙化(windows)

Flutter鸿蒙化(windows) 参考资料Window配置Flutter的鸿蒙化环境下载配置环境变量HarmonyOS的环境变量配置配置Flutter的环境变量Flutter doctor -v 检测的问题flutter_flutter仓库地址的警告问题Fliutter doctor –v 报错[!] Android Studio (version 2…

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-18

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-18 1. The Application of Large Language Models in Primary Healthcare Services and the Challenges W YAN, J HU, H ZENG, M LIU, W LIANG - Chinese General Practice, 2024 人工智能大语言模型在基层医疗…

软媒市场新探索:软文媒体自助发布,开启自助发稿新篇章

在繁华喧嚣的软媒市场中,每一个声音都在竭力呼喊,每一个品牌都在奋力展现。而软文,作为一种温柔而坚韧的营销力量,正逐渐崭露头角。特别是软文媒体自助发布平台的出现,更是为企业提供了一个全新的、高效的自助发稿渠道。 软媒市场自助发布平台,正如其名,是一个让企业能够自主发…

离职员工客户如何管理?解锁2024企业微信新功能

公司里员工来来去去很正常,但每次有人走,老板们都会头疼,因为客户信息得有人接着管。客户对公司来说太重要了,不能丢。2024年,企业微信出了个新招,就是员工离职后,客户信息可以轻松转给新来的员…

JVM的基本概念

目录 一、JVM的内存划分 二、JVM的类加载过程 三、JVM的垃圾回收机制(GC) 四、分代回收 一、JVM的内存划分 一个运行起来的Java进程,就是一个Java虚拟机,就需要从操作系统中申请一大块内存。申请的内存会划分为不同的区域&…

Maven笔记(一):基础使用【记录】

Maven笔记(一)-基础使用 Maven是专门用于管理和构建Java项目的工具,它的主要功能有: 提供了一套标准化的项目结构 Maven提供了一套标准化的项目结构,所有IDE(eclipse、myeclipse、IntelliJ IDEA 等 项目开发工具) 使…

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-17

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-17 1. Large Language Models in Biomedical and Health Informatics: A Review with Bibliometric Analysis H Yu, L Fan, L Li, J Zhou, Z Ma, L Xian, W Hua, S He… - Journal of Healthcare …, 2024 生物…

HarmonyOS应用开发(组件库)--组件模块化开发、工具包、设计模式(持续更新)

致力于,UI开发拿来即用,提高开发效率 正则表达式...手机号校验...邮箱校验 文件判断文件是否存在 网络下载下载图片从沙箱中图片转为Base64格式从资源文件中读取图片转Base64 组件输入框...矩形输入框...输入框堆叠效果(用于登录使用&#xf…

【自动驾驶】决策规划算法(二)参考线模块Ⅰ| 平滑算法与二次规划

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

(学习记录)使用 STM32CubeMX——GPIO引脚输入配置

STM32F103C8T6的GPIO引脚输入配置 时钟配置 (学习记录)使用 STM32CubeMX——配置时钟(入门)https://blog.csdn.net/Wang2869902214/article/details/142423522 GPIO 引脚输出配置 (学习记录)使用 STM32…

Springcloud框架-能源管理系统-能源管理系统源码-能源在线监测平台-双碳平台

一、介绍 基于SpringCloud的能管管理系统-能源管理平台源码-能源在线监测平台-双碳平台源码-SpringCloud全家桶-能管管理系统源码 有需者咨询,非诚勿扰; 二、软件架构 二、功能介绍 三、数字大屏展示 四、数据采集原理 五、软件截图

macos pyenv 安装python tk 、tkinter图形库方法步骤和使用总结

在macos中, pyenv 是一款用来管理多版本python 的工具, 我们常用的tk图形库是一个独立的工具库,我们在python里面使用的tkinter模块仅是调用这个独立的tk图形库, 所以如果我们希望在python里面使用它, 就必须要先安装t…

委托的注册及注销+观察者模式

事件 委托变量如果公开出去,很不安全,外部可以随意调用 所以取消public,封闭它,我们可以自己书写两个方法,供外部注册与注销,委托调用在子方法里调用,这样封装委托变量可以使它更安全,这个就叫…

金融加密机的定义与功能

金融加密机是一种用于保护金融交易数据和信息安全的重要安全设备。它通过硬件和软件的多重保障,确保金融交易中的敏感数据不被泄露或篡改。以下是关于金融加密机的详细介绍: 一、定义与功能 金融加密机是一种硬件安全设备,通过实现各种密码算…

深度deepin初体验(一)系统详细安装过程 | 国产系统

这里写自定义目录标题 深度deepin初体验(一)系统详细安装过程1.介绍2.安装要求3.环境4.创建虚拟机/系统升级系统选择语言硬盘分区备份文件拷贝系统重启常规设置 深度deepin初体验(一)系统详细安装过程 1.介绍 深度deepin是在debi…

Python开发深度学习常见安装包 error 解决

Python Python 是一种广泛使用的高级编程语言,它以其清晰的语法和代码可读性而闻名。Python 支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。由于其简洁性和强大的标准库,Python 成为了数据科学、机器学习、网络开发、自动化脚…

气膜馆:新型场馆的盈利之道—轻空间

气膜馆作为一种创新的场馆形式,凭借其先进的技术和灵活的应用,正在快速崛起,展现出广阔的市场前景与丰富的盈利潜力。通过多元化的经营模式,气膜馆为创业者提供了前所未有的商机。本文将深入分析气膜馆的盈利模式及其在市场中的竞…