shadowsocks和polipo配置全局代理


本文从 http://blog.csdn.net/jon_me/article/details/53525059 迁移过来(但是不存在侵权问题),做了一些校验和修正

Shadowsocks + Polipo 配置全局代理(Linux 版本)

以下配置均不在virtualenv 环境里面配置

1. 服务器端配置

  • 安装shadowsocks 环境

    • pip 安装:

      1
      $ sudo pip install shadosocks
    • 下载python 源码安装:shadowsocks 链接

  • 配置shadowsocks 启动json文件 参考链接
    文件路径:

    1
    $ sudo vim /etc/shadowsocks.json

    shadowsocks.json 文件内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {
    "server":"my_server_ip",
    "server_port":8388,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"mypassword",
    "timeout":300,
    "method":"rc-md5",
    "fast_open": false,
    "workers": 100
    }
字段名 描述 样例
server 服务器ip或者服务器域名 “127.0.0.1”
server_port shadowsocks监听端口 8388
local_address 服务器本地端口 1080
password 客户端登陆时密码 “mypassword”
timeout 超时 300
method 传输加密方式 “rc-md5”
fast_open TCP加速(需要linux内核 3.7.1 以上) false
workers 最大连接数量 100
  • 启动shadowsocks服务
    启动:

    1
    $ ssserver -c /etc/shadowsocks.json -d start

    关闭:

    1
    $ ssserver -c /etc/shadowsocks.json -d stop

    ssserver 简单说明(其实使用ssserver -h 即可查看帮助,以下内容为复制粘贴得到):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    $ ssserver -h
    usage: ssserver [OPTION]...
    A fast tunnel proxy that helps you bypass firewalls.

    You can supply configurations via either config file or command line arguments.

    Proxy options:
    -c CONFIG path to config file
    -s SERVER_ADDR server address, default: 0.0.0.0
    -p SERVER_PORT server port, default: 8388
    -k PASSWORD password
    -m METHOD encryption method, default: aes-256-cfb
    -t TIMEOUT timeout in seconds, default: 300
    --fast-open use TCP_FASTOPEN, requires Linux 3.7+
    --workers WORKERS number of workers, available on Unix/Linux
    --forbidden-ip IPLIST comma seperated IP list forbidden to connect
    --manager-address ADDR optional server manager UDP address, see wiki

    General options:
    -h, --help show this help message and exit
    -d start/stop/restart daemon mode
    --pid-file PID_FILE pid file for daemon mode
    --log-file LOG_FILE log file for daemon mode
    --user USER username to run as
    -v, -vv verbose mode
    -q, -qq quiet mode, only show warnings/errors
    --version show version information
  • 配置开机启动(ubuntu 版本)
    进入到开机启动目录

    1
    $ cd /etc/init.d/

    文件夹里面添加文件

    1
    $ sudo touch shadowsocks-start.sh
    1
    $ sudo vim /etc/init.d/shadowsocks-start.sh

    内容如下(不做解释,参考insserv的两篇文章:链接1 链接2):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #! /bin/sh
    ### BEGIN INIT INFO
    # Provides: shadowsocks
    # Required-Start: $remote_fs $syslog
    # Required-Stop: $remote_fs $syslog
    # Should-Start: $network $time
    # Should-stop: $network $time
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: shadowsocks.
    ### END INIT INFO

    /usr/bin/ssserver -c /etc/shadowsocks.json -d start

    设置启动等级:

    1
    $ sudo update-rc.d /etc/init.d/shadowsocks-start.sh defaults 90

以上配置好了服务器端的内容了

2. 客户端配置

  • 安装shadowsocks
    和服务器端一样的安装方式,通过pip 安装或者源码安装

    1
    $ pip install shadowsocks
  • 配置客户端的shadowsocks.json文件
    创建shadowsocks.json文件:

    1
    $ sudo vim /etc/shadowsocks.json

    内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
    "server":"my_server_ip",
    "server_port":8388,
    "local_port":7070,
    "password":"mypassword",
    "timeout":300,
    "method":"rc4-md5",
    "auth": true
    }
  • 启动客户端shadowsocks服务
    启动:

    1
    $ sslocal -c /etc/shadowsocks.json -d start

    关闭:

    1
    $ sslocal -c /etc/shadowsocks.json -d stop

关于sslocal 的使用可以参考 sslocal -h,这里不多描述

至此以上已经配置好了shadowsocks的服务了,可是还不能正常使用,原因很简单,shadowsocks是使用的是socks5代理,如果是浏览器使用,需要安装特定的插件,当然firefox可以直接配置proxy即可,chrome 需要安装SwitchyOmega类似的插件,并且配置。这样一来就不能是全局的使用了,仅仅局限于浏览器。有很多代理转发工具,但是本文将介绍Polipo进行http/https的代理转发(ubuntu版本)

3. polipo安装

1
$ sudo apt-get install polipo

4. polipo配置 参考1 参考2)

polipo配置方式:

1
$ sudo vim /etc/polipo/config

/etc/polipo/config 内容:

1
2
3
4
5
6
7
8
9
10
11
12
# 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"
proxyPort = 17070
socksParentProxy = "127.0.0.1:7070"
socksProxyType = socks5
allowedClients = 127.0.0.1

5. polipo重启

1
$ sudo /etc/init.d/polipo restart

设置http/https代理

1
$ export http_proxy="http://127.0.0.1:17070" && export http_proxy="http://127.0.0.1:17070"

取消代理

1
$ unset http_proxy && unset https_proxy

以上是配置linux(ubuntu)版本的shadowsocks全局代理
window下建议使用Proxifier, 下载地址。其它Proxifier相关注册码信息参考链接