Total Pageviews

Saturday, 18 February 2012

Android平台翻墙方案总结

Android平台我相对熟悉,所以简单总结一下。其实理论上都差不多,只是Windows 系统上,有一些商业公司提供的闭源翻墙工具。
1. 支持所有网络的 web proxy。一个典型的工具是 google 的移动设备的适配服务:http://gxc.google.com.hk/gwt/x?u=http%3A%2F%2Fdeveloper.android.com。类似的翻墙方式google translate的网页翻译也能实现。另外就是别的web proxy, 以前有发过总结这种项目/工具的总结 web-proxy 评测报告 。这种方式有局限,你不能触碰关键词(特别是 URL 中,这种代理一般是http的)。如果有支持 https 的web proxy 服务,就比较理想了。
2. 仅支持移动网络(如GSM, WCDMA)的 HTTP Proxy。这一般需要你在国内有一个主机,然面运行个如squid 的HTTP代理程序(我之前是在服务器上用 gappproxy 做的公共HTTP 代理,不过现在GAE已经连不上了);手机上的移动网络接入点设置中,填写HTTP代理ip以及端口。这种方式可以让自带的 chrome lite 浏览器走代理。其它的浏览器和应用程序不一定会使用这个代理。(Andorid 系统似乎可以在数据库中为每一个应用程序设置代理,但是能够保证应用程序一定使用这个代理吗?我估计不能。)
3. socks代理方案。典型的工具如是 TransProxy ,是一个简单设置全局代理的工具,可以配合connetbot 端口转发功能,做系统全局的透明代理。对于大陆用户,TransProxy 的缺陷在于不能处理dns劫持。目前我比较看好的一个项目是 sshtunnel,功能很强大,可以处理dns劫持。sshtunnel的配置有点复杂。有两种代理工作模式:a) 本地socks 代理,如果只有一个ssh帐号,需要开启这个方式;b) 远程socks代理,需要在服务器上开squid代理,这样做的优点在项目issue 里有说明:http://code.google.com/p/sshtunnel/issues/detail?id=8&can=1,不过文档不够清晰,还需完善。这种方案的原理可以看我上一篇日志中有说明,它的的好处是,可以保证应用程序使用你的代理;可问题在于,这个方案需要root权限用 iptable 做端口转发,对于普通用户门槛较高。
4. 国外VPN。目前而言,买个VPN自己用是最省心的翻墙方案,Android系统上可以直接配置。

from http://liruqi.wordpress.com/2011/04/10/bypass-great-firewall-on-android/

No comments:

Post a Comment