史上最详细!在iPhone/iPod/iPad上连接OpenVPN教程

作者: Everywill  来源:http://westlife.la/765.html

苹果的产品真是让人又爱又恨,爱的是它怎么看怎么喜欢的设计,恨的是乔大叔对“用户体验”的偏执。看着谷歌2010 I/O大会上Froyo赢得的一次又一次欢呼,我不禁想到一向把最前沿的技术融入产品的苹果会不会因为它的封闭而在这一次彻底败给开源的Android。 毕竟在全球开发者的共同智慧下Android趋于完美也必然只是时间问题。就像Android的支持者一样,作为一名资深果粉我有义务为我所爱的产品贡献 自己的一点力量,即使苹果不让,我们在越狱之后依然可以让不完美的它变得完美!

网上关于在Android上实现OpenVPN的教程很多,而针对iPhone/iPod/iPad的却很少,而且似乎是同一篇传来传去,没什么区 别。这些教程最大的问题一是不详细,只适合有一定经验的玩家;二是局限性大,只介绍了使用证书验证的方式,而对现在越来越普遍的user/pass验证方 式没有涉及。于是萌生了写一篇完整教程的想法,免得大家像我一样痛苦……

OpenVpn的好处我就不多说了,我想看这篇教程的同学都有一定程度的了解。由于众所周知的原因VPN成了现在最热门的网络服务,但是苹果给我们 的选择只有L2TP(其实应该叫L2TP over IPSec), PPTP和Cisco IPSec三种,而对于在很多方面更具有优势的OpenVPN并没有给予支持,那么我们就不能使用OpenVPN吗?答案当然是否定的!

实验环境:iPhone 3GS 3.1.2(iPod Touch/iPad应该也没问题,目前已知无论黑雨还是其它自制固件都没问题,3.1.3&Spirit未验证)

———————————————————

需要:1.先越狱,这是一切的前提

2.如PUTTY(点击进入下载页)之类的终端工具,用于在PC上登录你的iPhone。如果机器上有Mobile Terminal也行,前提是你受得了在如此小的键盘上做命令操作

3.WinSCP(点击进入下载页)或91手机助手(如果你不鄙视91的话)一类的工具,目的是从PC向iPhone传文件。

4. OpenVPN的相关文件,这里有三种可能性:

①conf.ovpn+ca.crt+client.crt+client.key共四个文件

②只有conf.ovpn一个文件但服务器证书客户端证书和密匙  都是集成其中的

③只有一个conf.ovpn或者ca.crt+conf.ovpn两个文件但无客户端证书和密匙,即user/pass验证方式。

(以上文件名仅供参考,但扩展名应该是一样的)

简而言之,无论是那种形式的相关文件,只要计算机能用这些文件连接到服务器,那么在iPhone上一般都没有问题,只不过后面具体操作可能有些不同,下文会详细介绍。

———————————————————

步骤:

1.进入Cydia,下载必要的软件包:OpenSSL,OpenSSH,SBSettings,OpenVpn Toggle for SBSettings

(这里要求安装SBSettings是因为①②两种配置形式可以利用它的OpenVpn Toggle for SBSettings插件一键开启关闭OpenVPN。而无论任何配置都要安装OpenVpn Toggle for SBSettings,因为它包含OpenVPN主程序而且安装它时一并安装的依赖包libpcap是必需的!)

2.为了方便起见,把.ovpn文件重命名为conf.ovpn。并用写字板等工具打开此文件确认其配置,尤其是①或③的配置文件形式中要重点确认如下这一部分信息:

ca ca.crt     这里ca是你的服务器证书名,一般都是ca,无需更改

cert my.crt   这里的“my.crt”与你的客户端证书名称一致

key my.key    这里的“my.key”与你的密匙名称一致

如果这些文件名前有路径请将其删去只保留文件名。

3.使用WinSCP或91手机助手将这些文件复制到/var/mobile/Library/OpenVpn文件夹内,并在将OpenVpn文件夹的组和拥有者都设为mobile

4.打开/var/mobile/Library/SBSettings/Commands/com.offinf.openvpnup并将内容编辑为:

#!/bin/sh

/bin/rm /var/mobile/Library/SBSettings/Toggles/OpenVpn/OFF

cd /var/mobile/Library/OpenVpn/

“/usr/bin/openvpn-iphone –script-security 2 –config /var/mobile/Library/OpenVpn/conf.ovpn” &

(此步骤目的是配置OpenVpn Toggle for SBSettings插件使其生效,因为使用这个快捷开关不会有任何信息显示,也不会有输入框出现让你输入用户名和密码,所以目前仅对非 user/pass验证方式有效,即对①和②配置形式有效,不过我想应该可以让它实现自动密码输入,只是我还没有试验成功,那位高手研究出来了记得和大家 共享一下啊!)

5.打开PUTTY或者其他终端工具,在WinSCP上可以快捷启动,即点击工具栏中的“命令“—>在PUTTY中打开。输入root密码,默认为alpine。(建议一定要改默认密码!去年的蠕虫病毒就是利用默认密码入侵的。如何修改密码请移步至http://bbs.weiphone.com/read-htm-tid-553498.html

输入(鼠标右键即为粘贴):

cd /var/mobile/Library/OpenVpn/

转到OpenVpn文件夹

如果你的.key文件中有密码,则输入:

cp my.key my.key.orig

openssl rsa -in my.key.orig -out my.key

其中“my”换成你的密匙文件名

现在可以试一试能不能正常连接了,输入:

openvpn-iphone –script-security 2 –config conf.ovpn

看到如下信息即为连接成功

在手机上打开Safari进入

123cha.com看看自己的IP是不是变了?

注意!1.以上操作均要在root权限下进行,否则连接不成功!

2.必须用正确的方式断开连接,否则服务器要过一段时间才会知道你已经断开,在这期间无法重新建立连接,PUTTY等终端为按CTRL+C键,切不可直接关闭窗口!

6.(配置方案③请直接无视这一步,下面才到你们)打开SBSettings(手指在手机状态栏上扫过)

点More—>Set Toggles开启OpenVpn开关然后按HOME键接着会respring。这时候再开启SBSettings就会发现OpenVpn开关已经出现在这里了

点击后稍等一会儿,然后上123cha.com看IP变了没.

7.方案③(user/pass验证)的人命就比较苦了!因为只能通过手机上的终端操作了,没有的话快去Cydia下一个吧,搜Mobile Terminal即有。不过别害怕,不是让你每次想用都要输入那么长的命令,我为咱们这些苦命人想出了一些偷懒的办法:打开Terminal点击黑色背景 的任意位置就会出来一个菜单

这里是一些常用的命令,我们的目标是吧我们使用OpenVPN所要用到的一系列命令放到这个菜单里,这样每次使用按几个键就OK了,虽然比那些可以 直接用开关的同学们要多按几下,不过在好的解决办法出现之前这就算不错了!点击左上角运营商名称那个位置,即出现设置菜单(点电池图标则为4个终端切换)

在其中的Menu一项便是对快捷菜单的设置,根据自己的喜好设计吧,怎么顺手怎么来,还可以给每个键设置二级、三级目录。我的是这样的,供大家参考!

需注意的是,我把原来的exit键换了位置,但是exit键不能没有,因为Terminal这个程序在按HOME键后并不会退出,而是在后台运行, 这也是我们可是在连上VPN后可以任意操作其他应用的原因,所以退出必须用这个键(当然用进程管理软件强关也可以,不过不建议这样做)。结论是你可以选择 把它放到别的位置,可是不要索性把它删掉。另外,操作的顺序是依次输入:

Su       我的设置里对应root按钮

Yourpassword       你的ROOT密码, 我的设置里对应key按钮

/usr/bin/openvpn-iphone –script-security 2 –config /var/mobile/Library/OpenVpn/conf.ovpn 我的设置里对应run按钮

所以设置这三个按键就可以了。如果你像我一样懒,那么也可以把用户名和密码也设置成按键(我的设置里的user和pass),这样在每次运行的时候 你就一个字也不用输入了。另外与要注意的是由于iPhone的虚拟键盘没有CTRL键所以断开连接不是用CTRL+C而是用手指从左下向右上滑一下,这个 神奇的手势操作也可以自定义,就是设置的Gestures这一项

圆环的八个方向可以设置八个命令与手势相对应,不过我认为默认的设置非常合理,建议保留。

最后,连接成功会返回如下信息

这时按HOME键返回就可以尽情enjoy啦!用完了别忘了返回Terminal断开连接并退出哦。

最后广告一下,本人提供付费高速OpenVPN+PPTP服务,感兴趣的朋友可以联系我。


没有评论: