A shadowsocks manager tool for multi user and traffic control.
GPL-3.0 License
A shadowsocks manager tool for multi user and traffic control. Base on Node.js and SQLite.
For more details, you can see docs.
If you want to use the old version, please switch to this branch.
git clone https://github.com/shadowsocks/shadowsocks-manager.git
cd shadowsocks-manager
npm i
use node server.js
to run this program.
npm i -g shadowsocks-manager
You may need to use the --unsafe-perm
flag if you receive an permission error
npm i -g shadowsocks-manager --unsafe-perm
use ssmgr
to run this program.
docker run --name ssmgr -idt -v ~/.ssmgr:/root/.ssmgr --net=host gyteng/ssmgr [ssmgr params...]
here is the Dockerfile
FROM ubuntu:18.04
MAINTAINER gyteng <[email protected]>
RUN apt-get update && \
export DEBIAN_FRONTEND=noninteractive && \
apt-get install tzdata iproute2 curl git sudo software-properties-common python-pip -y && \
pip install git+https://github.com/shadowsocks/shadowsocks.git@master && \
curl -sL https://deb.nodesource.com/setup_8.x | bash - && \
apt-get install -y nodejs shadowsocks-libev && \
npm i -g shadowsocks-manager --unsafe-perm && \
echo "Asia/Shanghai" > /etc/timezone && \
rm /etc/localtime && \
dpkg-reconfigure -f noninteractive tzdata
CMD ["/usr/bin/ssmgr"]
shadowsocks-python
and shadowsocks-libev
.ss-manager -m aes-256-cfb -u --manager-address 127.0.0.1:6001
or
ssserver -m aes-256-cfb -p 12345 -k abcedf --manager-address 127.0.0.1:6001
config file:
type: s
shadowsocks:
address: 127.0.0.1:6001
manager:
address: 0.0.0.0:4001
password: '123456'
db: 'ss.sqlite'
If you want to use MySQL, the db
must like this:
db:
host: '1.1.1.1'
user: 'root'
password: 'abcdefg'
database: 'ssmgr'
And you have to close only_full_group_by
when the version of MySQL is greater than 5.7
command:
ssmgr -c /your/config/file/path.yml
--manager-address
of step 1 and in shadowsocks -> address
of step 2's config file must be same. For security reseon, we recommend you to use 127.0.0.1
instead of 0.0.0.0
.+-------------+ +-------------+ +------+
| Shadowsocks | | Shadowsocks | ... | |
| manager API | | manager API | | |
+-------------+ +-------------+ +------+
| | |
| | |
+-------------+ +-------------+ +------+
| ssmgr | | ssmgr | ... | |
| with type s | | with type s | | |
+-------------+ +-------------+ +------+
| | |
+------------+----+-------- ... ---+
|
|
+---------------+
| ssmgr plugins |
| with type m |
+---------------+
ssmgr --help
will show startup parameters info.
Usage: ssmgr [options]
Options:
-h, --help output usage information
-V, --version output the version number
-c, --config [file] config file, default: ~/.ssmgr/default.yml
-d, --db [file] sqlite3 file, sample: ~/.ssmgr/db.sqlite
-t, --type [type] type, s for server side, m for manager side
-s, --shadowsocks [address] ss-manager address, sample: 127.0.0.1:6001
-m, --manager [address] manager address, sample: 0.0.0.0:6002
-p, --password [password] manager password, both server side and manager side must be equals
-r, --run [type] run shadowsocks from child_process, sample: libev / libev:aes-256-cfb / python / python:aes-256-cfb
--debug show debug message
First, ssmgr will read the config file in --config
, and other parameters(-detsmp
) will replace the config file values.
If your want to help to translate it to other languages, please edit files here and give me a pull request.