OpenVPN on G1(2010-05-10)
昨天,一星期难得一天的假期,全耗在usbnet上。最终还是没找到解决方法,我的G1还是不能在CentOS上通过USB共享无线网络。网上找到有讨论,说升级了内核后,就轻松连上了(该讨论的地址:http://www.centos.org/modules/newbb/viewtopic.php?topic_id=24127&forum=40#forumpost95581。虽然该帖讨论的是HTC Tattoo,但跟G1是一样的)。果然2.6.18的内核太年迈了,但我又不想更换内核,于是时间都白搭进去。
在找的过程中,发现有人讨论OpenVPN在Android(特别是在CyanogenMod Rom)上运行。相关讨论几文章如下:
1)CM的OpenVPN设定指南:http://www.androidin.net/bbs/viewthread.php?tid=60483&extra=&page=1
讲述N1上设置内置的OpenVPN,被网友多处转帖。我用的CyanogenMod-4.2.15.1也集成OpenVPN的支持,就是一直没搞过。该设置最麻烦的地方是导入证书。Android只支持PKCS12格式的加密证书,于是需要转换格式。看过一些文章后,终于转换出.p12文件(参考:常见证书格式及相互转换)。导入格式还有个问题,原来CyanogenMod Rom只能导入文件名为certs.p12的证书,这个我看了源码才知道,杯具~~更杯具的是,发现我申请的OpenVPN没有提供用户证书及密钥,于是不能用这种方法进行设置。
导入证书的相关讨论:
How To Install Openvpn Certs?:
http://forum.cyanogenmod.com/index.php?/topic/1732-how-to-install-openvpn-certs/page__p__30859__hl__openvpn__fromsearch__1s
installing cert and key for openvpn:
http://forum.cyanogenmod.com/index.php?/topic/304-openvpn-and-certificates/page__hl__openvpn__fromsearch__1
CyanogenMod Rom的源码地址:
http://github.com/cyanogen/CyanogenMod
导入证书的相关源码(见getCertFile方法):
http://github.com/cyanogen/android_packages_apps_CertInstaller
/blob/donut/src/com/android/certinstaller/CertInstaller.java
2)安装OpenVPN Settings:Android G1 Openvpn设置
该文章讲述得比较详细,不过由于TunnelDroid的作者改为直接支持OpenVPN Settings了,所以只要直接从Market下载并安装OpenVPN Settings就可以了。然后建立目录/sdcard/openvpn,把OpenVPN的相关配置文件放进去就可以了。
拿着手机“翻墙”很有Hacker味道,twitter、facebook、youtobe等都可以直接上了。不过我最高兴的是,可以直接访问http://developer.android.com/。
PS. 1)OpenVPN最难的,还是找个免费的OpenVPN服务器
2)高中时发现个软件叫SoftEther的可以建立虚拟局域网的,现在该软件已经变成PacketiX VPN了。该软件由日本筑波大学开发的,据说具有优秀的防火墙穿透能力。官方网站:http://www.softether.co.jp/