SSH的三种代理方式

一、SSH简介

SSH(Secure Shell)是一种常用的加密网络协议,用于远程登录和管理服务器。通过将SSH与代理功能结合,可以实现基于SSH的代理服务,其中最常用的三种代理模式是正向代理、反向代理和SOCKS代理。

二、SSH代理

1、正向代理

正向代理是指位于客户端和目标服务器之间的代理服务器,用于转发客户端发出的请求。正向代理需要客户端配置特定的代理设置,将请求发送到代理服务器,由代理服务器代替客户端向目标服务器发起请求。通过正向代理,可以实现流量过滤、内容过滤、访问控制等功能。需要注意的是,正向代理可能会对网络性能产生一定的影响,因为需要经过额外的代理服务器转发请求。

2、反向代理

反向代理是指位于目标服务器和客户端之间的代理服务器,用于接收客户端的请求并转发给目标服务器。反向代理通常配置在目标服务器端,可以隐藏真实的目标服务器地址,提供负载均衡、缓存、SSL加密等功能。与正向代理不同,客户端不需要进行特殊的代理设置,所有的请求都会被代理服务器接收并转发给目标服务器。常见的Web反向代理有Nginx、Apache等。

3、SOCKS代理

SOCKS(Secure Sockets)是一种网络协议,用于在网络层上对数据进行加密和解密。SOCKS代理是指通过SOCKS协议实现的网络代理服务。与正向代理和反向代理不同,SOCKS代理不需要在客户端或服务器端进行特殊配置,它直接在传输层上对数据包进行加密和解密。因此,SOCKS代理通常用于更通用的场景,例如通过VPN或Tor网络进行匿名访问。

在实际应用中,选择哪种SSH代理模式取决于具体的需求和场景。正向代理适用于需要对流量进行过滤和控制的场景;反向代理适用于需要隐藏真实服务器地址或提供负载均衡的场景;而SOCKS代理适用于需要实现匿名访问或加密传输的场景。

4、正向代理配置

用法1:本地222端口映射到Node-A的22

# 在Node-A启动一个222端口,映射到Node-B的22端口

[root@Node-A ~]# ssh -L 0.0.0.0:222:Node-B:22 root@Node-B

# 访问Node-A的222端口相当于访问Node-B的22端口(类似iptables的port-forwarding)

SSH的三种代理方式

SSH的三种代理方式

用法2:本地端口通过跳板映射到其他机器

# Node-A上启动2222端口,通过Node-B转发到Node-C的22端口

[root@Node-A ~]# ssh -L 0.0.0.0:2222:Node-C:22 root@Node-B

SSH的三种代理方式

# 访问Node-A的2222端口相当于访问Node-B后转发Node-C的22端口

两种用法的区别:

第一种用法本地到Node-A的数据是明文的。

第二种用法本地就是Node-A,访问本地的2222,数据被ssh加密传输给Node-B又转发给Node-C的22。

5、反向代理配置

# Node-A将自己可以访问的Node-B:22暴露给外网服务器Node-C:2222

[root@Node-A ~]# ssh -R Node-C:2222:Node-B:22 root@Node-C

连接Node-C:2222就相当于连接Node-B:PortB。使用时需修改Node-C的 /etc/ssh/sshd_config,添加:GatewayPorts yes

[root@Node-C ~]# sed -i ‘/GatewayPorts/s/no/yes/’ /etc/ssh/sshd_config

[root@Node-C ~]# systemctl restart sshd

SSH的三种代理方式

6、SOCKS代理配置

[root@localhost ~]# ssh -D Node-A:9999 Node-B

SSH的三种代理方式

[root@Node-A ~]# ALL_PROXY=socks5://Node-A:9999 git clone https://github.com/EbookFoundation/free-programming-books.git

SSH的三种代理方式

原创文章,作者:admin,如若转载,请注明出处:https://hostingchat.cn/1902.html

(0)
admin的头像admin
上一篇 2024年12月9日 上午12:00
下一篇 2024年12月14日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注