Kubuntu 17.10 配置SSR和Privoxy实现浏览器和终端代理
本文仅限技术交流使用,请勿用于违反法律的用途!
前几天折腾的产物,今天又用到了,特此记录。
原本以为没啥问题的,没想到Linux下问题还挺大,借此也学习了一番socks5的知识。
参考文章:
Ubuntu 14.04配置Shadowsocks和Privoxy实现浏览器和终端代理
Linux 配置SSR 客户端
配置SSR
虽然有electron-ssr的轮子,然而不知道为什么我这里没作用,还是老老实实用命令行配置吧。
经过测试这个版本是有用的:https://github.com/ssrbackup/shadowsocksr
下载下来:
git clone https://github.com/ssrbackup/shadowsocksr.git
cd shadowsocksr
然后生成配置文件:
bash initcfg.sh
复制一份到/etc
并打开:
sudo cp user-config.json /etc/shadowsocks.json
sudo vim /etc/shadowsocks.json
然后自己改改参数吧,保存后测试一下:
cd shadowsocks/
python local.py -c /etc/shadowsocks.json
出现local start with xxx
和starting local at xxx
字样并且没有报错就说明成功了(先不要关掉终端)
这个时候还不能用浏览器等访问404页面!
然后创建一个启动项以便自动打开:
vim ssr.sh
python /home/imwxz/shadowsocksr/shadowsocks/local.py -c /etc/shadowsocks.json
KDE下系统设置里面直接把这个加到启动项就行啦~
安装SwitchyOmega
因为我用的是chrome,就装SwitchyOmega这个插件把浏览器流量转到socks5上,其他浏览器请自行摸索。
请根据上面的配置做适当修改!
安装好crx后在proxy
选项卡中设置Protocol
为socks5
,Server
为127.0.0.1
,Port
为1080。
如果想使用Pac代理可以在autoswitch
中添加rule lists
,这里推荐一个 https://github.com/gfwlist/gfwlist
重启一下chrome,切到对应模式,是不是可以了?
配置Privoxy终端代理
为什么终端需要单独代理呢?难道SSR不是“全局”代理么?这个问题当时困惑了我很久,最后一句话点醒了我。 SSR是一个使用SOCKS5(或者SOCK4之类)协议的代理,它只接受SOCKS5协议的流量,不接受HTTP或者HTTPS的流量。所以当你在Chrome上能穿墙的时候,是SwitchyOmega插件把HTTP和HTTPS流量转换成了SOCKS协议的流量,才实现了SSR的代理。而终端是没有这样的协议转换的,所以没法直接代理。这时候就需要一个协议转换器,这里我用了Privoxy。
sudo apt-get install privoxy
安装好后进行配置:
vim /etc/privoxy/config
找到4.1. listen-address
这一节最后,确认listen-address
的监听端口号。
找到5.2. forward-socks4, forward-socks4a, forward-socks5 and forward-socks5t
这一节最后,加上:
forward-socks5 / 127.0.0.1:1080 .
注意最后有个点号。
重启一下
sudo /etc/init.d/privoxy restart
修改代理(每次新的终端都要输哦!如果懒得话看下面)
export http_proxy="127.0.0.1:8118"
export https_proxy="127.0.0.1:8118"
这个时候ping一下google应该就可以通了。
下方代码未经测试!!
设置自动代理,在/etc/rc.local
中添加如下命令,注意在exit 0
之前。
sudo /etc/init.d/privoxy start
在/etc/profile
的末尾添加如下两句。
export http_proxy="127.0.0.1:8118"
export https_proxy="127.0.0.1:8118"