过程比想象的繁琐,记录一下。
首先要安装 Shadowsocks 的 Linux 客户端。这个用 pip 直接安装就行:
pip install setuptools # 安装依赖 pip install wheel # 安装依赖 pip install -U git+https://github.com/shadowsocks/shadowsocks.git@master
安装完了敲 sslocal
命令就是客户端,而 ssserver
是服务器端。
建立了一个ss配置文件用于 sslocal
命令,语法如下:
{ "server":"my_server_ip", "server_port":8388, "local_port":1080, "password":"barfoo!", "timeout":600, "method":"chacha20-ietf-poly1305" }
然后 sslocal -c /path/to/conf.json
就跑起来了。但是有2个问题:
ssserver
相当不稳定,说不定 sslocal
也有这个问题,我需要一个守护进程于是要弄个 Supervisor 来守护 sslocal
。
安装 Supervisor :
easy_install supervisor
然后用 echo_supervisord_conf
命令生成个 Supervisor 的配置文件。在配置文件中增加如下配置:
[program:sslocal] command=/usr/bin/sslocal -c /root/_pea3nut/ss/ss.conf stdout_logfile=~/_pea3nut/ss/stdout.log autostart=true autorestart=true startsecs=5 priority=1 stopasgroup=true killasgroup=true
使用 supervisord -c supervisord.conf
让 Supervisor 跑起来。查看跑的状态输入 supervisorctl
进入交互面板,输入 help
有命令列表。
接下来是 sock5 -> http。我用了 privoxy。CentOS直接
yum install privoxy service privoxy [start|stop|restart]
改配置文件 /etc/privoxy/config
。配置文件有点啰嗦,我直接去掉所有注释
mv /etc/privoxy/config /etc/privoxy/config.origin cat /etc/privoxy/config.origin | grep ^[^#] > /etc/privoxy/config
然后干净清爽的配置文件大概这样:
confdir /etc/privoxy logdir /var/log/privoxy actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on. actionsfile default.action # Main actions file actionsfile user.action # User customizations filterfile default.filter filterfile user.filter # User customizations logfile logfile listen-address 127.0.0.1 :8116 toggle 1 enable-remote-toggle 0 enable-remote-http-toggle 0 enable-edit-actions 0 enforce-blocks 0 buffer-limit 4096 enable-proxy-authentication-forwarding 0 forward-socks5 / 127.0.0.1:3127 . forwarded-connect-retries 0 accept-intercepted-requests 0 allow-cgi-request-crunching 0 split-large-forms 0 keep-alive-timeout 5 tolerate-pipelining 1 socket-timeout 300
关键点在于上面的
listen-address 127.0.0.1 :8116 forward-socks5 / 127.0.0.1:3127 .
然后 service privoxy restart
后应该就通了
http_proxy=127.0.0.1:8116 curl www.google.com
过程真是又麻烦又啰嗦,中间py2和py3问题不断,而且 Supervisor 还没设置开机自启。先这么凑合一阵吧,过段时间上Docker就好了。