Android上OpenVPN的设置与使用

这个问题被问过很多次,加上我自己的VPN用户也有询问这个问题,很多人参考的又是网上古老的文档,所以我这里写一篇讲解一下。

想要阅读下文,请确保你知道什么是adb及如何使用adb :-)

首先明确一下,只有Android 1.6及更高版本才默认自带了TUN驱动。没有TUN驱动,Android是无法支持任何VPN的。但是我听说过有人把tun.ko(TUN驱动文件)移植到了G3 Hero里,从而让Android 1.5也可以使用OpenVPN。这个我没有证实过,稍后补充:-)

100228 UPDATE:确实有,Modaco ROM就是基于官方Android1.5内核的ROM,自带了tun驱动。HTC Hero用户可以参考这里安装 http://blog.devep.net/virushuo/2010/02/28/androidhtc_herovpn.html

其次确认一下你的系统里有没有busybox命令。目前基本上所有自定义rom都会有busybox这个东西。busybox是在嵌入式linux系统提供基本Linux命令集的工具,官网上的介绍是busybox-The Swiss Army Knife of Embedded Linux。从它的功能上来说也确实是个瑞士军刀…呃跑题了…

安装OpenVPN

确认一下你的rom里是否已经预包含了OpenVPN。方法是:在adb shell中输入which openvpn,如果有输出类似/system/xbin/openvpn这样的字样,就说明你的rom已经预装了OpenVPN,你可以跳过安装OpenVPN的步骤了。

如果你的ROM里没有自带OpenVPN,通过以下方式安装。注意网上流传的一堆.so文件的安装方法仍然有效,但是完全没必要这么安装了。这里提供的openvpn for android二进制文件已经静态编译,不需要动态链接库的支持了:

  1. 下载http://github.com/downloads/fries/android-external-openvpn/openvpn-static-2.1.1.bz2
  2. 解压缩获得openvpn-static-2.1.1,执行adb push openvpn-static-2.1.1 /system/xbin/openvpn
  3. adb shell,执行chmod 775 /system/xbin/openvpn

以上是安装OpenVPN二进制文件的过程。

OpenVPN的使用

OpenVPN通常用数字证书进行验证,用一个.ovpn文件进行配置。将.ovpn文件、.key文件、.crt文件及ca.crt一共4个连接所需的文件放在/sdcard/openvpn/文件夹下,然后从market安装tunneldroid进行连接即可。

注意tunneldroid提供了修改DNS的选项。由于国内各个DNS基本都存在DNS污染,所以建议在tunneldroid的设置页面填一个国外的DNS,例如google的8.8.8.8

以上如有疑问请回复提出。写twitter多了不会写长文了=。=

Comments !

blogroll

social