Node.js JavaScript HTML CSS shadowsocks
Need help with shadowsocks-manager?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
shadowsocks

Description

A shadowsocks manager tool for multi user and traffic control.

4.0K Stars 1.6K Forks GNU General Public License v3.0 2.4K Commits 7 Opened issues

Services available

Need anything else?

NPM version npm license

shadowsocks-manager

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.

WebGUI Demo:

https://app.3840x2160.work

FreeAccount Demo:

https://free.gyteng.com

Dependencies

  • Node.js 12.*
  • Redis

Install

From source:

git clone https://github.com/shadowsocks/shadowsocks-manager.git
cd shadowsocks-manager
npm i

use

node server.js
to run this program.

From npm:

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.

From docker:

docker run --name ssmgr -idt -v ~/.ssmgr:/root/.ssmgr --net=host gyteng/ssmgr [ssmgr params...]

Build docker image:

here is the

Dockerfile
FROM ubuntu:18.04
MAINTAINER gyteng 
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/[email protected] && \
    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"]

Usage

  1. Start shadowsocks with manager API, it supports
    shadowsocks-python
    and
    shadowsocks-libev
    . For example, you can run this command:
    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
    
  2. run ssmgr with type s:

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
  1. If you have several servers, you have to run step 1 and step 2 in every server.
    The listening address in
    --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
    .
  2. Now you can use the plugins to manage them. You can read the details in plugins readme page.
+-------------+    +-------------+       +------+
| Shadowsocks |    | Shadowsocks |  ...  |      |
| manager API |    | manager API |       |      |
+-------------+    +-------------+       +------+
       |                 |                  |
       |                 |                  |
+-------------+    +-------------+       +------+
| ssmgr       |    | ssmgr       |  ...  |      |
| with type s |    | with type s |       |      |
+-------------+    +-------------+       +------+
       |                 |                  |
       +------------+----+--------  ...  ---+
                    |
                    |
             +---------------+
             | ssmgr plugins |
             |  with type m  |
             +---------------+

Plugins

telegram
freeAccount
webgui

Parameter

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.

Translate

If your want to help to translate it to other languages, please edit files here and give me a pull request.

Telegram Group

Join the group if you have some problem: https://t.me/ssmgr

VPS recommendation

Donate

If you find this project helpful, please consider making a donation:

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.