ss-local是shadowsocks-libev提供的客户端工具,若想正常使用需先准备一台机器部署shadowsocks服务端以作为代理。
一、安装准备
Ubuntu 16以上直接用apt安装,其他发行版可以查阅文档https://github.com/shadowsocks/shadowsocks-libev#installation
1 | sudo apt update |
二、编辑配置文件
配置代理服地址
参考config.json修改local.json,填写代理服务器的地址。
1 | sudo cp /etc/shadowsocks-libev/config.json /etc/shadowsocks-libev/local.json |
建议local_port
不要使用默认的1080,例如改为1081。主要是避免和ss-server(在安装后默认作为shadowsocks-libev.service
启动)抢占端口,或者选择手动停掉ss-server。
1 | { |
配置systemd service
1 | sudo vi /lib/systemd/system/[email protected] |
替换其中ExecStart的配置路径
1 | ExecStart=/usr/bin/ss-local -c /etc/shadowsocks-libev/local.json |
三、启动服务
使用systemctl或service管理服务
1 | #启动 |
四、配置PAC文件
PAC的语法是js,规则非常简单。核心点是实现FindProxyForURL
函数,判断当前域名是否使用代理,不需要代理的域名直接返回DIRECT
。
因此内容自己实现就可以,但不支持es6及以上特定,这里参考genpac加上endsWith的polyfill。
1 | // 端口号按之前配置local.json的local_port来填写,默认1080 |
五、配置系统代理
这一步可以通过export来设置,但没找到automatic的配置方法,干脆用系统自带的proxy来处理。按如下步骤一路点,最后填上PAC文件的路径。
Network -> Network proxy -> Automatic -> Configuration URL -> /etc/proxy/my.pac
浏览器插件
2019-05-15 更新
最近安装了几次 Ubuntu 18.04 都无法通过上述系统配置实现自动跳转,仅全局代理生效,尚未找出原因。
目前推荐的解决方案是通过 SwitchyOmega
等 chrome 插件设置自动代理,一次配置随处生效(也可以在单机上选择性关闭),操作更为方案,无须再到系统配置了。
- SwitchyOmega: https://github.com/FelisCatus/SwitchyOmega