使用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