在Ubuntu下,除了浏览器之外,为了能在系统全局层面上自动使用代理访问那些“不存在的网站”,有一个常用的做法就是,在Chrome的SwitchyOmega插件里的“自动切换”情景模式下“导出PAC”,得到一个PAC文件,放在磁盘的某个路径下(假设为:/home/codelast/OmegaProfile__.pac),然后在Ubuntu系统的网络设置里如下设置:
文章来源:https://www.codelast.com/
然后点击“应用到整个系统”。
貌似这样做之后,给人的感觉就是,在Ubuntu终端下也可以无障碍地访问Google了,但事实上并不可以——例如,你可以用如下命令试一下:
curl www.google.com
结果就是并不能打开Google的首页。
这是因为PAC只有在能解析js的客户端(例如Chrome浏览器)上才能生效,Ubuntu终端只认http_proxy和https_proxy两个环境变量。
所以这是不是意味着,我们只要把这两个环境变量设置成SwitchyOmega插件里设置的socks5代理地址就可以了呢?也不行,原因如下:
在Chrome上,是SwitchyOmega插件把HTTP和HTTPS流量转换成了socks协议的流量,才能使用socks代理。而Ubuntu终端是没有这样的协议转换的,所以没法直接使用sock5代理。这时候就需要一个协议转换器,例如Privoxy。
文章来源:https://www.codelast.com/
所以话不多说,直接安装Privoxy:
sudo apt install privoxy
然后修改它的配置文件 /etc/privoxy/config,在文件末尾添加如下内容:
forward-socks5 / 127.0.0.1:1080 . # SOCKS5代理地址listen-address 127.0.0.1:8080 # HTTP代理地址forward 10.*.*.*/ . # 内网地址不走代理forward .abc.com/ . # 指定域名不走代理
其中,第1行的 127.0.0.1:1080 是你在本地的sock5代理地址,而第二行的 127.0.0.1:8080 则是sock5转换成的 http 代理地址,最后两行指定了两个不走代理的地址。
文章来源:https://www.codelast.com/
配置好之后重启Privoxy服务:
sudo /etc/init.d/privoxy restart
export http_proxy="127.0.0.1:8080"
export https_proxy="127.0.0.1:8080"
大功告成!
文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤
转载需注明出处:codelast.com
感谢关注我的微信公众号(微信扫一扫):
如果是界面端,可以在设置里添加手动代理