SS + SwitchyOmega实现代理自动切换

按照配置ShadowSocks服务器配置的Shadowsocks服务器一起在默默的工作,特别是最近用了Google Cloud Servers后在单位翻墙速度超级快。访问境外境内网站基本一个速度。

此前我一直在用Shadowsocks + GoAgentX + SwitchyOmega 的方式翻墙,虽然快速切换代理很方便。但是如果我在观看YouTube视频的同时要访问国内网站的话要么得忍受龟速,要么得切换成直接连接从而导致Youtube视频中断。

今天想试试SwitchyOmega的自动切换功能。发现相当好用。

设置自动切换

  1. 打开SwitchyOmega 设置,新建情景模式, 选择自动切换模式
  2. 导入在线规则列表,类型选择AutoProxy,可以选择导入gfwlist - https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt 或者自己自定义的AutoProxy文件。
  3. 保存设置并更新情景模式,若更新失败则开启全局代理后更新。
  4. 设置规则匹配则使用代理模式,否则直接连接。保存退出。

自定义AutoProxy文件

gfwlist并不适用于每一个人,比如对于我翻墙主要是有些网站国内访问速度太慢,例如Apple。但Apple又不包含在gfwlist。所以我选择自定义AutoProxy文件。

  1. 在Github或者其他的代码托管网站注册并创建公开项目,并pull到本地。
  2. 仓库中创建一个txt文件。AutoProxy文件格式如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
!注释

example.com

!匹配 http://www.example.com/foo, http://www.google.com/search?q=www.example.com
!不匹配 https://www.example.com/

||example.com

!匹配 http://example.com/foo, https://subdomain.example.com/bar
!不匹配 http://www.google.com/search?q=example.com



|http://example.com

!匹配 所有开头为https://example.com网页
!不匹配 短连接如http://t.co/dsadas
  1. 按照上述格式创建并push你的AutoProxy文件,下面是我的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
!著名站点
||google.com
||youtube.com
||eliyar.biz

!工作需要
||flaticon.com
||icons8.com

!资源加载
||ytimg.com
||gstatic.com
||youtube-nocookie.com
||ggpht.com
||googlevideo.com
  1. 获取该文件原始数据(RAW)链接,并把该链接填入为规则列表网址。

进一步优化

由于使用自定义AutoProxy文件,不可能事先把需要的网页全都写进去。所以需要SwitchyOmega判断有哪些资源未加载。

  1. SwitchyOmega -> 界面 -> 快速切换 取消勾选。
  2. 随便打开一个网站,如https://www.instagram.com/,则可以看到SwitchyOmega图标右下角多了一个数字1
  3. 点击SwitchyOmega图标 -> 1个资源未加载 -> 选择代理模式并添加条件。
  4. 打开SwitchyOmega设置,刷新可以看到刚刚添加的两个条件。之后访问https://www.instagram.com/会直接调用vpn。其他网站继续直接连接。