2017/04/21

linux设置shadowsocks+polipo代理


为linux终端设置Shadowsocks代理

1、安装shadowsocks

sudo apt-get install python-pip
sudo pip install shadowsocks

安装好后,终端输入 sslocal --help 可以查看帮助

2、创建配置文件 shadowsocks.json,其中服务器地址、端口号、密码为为购买或免费使用或自己搭建的服务器

{
    "server": "xxxx.com",
    "server_port": 52239,
    "local_address": "127.0.0.1",
    "local_port": 1080,
    "password": "passowrd",
    "timeout": 600,
    "method": "aes-256-cfb",
    "fast_open": false
}

3、启动shadowsocks

sslocal -c shadowsocks.json

守护进程模式启动

sslocal -c shadowsocks.json -d start

4、通过curl访问 验收下sock5代理是否已经生效

#不使用代理
curl ip.gs

#使用代理
curl --socks5 127.0.0.1:1080 ip.gs

使用polipo将socks协议转换为http协议,完成终端全局http/https代理

Shadowsocks是我们常用的代理工具,它使用socks5协议,而终端很多工具目前只支持http和https等协议,对socks5协议支持不够好,所以 我们为终端设置shadowsocks的思路就是将socks协议转换成http协议,然后为终端设置即可。

安装polipo,进行二次转发(shadowsocks使用socks5协议通信,需搭配浏览器插件使用,若想要在系统全局使用,可使用polipo进行二次转发)

sudo apt-get install polipo

编辑配置文件,保存到/etc/polipo/config

# This file only needs to list configuration variables that deviate
# from the default values.  See /usr/share/doc/polipo/examples/config.sample
# and "polipo -v" for variables you can tweak and further information.

logSyslog = true
logFile = /var/log/polipo/polipo.log

proxyAddress = "0.0.0.0"

socksParentProxy = "127.0.0.1:1080"
socksProxyType = socks5
proxyPort = 8123

chunkHighMark = 50331648
objectHighMark = 16384

serverMaxSlots = 64
serverSlots = 16
serverSlots1 = 32

重启polipo服务

/etc/init.d/polipo restart

通过curl验收代理http是否成功

#不使用代理
curl ip.gs

#使用代理
http_proxy=http://127.0.0.1:8123 curl ip.gs

当前会话全局设置

如果嫌每次为每一个命令设置代理比较麻烦,可以为当前会话设置全局的代理。即使用 export http_proxy=http://127.0.0.1:8123 即可。 如果想撤销当前会话的http_proxy代理,使用 unset http_proxy 即可。 示例效果如下

root@ubuntu:~# curl ip.gs
当前 IP:183.3.144.146 来自:中国广东广州 电信
root@ubuntu:~#
root@ubuntu:~# export http_proxy=http://127.0.0.1:8123
root@ubuntu:~#
root@ubuntu:~# curl ip.gs
当前 IP:203.75.21.27 来自:中国台湾 hinet.net
root@ubuntu:~#
root@ubuntu:~# unset http_proxy
root@ubuntu:~#
root@ubuntu:~# curl ip.gs
当前 IP:183.3.144.146 来自:中国广东广州 电信
root@ubuntu:~#

如果想要更长久的设置代理,可以将 export http_proxy=http://127.0.0.1:8123 加入 .bashrc 或者 .bash_profile 文件,然后Linux用户 执行 source ~/.bashrc 更新当前bash配置

参考

http://droidyue.com/blog/2016/04/04/set-shadowsocks-proxy-for-terminal/index.html http://blog.csdn.net/liuqinglong_along/article/details/52463200