白酒清茶无别事
我在等风也等你

shadowsocks原理分析以及App定向免流量原理探讨

    最近这段时间没更新文章,主要时间都用于研究iOS端的Potatso源码了,原项目是用swift写的,本人以OC的语法重新写了一个App。最近难得抽出时间,故写文章记录下所遇到的问题,以及学到的知识。

我将以一个完整的请求方式,详述shadowsocks是如何工作的,具体源码的解析,以后整理再发。

—> 你手机上的网络请求
local–>小火箭,影梭
server–>国外ip的服务端
目标–>访问的地址,如谷歌,脸书

shadowsocks 原理

    shadowsocks分为客户端版和服务器版,通过两端的配合,达到加密通讯的效果,从而使互联网访问更安全,不用担心被第三方窃听。

我们以手机的一个请求示例来说:

  • 当一个App发出网络请求,先是被本地的shadowsocks拦截(影梭或者粉色SSR),通过代理规则判断,是否需要进行代理转发。
  • 如果满足代理转发条件,则将会对请求进行加密(这个加密方式必须提前和服务端商量好协调一致,否则服务器不能解密),然后发送给服务端(通常是国外的服务器),由服务端解密获取真实的目标地址,在进行请求。
  • 服务端在将返回的结果进行加密,传回给客户端(影梭或者粉色SSR)
  • 客户端再进行解密,获取真实的返回信息,给出请求的响应结果

    当然,在iOS系统上,大致逻辑是一样的,只是多了几个细节,后面将会单独写篇文章记录iOS开发的shadowsocks的流程。v2ray 原理其实差不多,只不过在加密方式上,v2ray可以自行开发自己的加密,GFW检测难度上肯定比shadowsocks强点。

各大运营商定向免App流原理探讨

    其实我也只是猜想,如果有不对的地方,欢迎大家指出。

    流量对于各大移动运营商来说,就像自来水一样。你作为一个个体户,少用一点或者多用一点免费流量,对他成本的影响可谓忽略不计。那关于你使用的到底是计费流量还是免费流量,就由移动运营商的那套计费系统说了算。那他到底是如何判断是免费流量还是计费流量呢?

  • 指定服务器免费:比如联通联通手机营业厅,只有真实访问到联通手机营业厅的服务器才可以免流,通过代理IP或者伪装HOST均不算免费流量。局限性太强,就那几台服务器。不能对接CDN。仅适用联通自己业务
  • 指定域名免费:这也就是联通推广各种互联网资费卡,各种App免流的方式。成本低廉,仅仅将合作App的主域名添加到免流量名单即可,开发人员也不需要做别的操作。缺点是容易被滥用,通过shadowsocks加密,伪装下HOST即可免流。
  •  带token验证:这种就是大王卡配合QQ浏览器或者鱼卡配合UC浏览器,当你的访问请求带这种时效性的token之后,所有的网络请求都核算为免费流量,这也是市面上通过QQ浏览器达到全免的原理。优点安全性高,不会被滥用,缺点是需要合作商的App开发者配合开发,另外也不免UDP
  • VPN代理免流:这种就是联通自己推出的流量宝,或者沃商店的免流业务,因为VPN是全局接管手机上的所有网络请求,因此可以达到全局免流的效果,不需要运营商做任何操作,仅需要自己开发完成,技术上来说比前几个方法都要安全,但成本相对高一点。

     shadowsocks不免udp的原因是,socks本身是不支持UDP转发的,如果想支持免UDP,不仅仅得支持UDP转发,还得支持UDP加密之后再转发,也需要伪装HOST才行。目前在iOS平台我还在研究,如果你有好的想法可以留言大家一起讨论。以上都是仅做学习知识记录,如果出错的地方也请大家指出来。不做政治商业讨论。

赞(8) 打赏
未经允许不得转载:十一同学 » shadowsocks原理分析以及App定向免流量原理探讨
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏