大部分参考 http://www.cnblogs.com/hongchenok/p/3790370.html 攻略,增加了多用户实现

比起L2TP和IPSEC是二三层的VPN,ShadowSocks则是SOCKS5——会话层的VPN,是轻量级的隧道,由于其客户端自带动态路由选择,且在不稳定网络下表现良好,特别适合移动设备例如安卓、IOS使用。下面就是安装攻略:
在Debian 7 下,首先安装libssl

1.下载 http://ftp.br.debian.org/debian-security/pool/updates/main/o/openssl/libssl0.9.8_0.9.8o-4squeeze14_amd64.deb

2.安装deb包

dpkg -i libssl0.9.8_0.9.8o-4squeeze14_amd64.deb

3.追加软件源

vi /etc/apt/sources.list

在后面添加如下源

deb http://shadowsocks.org/debian squeeze main

然后更新源并安装

apt-get update
apt-get install shadowsocks

4.配置shadowsocks

vi /etc/shadowsocks/config.json
{
          "server":"vps的ip",
          "server_port":8388,
          "local_port":1080,
          "password":"ccc", 
          "timeout":60,
          "method":"aes-256-cfb" #加密方式,默认table,推荐aes-256-cfb
}

如果想用除table以外的加密方式,需要额外安装M2Crypto

apt-get install python-m2crypto

5、重启shadowsocks服务。

/etc/init.d/shadowsocks stop
/etc/init.d/shadowsocks start

update-rc.d shadowsocks defaults

使用shadowsocks
windows环境下需要下载客户端:http://sourceforge.net/projects/shadowsocksgui/files/dist/ 填入之前配置的参数,保存运行即可。 新建浏览器代理为如下:

协议: socks5
地址: 127.0.0.1
端口: 刚才填的 local_port
推荐配合 AutoProxy 或者 Proxy SwitchySharp 一起使用。

  1. 安全设置
    新建一个低权限用户shadowsocksuser,(无密码,无法登陆,无home dir)
adduser --system --disabled-password --disabled-login --no-create-home shadowsocksuser

修改 /etc/default/shadowsocks

USER=shadowsocksuser
GROUP=nogroup

让非root用户的shadowsocks运行在1024以下端口,适用于debian 7

apt-get install libcap2-bin
setcap 'cap_net_bind_service=+ep' /usr/bin/ss-server

修改 /etc/init.d/shadowsocks

vi /etc/init.d/shadowsocks

在 ulimit -n ${MAXFD} 下直接加入

ulimit -n 51200

把 -c “$CONFFILE” -a “$USER” -u -f $PIDFILE $DAEMON_ARGS \ 修改为

-c "$CONFFILE" -a "$USER" -u -f $PIDFILE $DAEMON_ARGS --forbidden-ip 127.0.0.1,::1 \

7.多用户支持,拷贝多份/etc/shadowsocks/config.json就是多个

multiuserSS_sh="/etc/init.d/multiuserShadowssocks.sh"
if [ -f $multiuserSS_sh ]; then
cp $multiuserSS_sh $multiuserSS_sh.bak
fi
touch $multiuserSS_sh
chmod +x $multiuserSS_sh
echo "
#!/bin/sh
### BEGIN INIT INFO
# Provides:          multiuserShadowsocks.sh
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: multiuserSS
# Description:       shadowsocks support multiuser
### END INIT INFO
/usr/bin/ss-server -c /etc/shadowsocks/config1.json -a shadowsocksuser -u -f /var/run/shadowsocks/shadowsocks1.pid --forbidden-ip 127.0.0.1,::1

/usr/bin/ss-server -c /etc/shadowsocks/config2.json -a shadowsocksuser -u -f /var/run/shadowsocks/shadowsocks2.pid --forbidden-ip 127.0.0.1,::1
" > $multiuserSS_sh

7.最后

update-rc.d multiuserShadowssocks.sh defaults

8.补充python版的shadowsock安装:
查看版本:

python --version

官网说2.6或2.7

安装:

pip install shadowsocks

编辑:

multiuserSS_sh="/etc/init.d/multiuserShadowssocks.sh"
if [ -f $multiuserSS_sh ]; then
cp $multiuserSS_sh $multiuserSS_sh.bak
fi
touch $multiuserSS_sh
chmod +x $multiuserSS_sh
echo "
#!/bin/sh
### BEGIN INIT INFO
# Provides:          multiuserShadowsocks.sh
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: multiuserSS
# Description:       shadowsocks support multiuser
### END INIT INFO
/usr/local/bin/ssserver --user shadowsocksuser -c /etc/shadowsocks/config1.json --forbidden-ip 127.0.0.1,::1 -d start

/usr/local/bin/ssserver --user shadowsocksuser -c /etc/shadowsocks/config2.json --forbidden-ip 127.0.0.1,::1 -d start
" > $multiuserSS_sh