Total Pageviews

Monday, 10 September 2012

关于SSHTunnel / GAEProxy / ProxyDroid 这三个项目的faq

有一些经常问到的问题,在这儿统一解答一下:
1. 是否一定要 ROOT 权限?
一定需要。由于 Android 系统本身并没有提供完善的代理实现,所以必须借助于 iptables 这个模块来实现流量代理与转发,而运行 iptables 需要 ROOT 权限。
2. 是否一定需要 iptables 模块?
一定需要。理由同上。
3. 如何确认自己的 ROM 支持 iptables?
一般来说,只要系统原生支持 tether 的都支持 iptables。手动确认的方法是在 adb 下,执行 “iptables –L –t nat”,若没有提示找不到 module 则可以确认为支持 iptables。
4. 是否 ROM 中包含名为 iptables 的执行文件,即可以认为是支持 “iptables”?
准 确的来说,应该是需要 ROM 的 kernel 中编译进了 Netfilter / NAT 模块,并至少支持 DNAT 和 REDIRECT 两种转发模式中的一种。对于一些个人开发者的第三方 ROM,由于其水平有限或缺少相关的技术支持,会缺少对 iptables 的支持,即使他们提供了 iptables 的二进制文件。
5. 为什么会无法访问一些 https 网站?
受到 DNS 污染的影响,老版本中会存在无法访问某些 https 网站的问题。对于没有 ROOT 权限或 iptables 支持的用户,若自行在浏览器中设置代理,也会遇到这种情况。
6. 升级到新版本后,为什么会无法使用?
每次版本更新后,由于测试不充分等原因,确实有可能引入一些 Bug。遇到类似情况,请前往项目网站下载老版程序重新安装,以确认遇到的问题是否是由更新造成。另外,建议每次大版本号更新时(如 1.4.X 更新到 1.5.X),请卸载之前版本再重新安装。
7. 用泰坦备份或其他备份工具恢复 App 后为什么无法使用?
请不要使用备份工具备份或恢复此系列 App,因为会破坏数据区的执行文件和权限,造成 App 无法正常运行。
8. 为什么开启代理之后依然无法 ping 通一些网站?
由于我们并没有转发 UDP 流量,因此也不会转发 ICMP 数据包。在无法直接连通的情况下,自然也无法正常 ping 到对方服务器。另外,无法 ping 通服务器并不代表无法与其通信。
9. 为什么会有广告,如何去掉?
GAEProxy 和 ProxyDroid 这两个 App 中有置顶广告,其中前者的收入会投入到 App 的再开发及相关服务器的部署(如 DNS 代理)。若实在觉得广告碍眼,可以从源代码自行编译没有广告的版本或利用 hosts 工具全局屏蔽广告。
10. 如何获得源代码?
这三个项目都是开源项目,且都依照 GPLv3 发布源代码。源代码及文档见各自的项目网站:
SSHTunnel: http://sshtunnel.googlecode.com

GAEProxy:   http://gaeproxy.googlecode.com

ProxyDroid: http://proxydroid.googlecode.com
11. 如何参与到项目中来?
参与到项目的方法包括:提交 Bug Report 或者改进建议,也可以直接提交 patch。对于后者,我们会在第一时间做出反馈,并将修改合并到主分支中。
12. 是否可以修改源代码后另行发布?
可以,只要修改后的项目也依照 GPLv3 发布即可。
13. 是否可以捐助这几个项目?
这三个项目都不支持任何形式的捐赠,但欢迎各位通过参与到项目中(提交 issue 等)来帮助我们开发出更好的 App。
14. 项目中都用到了那些开源组件?
redsocks:用于 iptables 的转发功能。
dnsproxy:cmwrap的子项目,用来代理 DNS 流量。
proxylist: TorProject 中的代码,以实现分应用代理。
cntlm: ProxyDroid 中的 ntlm 验证模块。
iptables: DroidWall 项目提供的二进制文件。
GAppProxy: GAppProxy 客户端代码。
WallProxy: WallProxy 客户端代码。
GoAgent: GoAgent 客户端代码。
Python4Android:用来在 Android 系统中执行 Python 脚本的运行时环境,以依赖包形式发布。
另外还有一些发布在 StackOverflow 上的代码片段,在这里不再详细介绍.

from http://madeye.me/2011/08/22/faq

related post:  http://briteming.blogspot.com/2012/09/android-sshtunnel.html
http://briteming.blogspot.co.uk/2012/09/androidgae-gaeproxy.html
 http://briteming.blogspot.co.uk/2012/09/proxydroid.html
(http://briteming.blogspot.co.uk/2012/09/proxoid-http-proxy-for-android.html)