APN Proxy的实现

有一个这样的服务,号称可以翻墙加速,主要作者@Paveo 也不愿公开它的工作原理。现在我也实现了类似的。

其实原理很简单,只不过门槛很高,至少需要一台国内的VPS。

  1. 要让国内的这台VPS处于翻墙状态,可以用OpenVPN来实现,也可以利用SSH做个代理。用SSH的话记得要转换成HTTP代理,Privoxy、Polipo、3proxy等都是可以的。
  2. 需要一个共享软件,Proxy+,如果只是自己用,估计免费版够了,否则请购买商业版……
  3. 如果是用SSH的,需要设置Cascading为Non-ICP,并设为之前的HTTP代理;用OpenVPN方案的可以无视。
  4. 需要设置Proxy+的过滤规则,Access List里Objects中,添加HTTPHeader类型的规则,我只想让塞班用户使用,于是加入名为Symbian内容为*Series60*,这样HTTP Header中有匹配到的就会放行。在Rule内加入Deny !Symbian,这样不符合规则的就会被拒绝访问。
  5. 最重要的:要能让自己继续访问管理页面。上面的规则会让自己也无法访问管理页面。添加一个Object,名为UP,类型为Parameter,内容为username:password(管理员用户和密码),再添加一个Object,名为IP,类型为ClientIP,内容为127.0.0.1。接着在Rule里第一条添加为Pass UP IP,放行服务器本地的访问。

至此,APN Proxy就只有HTTP Header符合规则的用户才能访问了。

如果是要给其它手机用户使用,需要找出他们的HTTP Header的特征码,我是用服务器上装Fiddler来捕捉分析的。

如果是可信赖的人用,OpenVPN可以配合chnroutes来避免国内网站访问过慢。

最后吐槽一下UCWeb的内置域名代理支持,居然用的UA是Mozilla/5.0 (windows; U; Windows NT 5.1; zh-CN; rv:1.7.12) Gecko/20050919 Firefox/1.0.7

Tags: 技术