switchyomega + ssh tunnel配置原理

最近同事给推荐了一个chrome插件特别好用,但是我起初并不知道原理,于是研究了一下,延伸了好多知识,和大家分享一下,不足之处,欢迎指正。

chrome插件:SwitchyOmega

它是用来切换和管理不同代理的chrome插件,可以轻松快捷地管理和切换多个代理设置。具体使用方法自己百度,网上好多教程。这里只做概念分析,理解原理。

那这个插件是怎么做到的呢,这就不得不提一下socks代理协议。

我们常用的网络代理协议,除了http之外,还有一个就是socks,他的特点就是通常不限制端口,所谓来者不拒,在你配置完之后,你所配置的主机的所有访问都会转给配置的指定端口代理。

ssh

刚开始我对SSH的理解就是远程连接,然而SSH隧道并非那么简单,利用SSH隧道可以干很多事,翻墙就是其中之一。

SSH动态绑定

ssh绑定有三种形式: local、remote以及dynamic,现在要说的就是ssh的dynamic,即动态绑定
这是SSH翻墙的基本原理:利用SSH动态绑定的功能。那么何谓SSH动态绑定呢?动态绑定是SSH端口转发功能的一种形式。

  • 首先,墙内的客户机跟墙外的代理服务器,建立好SSH连接,并设定动态绑定
    此时墙内客户机上的SSH会监听本地的一个端口7001
  • 客户机上的程序,将对www.youtube.com:80的请求告知7001端口的SSH,SSH将此请求通过SSH加密连接发送到墙外服务器的SSH上
  • 由于建立的动态绑定,服务器会将www.youtube.com:80的请求发送给www.youtube.com上的80端口,并在收到回复后,通过原路返回给客户机的SSH,客户机的SSH返回给应用程序
  • 在这里SSH客户端已经不仅仅是个客户端了,它同时打开了7001端口侦听本机应用程序的请求。这是SSH跟传统用法最大的区别。而服务端的SSH也不仅仅是处理客户端的请求,而是将请求转发到对应的主机和端口,这里的动态二字体现在服务端的SSH的转发目标是不固定的,是根据客户端的请求而定的。

那么如何让应用程序知道应该把请求发送给本机的7001端口呢?

答案就是SOCKS代理。

SSH隧道的搭建

利用putty连接服务器,填写服务器ip、用户名、密码,然后配置一下隧道端口

最后在浏览器或者其他应用程序上设置SOCKS代理(通过switchyomega或者浏览器自带的代理设置都可以),代理指向127.0.0.1,端口7001即可

### 回答1: SSH Tunnel 是一种网络隧道技术,可以通过安全的 SSH 连接来转发数据。它可以用来将本地网络连接到远程网络,或者将远程网络连接到本地网络。这种技术常用于远程访问内部网络中的资源,或者将本地网络中的资源暴露给远程网络。 ### 回答2: SSH隧道是一种通过SSH协议建立的加密通信隧道,用于安全地传输数据。它通过将数据包封装在SSH连接中进行传输,使得传输的数据在网络中被加密,从而保护数据的安全性。 SSH隧道的工作原理是将源主机和目标主机之间的通信数据包封装在SSH连接中,然后通过SSH连接进行传输。在建立SSH隧道时,需要指定一个本地端口和一个远程端口。源主机将本地端口的数据包封装在SSH连接中发送到目标主机的远程端口,然后目标主机将接收到的数据包解封并将其传递给目标主机上的本地端口。 通过SSH隧道,可以实现多种用途。一种常见的用途是加密和保护远程访问,例如通过SSH隧道远程登录到另一台计算机,并在加密的通道上执行命令和传输文件。另一种用途是绕过防火墙和过滤器,通过SSH隧道将数据转发到目标主机上的本地端口,可以实现对被阻止访问的网站、服务或应用程序的访问。 总而言之,SSH隧道提供了一个安全的通信通道,通过对数据进行加密,保护了数据的安全性和完整性。它可以用于实现远程访问和数据转发等功能,为网络通信提供了更高的保障。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值