使用“影梭”,为你的iOS设备实现全局代理

背景

“用Shadowsocks来实现iOS设备的全局代理”,这个想法出现了好久,也听说了越狱后可以实现此功能。但看着好多大神也只是模棱两可没有给出具体解法,我也就没怎么上心去搞这个。有趣的是这两天在玩Ubuntu,昨天上午发现Shadowsocks图形客户端在Linux下有些问题,遂看了看官方文档,弄好Linux的客户端后不经意间看到Shadowsocks的iOS客户端文档,发现这货的全局代理方式竟是如此简单,那些大神难道是因为觉得英语很复杂不给小白说这个功能了么,Orz。那么到底怎么搞,我们来分析下思路~

在这之前先介绍下Shadowsocks

咳咳,这货呢,叫Shadowsocks,中文名影梭(好吧~直译的),它是

一个可穿透防火墙的轻量代理。

也就是一个轻量级的翻墙工具。运行原理请参见维基百科相关页面
同时,它也是一个开源工具,关于“影梭”的一切你都可以在GitHub相关页面找到。

实现iOS设备全局代理的思路
思路1

  • 在iOS设备安装Shadowsocks app。
  • 为iOS设备设置全局代理。
  • 为Shadowsocks app设置后台常驻。

思路2

  • 越狱安装shadowsocks完整版
  • 配置shadowsocks在应用内的服务

两种思路的比较
第一种是使用在app stroe上架的应用来进行操作,优点是可以直接使用,无需自己配置服务器;
第二种是使用越狱后的版本,优点表面上不用是一个app常驻后台,缺点是需要自己配置服务器。

说明

1.Shadowsocks app作为一个在苹果应用商店上架的应用,它必须遵循苹果应用的相关规定,即后台不能常驻,也就是说在不越狱的情况下,它

Only works for a few minutes. Due to iOS restrictions, Shadowsocks can’t keep running in the background. It’s killed after you leave it for a while. To keep it running for an extended period of time, you have to come back to the Shadowsocks app every few minutes.

所以,我们进行完美体验的前提是你的iOS设备已经越狱。如果你的设备没有越狱,你只有在按照以下教程操作好了过后几分钟(大都在10分钟内)
再次打开Shadowsocks app。

2.Shadowsocks作为一个代理服务,它一般需要在服务端进行配置,一般的用户并不拥有一个支持Shadowsocks的服务器。不过好在Shadowsocks的支持社区相当成熟,它们提供免费的服务来支持和推广Shadowsocks的服务。而我们将要使用的Shadowsocks app也会根据情况为你分配相关服务器。当然免费的服务器稳定性和速度肯定会差一点,但已经很够用了。如果你想配置你的私有服务器,请加入相关社区进行进一步学习。

3.目前仅支持Wi-Fi下的全局代理服务。

00,准备工作

  • iOS设备(未越狱,各个版本均可)
  • iOS设备(越狱,我们使用的插件目前支持到iOS7)
  • Shadowsocks iOS App 点我下载
  • 插件Background Manager
  • 插件shadowsocks和shadowsocks per-app plugin

01,安装Shadowsocks iOS App,并在Wi-Fi选项中设置代理

首先,我们打开App Store,搜索到Shadowsocks

下载、安装后发现,出现了一个纸飞机的图标,就是它啦~

打开它,我们看到的应该是一个类似于浏览器的东西,而这也是这个Shadowsocks做这个app的主要功能。在这个浏览器里,你就能够实现代理了,但我们要做的是全局代理,所以我们继续。看到右边的选项按钮,打开之,可以看到一些选项,都可以打开看看。

而这里,我们打开选项这一栏看看。发现,这正是我们要找的服务器配置所在地。而前面已经说了,我们可以直接使用Shadowsocks社区的代理服务,所以根本不需要我们的配置。

如果你有自己的服务器,你可以选择自行按如下方式配置。

至此,我们已经完成了对app的配置。(好吧,根本没有配置好么~)
接下来,我们进行全局代理设置。我们打开设置—Wi-Fi一栏,点开右边那个感叹号设置按钮。

找到下面HTTP代理的设置项,将其设置为自动,并填写如下代理地址
http://127.0.0.1:8090/proxy.pac

然后点击上面Wi-Fi返回,这时候,会出现一两秒的配置时间,你所连接的WiFi会出现loading画面(也就是转菊花),完成后会自动连上Wi-Fi。
至此,我们已经设置好了全局代理的配置。想尝鲜的同学打开Safari或者Twitter、Facebook、YouTube的客户端就发现,卧槽,真特么可以。
在Safari下自然是可以的
Safari
在各个客户端下表现也不错
Twitter
instagram
u2b

目前,我们已经完成了配置,功能是可以使用的。但正如前文所说,由于iOS自身的限制和Shadowsocks app代理方式的限制,我们必须得让Shadowsocks app一直保持开启才可以实现全局代理。如果通常十分钟以后iOS就会自动退出后台的一些第三方应用,那么Shadowsocks app自然也会被退出。这就导致了我们需要过一会就去打开一次Shadowsocks app,平时刷刷推特还是可以接受,但强迫症肯定很不爽,所以我们就得使用一个插件来让这个app,在我使用我的设备期间一直保持运行。


iOS8及未越狱设备请忽略以下内容

02-1,安装background manager,并配置好后台运行规则。

安装插件的前提是我们的iOS设备必须越狱并运行完好。
首先,在Cydia里搜索background manager

正版的此插件需要6元进行购买,但目前对支付宝的支持还不是很好,我们选择在178源(后面给出地址)里进行安装(体验无罪,但请尽量支持正版)。

你也可以一并选择威锋技术组出品的汉化补丁

一并安装完成后,respring注销下即可进入主界面。
然后,我们在设置里找到相关项目-后台运行管理器

打开之~

选择指定应用设置,并选择添加项目

添加Shadowsocks到该规则

返回发现,该规则目录下已经出现Shadowsocks一则,并注明后台规则还是原生

点击Shadowsocks,发现的确为原生的后台模式

我们进行选择,选择“后台”一栏

然后返回,发现,当前后台规则已经变为“后台”

而至此,我们已经完成了使Shadowsocks app常驻后台的配置工作,你也可以对background manager插件继续进行相关样式的设置,请自行探索。

完成配置后,我们可以返回重新打开Shadowsocks app,然后就会发现,在我们使用Shadowsocks app进行全局代理时,只要不自行退出后台,我们的全局代理会一直进行下去,即使你进行了锁屏操作。当然,由后台管理插件完成的服务必然会存在不稳定因素,也可能会导致机身发热量增加电池消耗过快等问题,这就仁者见仁智者见智了哈~

02-2,cydia内安装shadowsocks和shadowsocks per-app plugin,并配置好服务器

注意:这个操作并不需要在app store内下载相关应用,我们在cydia内下载相关插件
首先,在cydia内搜索shadowsocks

我们就可以看到我们需要的两个插件,免费。然后下载、安装即可。
安装后,打开安装的插件,注意,我们在桌面只能看到一个叫“影梭”的图标,打开它

点击启用代理,配置好你的shadowsocks服务器地址和加密方式

然后就可以设置应用内代理了,点击“应用内代理”

点进去就进入了插件per-app的设置界面

我们点击启用,并禁用SPDY协议(原因它说得很清楚)。然后打开下方的绕行模式,并在“应用程序里”开启我们不需要走shadowsocks代理的应用即可。注意,这里的应用程序开启的是不走代理的程序,注意区分。

03,后续和致谢

关于app和插件的版权问题,请大家尽可能地从App Store下载应用程序,从bigboss源等正版源下载插件,支持正版。后续越狱社区会增加插件购买对支付宝的支持力度,所以更没有理由去选择一些盗版源。体验的话也可以,但如果真的觉得好,就应该为之付费,更何况也就几块钱的事情。

关于翻墙工具的问题,有心的同学可以发现,有一些翻墙工具完全是一些反共团体开发制作的,比如“自由门”。我认为,如果你有需求,你应该选择一些客观的工具去观察外面的世界,而开源社区为之做出了很大的努力和贡献。我们希望自由,但有时候却被一些人引向了另一个极端,这很不好,真的很不好。

关于Shadowsocks,“影梭”不光可以在iOS端进行代理,更多的是用在桌面端,相关文档官方的项目说明已经很明确,我就不再进行说明。

致谢

  • 感谢无偿为Shadowsocks制作和宣传做出贡献的开源社区成员
  • 感谢无偿为Shadowsocks社区分享服务器的服务器所有者
  • 感谢越狱社区Background Manager作者deVbug
  • 感谢越狱社区Shadowsocks和Per-App Plugin插件的贡献者 Linus Yang
  • 感谢威锋技术组CDSQ汉化

04,参考资料


愿这个世界更美好

Jas0ndyq敬上