iTouch使用OpenVpn方法

此文系早年博客的备份,仅用于参考学习。
This article is an archival copy of my early years’ blog posts.

本人购置iPod Touch 3rd Generation已经有一段时间了,由于一直没什么时间折腾,所以破解后一系列强大的功能都没有时间来一一实现。然而,由于伟大的GFW的存在,使得iTouch的很多我能用到的正常功能无法正常工作,于是抽出一天下午来完成了iTouch上OpenVPN的配置,期间调试、安装有不少波折,在这里记录下来,方便日后自己和他人使用。

前期准备:

  1. 破解iTouch,什么版本的破解都可以,确保能访问Cydia。我的是Spirit破解,iTouch版本三代3.1.3。
  2. 在电脑上安装WinSCP,PuTTY。
    前者是为了从电脑上往iTouch上传文件,后者是命令行程序。有关WinSCP的安装和与iTouch的连接,方法网上一搜一大片,我只简单说一下:安装WinSCP,到iTouch上查看其ip地址,然后在WinSCP的session里以 用户名/密码root/alpine 来登录iTouch。PuTTY则可以直接在WinSCP的Commands里调用。另外,网上文章说用WinSCP连接iTouch需要安装BSD Subsystem,但是我在Cydia里没找到,iTouch上也没有默认安装,可依旧能够正常连接。
  3. 准备好OpenVPN的相关文件,收费的免费的都可以。我的文件是ca.crt, client.crt, client.key, XXXX.ovpn
  4. 一个临时的免费或收费VPN,可以直接在iTouch上设置并使用的。这个环节我是用到了,但是不一定所有人都要用到,因为我这里不知为何访问Cydia时十分卡,还有host unreachable的问题,好多必要的工具软件无法正常下载安装,连上VPN之后得以解决,所以我想本身使用Cydia正常的人应该可以略去此步。

至于好用的免费VPN,现在比较难找,因为天朝为了牠的和谐和稳定,屏蔽了很多VPN服务。我这里低调推荐一个:macrovpn.com。它提供7天2G的免费VPN服务,对于我们折腾iTouch是足够用了。注册的过程我不赘述,在iTouch上设置方法如下:

Settings -- General -- Network -- VPN -- Add VPN Configuration -- PPTP
Description -- 随便填写
Server -- 目前似乎只有fr1.macrovpn.com是可用的
Account -- 注册的用户名
Password -- 密码

设置步骤:

  1. 连接找到的免费VPN,在Cydia里搜索并安装OpenSSL, OpenSSH, SBSettings, OpenVPN Toggle for SBSettings
  2. 准备好OpenVPN的文件,将展名为.ovpn的文件命名为:conf.ovpn,然后用任意文本编辑器打开conf.ovpn,确认 ca ca.crt, key client.key, cert client.crt 三行中 ca, key, cert 后面对应的文件名与你的文件名相符。
    注意:若在后面的命令行操作中,提示说“Cannot load certificate file”,则在此步骤需将上述三行后面的文件名更改为绝对路径,如下:
    ca /var/mobile/Library/OpenVpn/ca.crt
    key /var/mobile/Library/OpenVpn/client.key
    cert /var/mobile/Library/OpenVpn/client.crt
  3. 用WinSCP将准备好的OpenVPN文件传入iTouch的 /var/mobile/Library/OpenVPN/ 目录下。并在WinSCP里将OpenVPN的属性中,“组”和“所有者”("Group"与"Owner")设置为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 &

可以直接在此下载我编辑好的该文件:

  1. 打开PuTTY,以用户名root,密码alpine登录。在命令行输入: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

如果经过一系列连接操作后提示:Initialization Sequence Completed,则连接成功,若连接不成功,请检查上述步骤是否有漏洞,或者重启iTouch后再试。

  1. 完成上述操作后,重启iTouch,在屏幕最上方状态栏上划一下,出现设置Toggle的界面,点击More,将OpenVPN设置为On,然后回到主界面后,在Toggle界面里点击该按钮,等一会儿之后,就可以实现翻墙了。
  2. 也有人说直接在iTouch上安装mobileterminal来完成上述命令行的操作,但是很不幸,我用mobileterminal键入测试命令后OpenVPN无法连接成功,不知为何。

我的这篇文章省略了网上其他文章里冗长的说明,我想对于一般玩家,不需要知道这些东西都是啥,知道怎么用就行了,所以我只罗列了步骤,如果有人发现当中的错误或遇到某种问题,欢迎留言或联系我。