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即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值