Ubuntu下使用Shadowsocks GFWList

2018-07-26

现有的SS客户端在Linux上仅支持全局代理,本文以Ubuntu发行版为例,配置PAC自动代理,达到无缝切换的目的。

更新系统

$ sudo apt update
$ sudo apt upgrade

安装Shadowsocks GUI

非ubuntu系统可以参考此链接自行编译

https://github.com/shadowsocks/shadowsocks-qt5

在ubuntu上安装相当简单,可直接使用PPA源(14.04 lts以上系统

安装相关依赖

$ sudo apt install libappindicator1 libindicator7

安装shadowsocks-qt5

$ sudo add-apt-repository ppa:hzwhuang/ss-qt5
$ sudo apt-get update
$ sudo apt-get install shadowsocks-qt5

配置Shadowsocks服务

配置过程不做过多描述, 自行购买相关服务后配置, 配置完成后如下图所示:

image

配置网络代理(全局)

image

此时,所有的HTTP请求都将通过代理,显然不是想要的结果;

配置基于gfwlist的pac文件生成工具

什么是gfwlist? https://github.com/gfwlist/gfwlist

什么是PAC? https://baike.baidu.com/item/PAC/16292100

1. 安装pip

$ sudo apt install python-pip
$ pip install --upgrade pip

2. 安装GenPAC

$ sudo pip install genpac
$ pip install --upgrade genpac

3. 使用GenPAC生成pac文件(基于gfwlist)

GenPAC: https://github.com/JinnLynn/GenPAC

$ genpac -p "SOCKS5 127.0.0.1:1080" --gfwlist-proxy="SOCKS5 127.0.0.1:1080" --gfwlist-url=https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt --output="autoproxy.pac"

生成文件位于当前执行命令路径(我的生成为:/home/ubuntu/autoproxy.pac),文件内容如下:

image

配置网络代理(自动PAC)

image

参考上图配置网络代理,其中

“方法=自动”

“配置URL=file://{pacFilePath}”

OK, 大功告成。