这篇文章主要讲如何在Android系统上连接OpenVPN。
一般原厂固件
- 首先要获取root权限,请自行搜索相应机型的解决方案。其次,如果没有BusyBox的话请用这个app安装:BusyBox(在原版电子市场里搜索并下载安装);
- 在原版电子市场里搜索并下载安装OpenVPN Setting和OpenVPN Installer;
- 打开OpenVPN Installer,选择安装OpenVPN。
- 在跳出的第一个窗口中,选择/system/bin ,将OpenVPN的二进制文件安装到/system/bin目录下。
- 在跳出的第二个窗口中,选择/system/xbin/bb将ifconfig和route这两个命令连接到/system/xbin/bb下。(可能无效,需要在后面人工修正)
- 以上步骤会跳出su授权,必须允许
- 安装完成后,打开OpenVPN Setting
- 点Menu,选Advanced,点击Path to OpenVPN binary,将目录改为/system/bin/openvpn,并返回
- 在SD卡根目录下创建openvpn文件夹,将你的VPN.opvn,ca.crt等配置文件全部复制到新建的openvpn文件夹。OpenVPN Setting完全兼容PC上的OpenVPN的配置文件,包括自动输入用户名和密码的选项。
- 点击你新加的配置文件连接,成功后按菜单键,选“Fix DNS”,将DNS服务器改成8.8.8.8。
如果因为RP问题出现以下错误:
cannot allocate tun/tap dev dynamically
linux ifconfig failed: could not execute external program
请继续阅读下文:
第一个错误是由于你的系统缺少tun.ko驱动,请google之,一般和Linux内核有关,同一系列硬件类似的机型有可能通用,比如moto的 defy和里程碑2就可以通用。下载完毕后,你需要将它粘贴到/system/lib/modules/目录下,该操作需要RE管理器来执行。然后通过 ADB或Android Terminal Emulator执行如下命令:
insmod /system/lib/modules/tun.ko
1 | insmod /system/lib/modules/tun.ko |
如果该命令报错,则说明tun.ko文件的版本和os不兼容,你需要找到符合你os的版本。
成功后,请参照如下步骤:
- 打开openvpn settings,按菜单键选择advanced,勾选”Load tun kernel module”
- 点击“Tun module settings”,再点击“Load module using”,选择“insmod”,点击“Path to tun module”,输入tun.ko路径“/system/lib/modules/tun.ko”
如果出现第二个错误
通过ADB或Android Terminal Emulator执行如下命令:(确认目录存在,不存在就新建,并给与权限)
ln -s /system/bin/ifconfig /system/xbin/bb/ifconfig
ln -s /system/bin/route /system/xbin/bb/route
ln -s /system/bin/route /system/xbin/bb/route
1 2 | ln -s /system/bin/ifconfig /system/xbin/bb/ifconfig ln -s /system/bin/route /system/xbin/bb/route |
这下应该差不多了,如果还有问题的话请寻求社区支持吧。
CyanogenMod固件
CyanogenMod固件是支持OpenVPN的,请参考:http://www.cyanogenmod.com/features/openvpn。所以你只需安装一个OpenVPN Setting,无需任何额外配置,装好后从一般原厂固件中的第七步开始配置就可以了。
补充
在Google Play商店里有这么一个程序:TUN.ko Installer 可以帮助你安装tun.ko驱动。
没有评论:
发表评论