使用SSH实现iPhone自动代理

对于绝大部分国内网站,正常上网,对于twitter等,自动走SSH代理,无需手工切换,这即是所谓的"自动翻墙",好处就是不影响国内网站的访问速度,不用来回切换网络。

IOS中最方便的翻墙方式是使用VPN,速度尚可,但PPTP和L2TP是不能像OpenVPN一样定义路由的,打开VPN后,所有流量均走VPN线路,浏览国内网站很慢,需要来回切换。windows下可以用脚本定义静态路由,使用Route设置脚本,实现国内网不经VPN搞定,但IOS下在cydia找了半天也没找到iptable这个命令包,所以还是用ssh吧。下面是具体使用方法:

1、越狱,并配置好ios的环境

如何越狱就不用我说了吧,随便一搜网上一大堆,越狱后如果你不知道如何ssh连接到你的ios设备可以参考我以前的一篇文章:为ipad2安装和配置gcc编译环境,当然这里没必要安装gcc环境,所以进行到第二步就OK了。

2、安装一些必须的软件包

如果你确定第一步你已经没有问题了,我们下面要继续安装一些必须的软件包。ssh连接到你的iPhone或者iPad后执行下面的命令:

  1  2  
sudo -i   apt-get install screen

然后你的ios设备上面将会安装好screen这个软件包,不知道screen是什么的同学可以参考这里

执行下面的命令:

1  2  3  
screen �S autossh ssh -D 1987 [用户名]@[ip地址]   #如果你自定义了ssh的端口号,记得使用-p 加你的端口号,如下:   ssh -D 1987 �p [端口号] [用户名]@[ip地址]

3、配置PAC,用来实现自动切换。
可以使用我的pac文件,http://wangheng.org/tools/autossh.pac。在iPhone的设置->WIFI->HTTP代理->自动->URL 里把它填上就可以了。
内容不多,如下:

1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  
function FindProxyForURL(url,host)  {  url = url.toLowerCase();  if(  shExpMatch(url, "*facebook.com*") ||  shExpMatch(url, "*googlecode.com*") ||  shExpMatch(url, "*twitter.com*") ||  shExpMatch(url, "*youtube.com*") ||  shExpMatch(url, "*wordpress.com*") ||  shExpMatch(url, "*appspot.com*") ||  shExpMatch(url, "*.google.com*")  )  {  return "SOCKS 127.0.0.1:1987″;  }  return "DIRECT";  }  return "DIRECT";  }

好了,大功告成,享受你的无国界自由网络吧~

原文:http://wangheng.org/using-ssh-for-the-iphone-automatic-proxy.html

发表评论