SSH端口动态转发+PAC(代理自动配置)+iOS
SSH端口动态转发+PAC(代理自动配置)+iOS

SSH端口动态转发+PAC(代理自动配置)+iOS

众所周知,中国大陆有个GFW,使得不能正常的畅游国外网络,虽然我不是手机党,但有些东西的必须的。
iOS设备GFW钻洞方法很多。比如VPN,或者用hosts文件映射到相应的可用IP地址,今天就说SSH+PAC让iOS设务穿过GFW。

言归正传,首先你得
越狱iOS设备;
有个可用SSH账户或可F***GFW的主机并可用SSH登录。

好了,先来 SSH 准备。
安装 OpenSSH 开启SSH服务(Cydia安装)。
还需要安装终端来执行命令,安装 Mobile Terminal (Cydia安装,R520-2版本,此版本支持iOS4.2.1~6.0)。

接着准备PAC文件。
PAC(Proxy auto-config)文件定义浏览器和其他用户代理如何自动选择适当的代理服务器来访问一个URL,可以点击前面链接(WIKI)了解一下。
按WIKI里举出的例子,做出适合自己的PAC文件:
使用全局SOCKS协议代理(通过本地服务器127.0.0.1的1202端口来获取所有的页面):

function FindProxyForURL(url, host)
{
return “SOCKS 127.0.0.1:1202”;
}

自定义SOCKS协议代理(通过本地服务器127.0.0.1的1202端口来获取指定主机页面,其他则直接访问):

function FindProxyForURL(url, host)
{ if ( shExpMatch(url, “*.example.com*”)
|| shExpMatch(url, “*.example.com/*”)
)
return “SOCKS 127.0.0.1:1202”;
else
return “DIRECT”;
}

好了,做好PAC文件后把其弄到你的iOS设备上去(系统配置文件所在:/var/preferences/),可以用WinSCP,权限设为0644即可。
小小提醒:把root及mobile密码改了!默认为alpine,方法网上找或者在 Cydia 里找到 OpenSSH ,点开“Root Password How-To”便是。

使用WIFI网络时调用PAC代理:
设置 > Wi-Fi > 所连接WIFI > HTTP代理 > 自动 > URL:file:localhost/var/preferences/FileName.pac
使用蜂窝数据网络时调用PAC代理:
用iFile(Cydia安装)打开 /var/preferences/SystemConfiguration/preferences.plist
找到相应并加入红色部分:

<string>com.apple.CommCenter (ip1)</string>
</dict>
<key>Proxies</key>
<dict>
<key>ProxyAutoConfigEnable</key>
<integer>1</integer>
<key>ProxyAutoConfigURLString</key>
<string>file:localhost/var/preferences/FileName.pac</string>
</dict>

<key>UserDefinedName</key>
<string>com.apple.CommCenter (ip1)</string>

要是觉得输入麻烦,也可用先把plist弄到电脑里,使用plist编辑软件编辑,再传回覆盖。

一切就绪,接下来
打开 Terminal

~: ssh -qTfnN -D 1202 user@host

常用参数说明:
-q 安静模式,忽略错误。
-T 禁用虚拟终端。
-f 将ssh连接送入后台运行。
-n 当SecureShell客户端被送入后台时必须使用它,也就是配合 -f 吧。
-N 不执行命令,仅做端口转发。
-C 压缩传送的数据

好了,去吧。退出ssh就把它杀掉吧:killall ssh谢谢:)可使用iFile直接在手机里修改适合自己的PAC文件,方便~

3条评论

  1. 懒嘀猫

    感觉好复杂的样子,用VPN比较方便,有空试试。
    请问倒数第二张图片状态栏的右边电池旁边是天气吗?怎么弄的?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注