When providing a shadowsocks
service, you can serve multiple users through a single port-and-user model, without having to enable multiple services.
Traffic statistics allow you to view users’ traffic in real time, and also include traffic limits.
Matching GUI client https://github.com/Lupino/shadowsocks-gui
build
git clone https://github.com/Lupino/shadowsocks-auth.git
cd shadowsocks-auth
make
server
$(GOPATH)/bin/server -p 8388 -redis=127.0.0.1:6379
redis-cli
redis 127.0.0.1:6379> set ss:user:lupino "{"name": "lupino", "password": "lup12345", "method": "aes-256-cfb", "limit": 10737418240}"
redis 127.0.0.1:6379> keys "*"
1) "ss:flow:lupino:2014:7:31"
2) "ss:flow:lupino:2014:7:29"
3) "ss:user:lupino"
4) "ss:flow:lupino"
# Description of redis keys
ss:flow:[username] sorted set the user's current total traffic
ss:flow:[username]:year:month:day sorted set the user's traffic for the current day
ss:user:[username] json user information
@name: username
@password: password
@method: encryption method
@limit: maximum traffic limit
Script used on the server side https://gist.github.com/Lupino/d0609ab79d873b2c1015
local
Modify config.json
{
"server":"23.226.79.100",
"server_port":8388,
"local_port":1080,
"password":"lupino:lup12345", # username:password
"method": "aes-256-cfb",
"timeout": 600
}
$(GOPATH)/bin/local -c config.json