我在 macOS 下使用 ShadowSocks-NG,它有一个 Proxy Auto Configure 模式,利用它 Chrome/Safari 等程序就能自动按需选择是否走代理。
印象中 GNOME 的网络设置有这个功能。但我目前的窗口管理器是 EXWM,或者说是一只 Emacs,没有设置代理的功能。Arch 下有没有单独的工具来提供这个 “PAC 模式”呢?让比如 Chromium/Firefox 能透过它来自动切换代理。
我目前的知道的方法是利用浏览器插件,比如 Chrome 下的 SwitchyOmega,我觉得有些麻烦,一来每个浏览器都要装,二来就 SwitchyOmega 来说,登录 Google 帐号后,Chrome/Chromium 会同步插件的设置,所以每次我从 Arch 切回 Mac 时,就要把 SwitchyOmega 改成直连,反之又要改成 PAC 模式。
最近编辑记录 xuchunyang (2017-09-01 02:38:05)
离线
有啊,gconf / dconf 这种东西,火狐还是认的。
我使用的 privoxy,倒不需要每个浏览器都安装。另外火狐也不需要安装扩展来使用PAC代理的。
Google Chrome 为什么要同步明显是 local 的设置啊……
离线
Google Chrome 为什么要同步明显是 local 的设置啊……
我又确认了下,SwitchyOmega 的设置不会同步,我之前搞错了。但这更麻烦,因为只要开了 SwitchyOmega,Shadowsocks-NG 的 PAC 模式都没用了,所以只能在 Mac 下禁用掉,到 Arch 下再打开。因为看起来 Google Chrome/Chromium 会同步一个插件有没有禁用的状态(正常情况下,这是个很好的功能)。
离线
我使用的 privoxy,倒不需要每个浏览器都安装。另外火狐也不需要安装扩展来使用PAC代理的。
试了下,的确可以。现在还需要看看怎么把 PAC 的规则转换成 Privoxy 的规则。
离线
已经搞定了,利用 https://github.com/snachx/gfwlist2privoxy 把 GFWlist 转成 Privoxy 的 Action 文件。
#------------------------------ [ ShadowSocks ] ------------------------------#
# 安装
sudo pacman -S shadowsocks-libev
# 配置
# /etc/shadowsocks/local.json
# 启动
sudo systemctl start shadowsocks-libev@local.service
# 测试
curl -x socks5://localhost:1080 ip.cn
# 启用
sudo systemctl enable shadowsocks-libev@local.service#-------------------------------- [ Privoxy ] --------------------------------#
# 安装
sudo pacman -S privoxy
# 配置,/etc/privoxy/config 加入listen-address 127.0.0.1:1087 # 默认 8118
actionsfile gfwlist.action# 生成 gfwlist.action
sudo pacman -S python2-pip
pip2 install --user gfwlist2privoxy
wget https://raw.githubusercontent.com/gfwli … fwlist.txt
~/.local/bin/gfwlist2privoxy -i gfwlist.txt -f gfwlist.action -p 127.0.0.1:1080 -t socks5
sudo cp gfwlist.action /etc/privoxy/# 启动
sudo systemctl start privoxy.service
# 测试,分别访问 ip.cn 和 YouTube
chromium --proxy-server="localhost:1087"
# 启用
sudo systemctl enable privoxy.service
离线