# SSH端口转发之上网代理、正向代理、反向代理用法

news2024/11/22 6:17:48

SSH端口转发之上网代理、正向代理、反向代理用法

文章目录

  • SSH端口转发之上网代理、正向代理、反向代理用法
    • 1 ssh参数说明:
    • 2 一般用法:
    • 3 用法范例:
    • 4 示例与解释:
    • 5 SSH概念详解
      • **5.1. SSH端口转发的概念**
      • **5.2. SSH端口转发的类型**
        • **5.2.1 本地端口转发**
        • **5.2.2 远程端口转发**
        • **5.2.3 动态端口转发**
      • **5.3. SSH端口转发的用途**
        • **5.3.1 安全远程访问**
        • **5.3.2 跨越网络限制**
        • **5.3.3 加密流量传输**
        • **5.3.4 跨越 NAT 网络**
        • **5.3.5 安全代理**
      • **5.4 结论**

上网代理(动态端口转发)可用于代理上网(socks)

正向代理(本地端口转发)与反向代理(远程端口转发)都是端口到端口的转发,一般用于解决网络安全、网络防火墙限制、NAT等问题。

1 ssh参数说明:

-C:启用压缩功能。SSH 会尝试使用压缩来缩小传输的数据量。这是通用选项,所有命令参数适用

---------------------------------------

# 上网代理(动态端口转发):
-D:动态端口转发,就是通过这个端口的流量通通转发到远程主机,然后通过远程主机转发出去,一般用于代理上网。

# 正向代理(本地端口转发):
-L:用于将本地主机的新建端口转发到远程主机。这意味着你可以将本地机器的一个端口映射到远程主机的一个端口。一般用于远程主机没有开放端口的情况下,通过ssh建立本地侦听端口,通过本地侦听端口转发到远程主机端口。

# 反向代理(远程端口转发):
-R:用于将远程主机的新建端口转发到本地主机。这意味着你可以将远程机器的一个端口映射到本地机器的一个端口。这个和-L达到的功能是一样的,只是建立侦听端口主机不一样,-L在本地主机建立,-R在远程主机建立,这个主要考虑ssh运行的便利性与可行性,比如是否有公网地址,是否在NAT后面,是否的密码安全担忧等。

---------------------------------------

-g:无此参数默认监听地址是127.0.0.1,添加此参数监听0.0.0.0。在有-L -R -D参数时都可以使用。

---------------------------------------

-f:后台运行

-N:表示不执行远程命令,通常与端口转发一起使用。当您只需要转发端口(如设置隧道)而不需要在远程机器上启动 Shell 时,这个选项很有用。无此选项时,你可能需要在命令后面加上需要执行的command

2 一般用法:

# 远程执行命令:
ssh  用户@远程ssh主机地址  -p 远程ssh主机ssh端口  远程命令


# 上网代理(动态端口转发):
ssh  -CD 本机主机侦听端口                                   -g -fN  用户@远程主机ssh地址  -p 远程主机ssh端口


# 正向代理(本地端口转发):
# 注:【远程目标X主机】 与 【远程主机】 可以是同一台主机,也可以不是同一台主机
ssh  -CL 本机主机侦听端口:远程目标X主机地址:远程目标X主机端口  -g -fN  用户@远程主机ssh地址  -p 远程主机ssh端口


# 反向代理(远程端口转发):
# 注:【本地目标X主机】 与 【本机主机】 可以是同一台主机,也可以不是同一台主机
ssh  -CR 远程主机侦听端口:本地目标X主机地址:本地目标X主机端口  -g -fN  用户@远程主机ssh地址  -p 远程主机ssh端口

3 用法范例:

# 登录:
ssh  root@8.8.8.227

---------------------------------------

# 执行远程命令,运行完立即退出
ssh  root@8.8.8.227  uptime

# 执行远程命令,运行完不退出
ssh  -f  root@8.8.8.227  uptime    #-- 一般运行守护进程,这里的uptime程序是无意义的,你可以换成类似nginx守护进程

---------------------------------------

# 上网代理(动态端口转发),在127.0.0.1监听2233,前台运行(exit退出就关闭)
ssh  -D 2233  root@8.8.8.227

# 上网代理(动态端口转发),在0.0.0.0监听2233
ssh  -D 2233  -g  root@8.8.8.227

# 上网代理(动态端口转发),在0.0.0.0监听2233,后台运行
ssh  -D 2233  -g  -fN  root@8.8.8.227

# 上网代理(动态端口转发),在0.0.0.0监听2233,后台运行,启用压缩
ssh  -CD 2233  -g  -fN  root@8.8.8.227
# 将代理服务器设置为:'socks5://127.0.0.1:2233'或'socks5://本机地址:2233',即可实现代理上网。
# 经测试,这里即可以使用socks4也可以使用socks5

---------------------------------------

# 正向代理(本地端口转发),在0.0.0.0监听2233,后台运行,启用压缩
ssh  -CL 2233:47.1.1.132:80  -g  -fN  root@8.8.8.227
# 在本地主机访问以下地址,会返回相同的结果:
#   curl http://47.1.1.132:80
#   curl http://127.0.0.1:80
#   curl http://本地主机:80

# 反向代理(远程端口转发),在0.0.0.0监听2233,后台运行,启用压缩
ssh  -CR 2233:47.1.1.132:80  -g  -fN  root@8.8.8.227
# 在远程主机访问以下地址,会返回相同的结果:
#   curl http://47.1.1.132:80
#   curl http://127.0.0.1:80
#   curl http://远程主机:80

4 示例与解释:

ssh -L 6006:127.0.0.1:6006 -gCN  root@connect.bjc1.com -p 34748

解释:

-L 6006:127.0.0.1:6006:这是本地端口转发的选项。它指定了一个本地端口转发规则,具体分为以下几部分:

6006:本地机器上的端口号(您可以在本地机器上连接这个端口)。
127.0.0.1:远程机器上的目标地址,这里是远程机器的回环地址。
6006:远程机器上的目标端口号,您希望远程机器上的连接被转发到此端口。
这意味着所有连接到您本地机器上的 6006 端口的数据都会被转发到远程机器上的 127.0.0.1 地址的 6006 端口。

5 SSH概念详解

以下转自:https://cloud.tencent.com/developer/article/2324459

SSH(Secure Shell)是一种加密的网络协议,用于安全地远程登录和执行命令。除了远程登录外,SSH还具备其他功能,其中一个重要的功能就是端口转发。SSH端口转发是一种将网络流量从一个端口转发到另一个端口的机制,通过SSH通道进行安全传输。在本文中,我们将详细介绍SSH端口转发的概念、类型和用途。

5.1. SSH端口转发的概念

SSH端口转发是一种通过SSH协议在本地和远程主机之间建立安全通道,实现端口之间的数据转发。它允许您在不直接访问目标主机的情况下,通过安全的SSH连接来访问该主机上的服务。通过SSH端口转发,您可以将本地端口与远程主机上的服务端口相关联,使得在本地主机上运行的应用程序能够通过SSH隧道与远程主机上的服务进行通信。

5.2. SSH端口转发的类型

SSH端口转发有三种常见的类型:本地端口转发(Local Port Forwarding)、远程端口转发(Remote Port Forwarding)和动态端口转发(Dynamic Port Forwarding)。

5.2.1 本地端口转发

本地端口转发是最常用的SSH端口转发类型之一。它允许将本地主机上的一个端口转发到远程主机上的另一个端口。当您需要通过SSH访问位于防火墙后面或者只能在远程主机上访问的服务时,本地端口转发非常有用。通过本地端口转发,您可以在本地主机上创建一个监听指定端口的SSH隧道,将该端口上的流量转发到远程主机上的指定端口。这样,您就可以通过本地主机上的该端口与远程主机上的服务进行通信。

5.2.2 远程端口转发

远程端口转发是另一种常见的SSH端口转发类型。它允许将远程主机上的一个端口转发到本地主机上的另一个端口。当您需要将远程主机上的某个服务映射到本地主机上,或者需要远程主机上的其他计算机访问本地主机上的服务时,远程端口转发非常有用。通过远程端口转发,您可以在远程主机上创建一个监听指定端口的SSH隧道,将该端口上的流量转发到本地主机上的指定端口。这样,远程主机上的流量就可以通过SSH隧道传输到本地主机上的指定端口,实现服务的访问。

5.2.3 动态端口转发

动态端口转发是SSH端口转发的另一种类型,也称为SSH动态代理。与本地端口转发和远程端口转发只能将一个端口进行转发不同,动态端口转发可以创建一个动态代理通道,将本地主机上的多个端口转发到远程主机上。通过动态端口转发,您可以在本地主机上创建一个监听指定端口的SSH隧道,将本地主机上的流量通过SSH通道转发到远程主机上,然后再由远程主机发送到最终的目标地址。动态端口转发通常用于代理服务器或通过中间节点访问特定网络资源。

5.3. SSH端口转发的用途

SSH端口转发具有广泛的用途,以下是其中一些常见的应用场景:

5.3.1 安全远程访问

通过SSH端口转发,您可以安全地访问位于防火墙后面的远程主机或仅在内部网络中可访问的服务。通过建立SSH隧道,您可以将本地主机上的某个端口转发到远程主机上,然后通过SSH连接进行访问。这样,您就可以使用SSH协议的加密和身份验证功能来保护远程访问的安全性。

5.3.2 跨越网络限制

在某些情况下,您可能面临着网络限制,无法直接访问某些服务或资源。使用SSH端口转发,您可以绕过这些限制,通过建立安全的SSH通道将流量转发到允许访问的网络上。这对于跨越防火墙或访问受限制的网络资源非常有用。

5.3.3 加密流量传输

SSH端口转发不仅仅用于访问远程服务,还可以用于加密流量传输。通过将本地主机上的流量通过SSH隧道转发到远程主机上,然后再由远程主机发送到最终的目标地址,您可以确保数据在传输过程中受到SSH协议的加密保护。这对于传输敏感数据或在不受信任的网络上操作非常重要。

5.3.4 跨越 NAT 网络

NAT(Network Address Translation)是一种常见的网络配置,用于在私有网络和公共网络之间转换IP地址。当您需要在私有网络中访问公共网络上的服务时,NAT可能会导致问题。通过使用SSH端口转发,您可以将本地主机上的流量通过SSH隧道转发到公共网络上的服务。这样,您可以绕过NAT限制,实现私有网络与公共网络之间的通信。

5.3.5 安全代理

动态端口转发可以用作安全代理,通过建立动态代理通道将本地主机上的流量转发到远程主机上。这对于通过中间节点访问受限制的网络资源非常有用。通过SSH端口转发,您可以在本地主机上配置代理设置,使得所有的网络流量都通过SSH隧道转发到远程主机上,然后再由远程主机发送到最终的目标地址。

5.4 结论

SSH端口转发是一种强大而灵活的功能,通过安全的SSH连接,可以将流量从一个端口转发到另一个端口。本文详细介绍了SSH端口转发的概念、类型和用途。本地端口转发、远程端口转发和动态端口转发是SSH端口转发的三种常见类型,它们分别适用于不同的应用场景。通过SSH端口转发,您可以实现安全远程访问、跨越网络限制、加密流量传输、跨越NAT网络和安全代理等功能。

要使用SSH端口转发,您需要在本地主机和远程主机之间建立一个安全的SSH连接,并配置相应的端口转发规则。使用适当的命令和参数,您可以轻松地设置和管理SSH端口转发。

总而言之,SSH端口转发是网络安全和远程访问中重要的工具,它为用户提供了安全、灵活和可靠的数据传输和访问方式。通过合理的使用和配置,SSH端口转发可以帮助用户克服网络限制,保护数据安全,并提供高效的远程访问体验。

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

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

相关文章

线上服务突然变慢,卡了很久都出不来

文章目录 0、架构1、现象2、查看服务器指标2.1 cpu负载不高2.2 内存指标2.3 硬盘指标2.4 错误日志2.5 大量的tcp连接为TIME_WAIT 3、总结 0、架构 nginx—>httpd—>postgres 单体服务 1、现象 进入页面非常慢。。。 2、查看服务器指标 2.1 cpu负载不高 如下图&…

vue3学习(三)

前言 继续接上一篇笔记,继续学习的vue的组件化知识,可能需要分2个小节记录。前端大佬请忽略,也可以留下大家的鼓励,感恩! 一、理解组件化 二、组件化知识 1、先上知识点: 2、示例代码 App.vue (主页面) …

Captura完全免费的电脑录屏软件

一、简介 1、Captura 是一款免费开源的电脑录屏软件,允许用户捕捉电脑屏幕上的任意区域、窗口、甚至是全屏画面,并将这些画面录制为视频文件。这款软件具有多种功能,例如可以设置是否显示鼠标、记录鼠标点击、键盘按键、计时器以及声音等。此…

BookxNote Pro 宝藏 PDF 笔记软件

一、简介 1、BookxNote Pro 是一款专为电子书阅读和学习笔记设计的软件,支持多种电子书格式,如PDF和EPUB,能够帮助用户高效地管理和阅读电子书籍,同时具备强大的笔记功能,允许用户对书籍内容进行标注、摘录和思维导图绘…

解锁数据奥秘,SPSS for Mac/WIN助您智赢未来

在信息爆炸的时代,数据已成为推动社会进步和企业发展的核心动力。但如何将这些海量数据转化为有价值的洞见,却是摆在每一位决策者面前的难题。IBM SPSS Statistics,一款专业的统计分析软件,凭借其强大的功能和易用的界面&#xff…

机械产品3d模型网站让您的展示内容更加易于分享和传播

为助力企业3D产品演示网站获得更多曝光和展示特效,华锐视点3D云展平台提供强大的3D编辑引擎,以逼真的渲染效果,让您的模型展示更加生动逼真。让客户也能轻松操作的3D产品演示网站搭建编辑器,引领3D展示的新潮流。 3D产品演示网站搭…

总结 HTTP 协议的基本格式

一、HTTP 是什么 HTTP ( 全称为 " 超文本传输协议 ") 是一种应用非常广泛的 应用层协议 . HTTP 诞生与 1991 年 . 目前已经发展为最主流使用的一种应用层协议 . HTTP 协议目前有三个大版本: HTTP / 1 和 HTTP / 2 都是基于TCP 传输控制协议传输数据。最新版本的…

14.Redis之JAVASpring客户端

1.引入依赖 此时就会引入操作 redis 的依赖了~~ 2.yml配置 spring:redis:host: 127.0.0.1port: 8888 3.准备 前面使用 jedis,是通过 Jedis 对象里的各种方法来操作 redis 的.此处Spring 中则是通过 StringRedisTemplate 来操作 redis .最原始提供的类是 RedisTemplateStrin…

NGINX完全指南_实现高性能负载均衡的进阶实操指南

欢迎阅读 2024 版《NGINX 完全指南》。OReilly 已连续九年出版《NGINX 完全指南》,我们不断进行更新以跟上 NGINX 做出的诸多改进。如今,NGINX 是全球最受欢迎的 Web 服务器。该产品于 2004 年首次发布,并不断发展,以满足现代应用…

防火墙技术基础篇:NAT转发之——Smart NAT(No-PAT和NAPT结合)

防火墙技术基础篇:NAT转发之——Smart NAT(No-PAT和NAPT结合) 传统的NAT技术在处理大规模网络和复杂应用场景时存在一定的局限性。为了解决这些问题,一种名为Smart NAT的新型网络技术应运而生。本文将详细介绍Smart NAT的概念、原…

mybatis关联查询使用resultMap查询到了多条,结果返回一条。

今天在写代码时候,遇到了一个很让我费解的问题,在使用关联查询的时候,在明明数据库里面,已经查到了两条数据,结果resultMap这个集合里面,就只返回一条数据。 数据库的SQL: mybatis的xml里面的r…

Linux系统编程学习笔记

1 前言 1.1 环境 平台:uabntu20.04 工具:vim,gcc,make 1.2 GCC Linux系统下的GCC(GNU Compiler Collection)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执…

SAM遥感图像处理开源新SOTA!在GPU上实现40倍加速,不损准确性

在遥感图像处理领域,通过SAM捕捉复杂图像特征和细微差异,可以实现高精度的图像分割,提升遥感数据的处理效率。这种高度的准确性让SAM遥感展现出了比传统方法更优越的性能。 不仅如此,这种策略灵活普适的特性还能拓展遥感技术的应…

苹果手机数据不慎删除?这4个方法果粉必看!

苹果手机该怎么恢复丢失的数据呢?有时候会因为使用不当或者是被他人误删等原因,导致重要的数据丢失,这时我们需要找回丢失手机数据,小编给大家分享4种恢复苹果手机数据的技巧,大家赶紧来学一学吧! 一、iclo…

元宇宙vr美术虚拟展馆激发更多文化认同和互鉴

科技引领创新潮流,借助前沿的Web3D技术,我们为用户打造了一个沉浸式的纯3D虚拟空间体验平台:元宇宙线上互动展厅。您只需通过网页即可轻松访问这个充满未来感的互动平台。 在这个独特的虚拟环境中,用户可以轻松创建个性化角色&…

JSP简介——[JSP]2

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…

决策树算法实战

本实战主要目标是讲解如何使用sklearn库来构造决策树,包括其中的一些参数的使用,以及参数调优对模型精确度的影响。 1. 数据处理 导入Pandas和Matplotlib两个库。 # 导入Pandas和Matplotlib两个库 %matplotlib inline import matplotlib.pyplot as pl…

svg画简单的立方体

开发背景 要开发一个拖拽的大屏项目,其中涉及到一个装饰组件,是一个立方体cube,要求颜色可以修改,大小可以拖拽改变。 效果如下 分析 经过我一番奇思妙想,决定用svg实现,因为对svg比较熟悉。那就先来在草…

数据大屏vue3+ts+axios+MockJS+dataV+echarts

一、官网/文档 vue3:https://cn.vuejs.org/api/TypeScript:https://www.tslang.cn/docs/handbook/basic-types.htmlaxios:http://www.axios-js.com/zh-cn/docs/MockJS:http://mockjs.com/dataV:http://datav.jiamingh…

利用预测大模型完成办公室饮水机剩余热水量

背景 在每天上班的时候,很多同事都有喝热水的习惯,但是饮水机内的热水量总是比较少的,如何避免等待,高效的接到热水是我接下来要做的事情的动机。 理论基础 在大量真实数据的情况下,可以分析出用水紧张的时间段和用水…