为iPad/iPhone建立ssh tunnel翻墙

原文:http://luyus.info/?p=192

伟大的墙是永恒的话题,在pc上翻墙已经是家常便饭。在iPad,iPhone上一般用VPN,可是我已经买了ssh帐号,我不能为了iPad重新买个VPN吧,而且VPN还又流量限制。怎么办?动手翻吧就。折腾了好几个晚上居然都没成功,今天终于搞定了。

原本不想折腾,可是该死的GFW越来越不要脸了。以前在iPad上购买的国家地理,Empire等杂志都居然不能下载了。第一时间怀疑是网络问题,不可能两个杂志同时间全世界都不能下载吧。找了个免费的VPN试了一下,果然能下载了。验证了我的疑问,既然如此,我只好想办法在iPad上也用ssh tunnel翻墙吧。

原理:

使用ssh tunnel翻墙有多种方法,这里采用如下方法:

  1. 在iPad上建立ssh tunnel通道,
  2. iPad配置代理,
  3. 将所有的http访问都通过此通道,
  4. 从而翻墙一跃而过

先决条件:

  1. ssh 帐号
  2. 越狱的iPad/iPhone
  3. cydia中下载并安装:mobileterminal ,backgrounder,openSSH 应用
  4. 可以copy文件从pc至iPad文件系统中的工具,例如:windows下的ifunbox,itools,Mac系统下的iExplorer

步骤:

  • 打开mobileterminal,在命令行输入ssh命令
ssh -D localport username@host -p port -N

简单说明一下:

localport是建立通道后,本地侦听的端口

username是你的ssh用户名

host port 分别是你的ssh服务的域名和端口。

例如:

ssh -D 7070 luyu@fuckthegfw.com  -p 80 -N

  • 首次连接会提示(yes/no),输入“yes”,然后输入密码。
  • 按住Home键,当出现background enable时松手,这个步骤时为了保证mobileterminal 切到后台再切入前台时保持显示和状态
  • 编辑一个文本文件,并存为overall.pac
function FindProxyForURL( url, host ) {     return "SOCKS 127.0.0.1:7070"; }
  • 利用ifunbox等工具将overall.pac拷贝到iPad的/var/mobile目录下
  • 在iPad的设置->wifi->http代理 选择“自动”,“URL”填“file://localhost/var/mobile/iphone.pac”。

 

注意:

  • 有些ssh服务器在ssh连接时会返回类似这样的错误:

Can’t Change User’s Home Dir

                       注意包含-N参数,确保登录后不执行服务器命令

  • 必需使用pac文件,如果仅仅时填写手动的代理信息,会返回protocol mismatch的错误
发表评论