公司有一个翻墙的pac代理。我自己也买了一个shadowsocket代理。但是公司的代理的速度明显比我自己的要快。所以决定在公司使用公司的代理pac文件,在家使用自己shadowsocket的代理。但是手工切换的方式比较不友好,每次需要打开system –>network –>advance–>auto proxy来手动更改代理文件的设置。非常麻烦而且容易忘记。我们完全可以采用如下的一种全自动的方式来实现。代理的自动切换。

实现原理

本文使用Alfred的workflow来建立两个工作流当在Alfred的输入框中输入home的时候,就自动打开WiFi并打开shadowsocket使用自己的代理。当在公司的时候,就关闭WiFi关闭shadowscoket并修改network中的Automatic Proxy Configuration
到公司的pac文件。如下图所示

办公网络切换至家庭网络

  1. 点击Alfred workflow的左下角+号选择BlankWorkflow新建一个空的workflow如下图所示:
    ![][2]
  2. 选择新建之后会出现如下的文本框。在红色下划线上输入你自己的内容(这个随意填写,自己知道就行,也可以照我的例子填写)
  3. 在空白的画布上右击选择inputs–>keyword
  4. 出现如下的界面KeyWord中填写一个名字(注意这里名字不能乱写,要易于记忆,比如我要做的是将网络环境切换到家庭网络,所以我这里取名为home)
  5. 继续,新建一个script如下图:


    script的代码如下:
[2]: http://7xutce.com2.z0.glb.qiniucdn.com/20170206148637927731477.png
1
2
3
4
do shell script "open /Applications/ShadowsocksX.app"
do shell script "networksetup -setairportpower en1 on"
  1. KeywordRun Script链接起来如下图所示。
  2. 至此自动切换到家庭网络的功能已经完成。

家庭网络切换至办公网络

家庭网络切换至办公网络和上面的过程类似。下面我只贴出script代码:

1
2
3
4
5
6
7
8
9
10
tell application "ShadowsocksX"
quit
end tell
do shell script "sudo networksetup -setautoproxyurl 'Ethernet' '这里填入公司给你的pac文件.pac' "
do shell script "networksetup -setairportpower en1 off"

整个操作完成之后如下图所示。

使用

使用alt+ space调出Alfred的输入框。输入home就会切换至wifi,并使用shdowsocket作为代理上网。输入qunar就会切换至公司有线网络。并只用公司自己的翻墙代理上网。如下图: