ss-manager - ss-server controller for multi-user management and traffic statistics
ss-manager
[-AuUv] [-h|--help]
[-s
Shadowsocks-libev is a lightweight and secure socks5 proxy. It is a port of the original shadowsocks created by clowwindy. Shadowsocks-libev is written in pure C and takes advantage of libev to achieve both high performance and low resource consumption.
Shadowsocks-libev consists of five components.
ss-manager
(1) is a controller for multi-user management and
traffic statistics, using UNIX domain socket to talk with ss-server
(1).
Also, it provides a UNIX domain socket or IP based API for other software.
About the details of this API, please refer to the following PROTOCOL
section.
Set the server’s hostname or IP.
Set the password. The server and the client should use the same password.
Set the cipher.
Shadowsocks-libev accepts 18 different ciphers:
aes-128-gcm, aes-192-gcm, aes-256-gcm, rc4-md5, aes-128-cfb, aes-192-cfb, aes-256-cfb, aes-128-ctr, aes-192-ctr, aes-256-ctr, bf-cfb, camellia-128-cfb, camellia-192-cfb, camellia-256-cfb, chacha20-ietf-poly1305, salsa20, chacha20 and chacha20-ietf.
The default cipher is rc4-md5.
If built with PolarSSL or custom OpenSSL libraries, some of these ciphers may not work.
Run as a specific user.
Start shadowsocks as a daemon with specific pid file.
Set the socket timeout in seconds. The default value is 60.
Use a configuration file.
You may use "port_password" field inside this configuration file to bring up multiple ss-server instances together.
Send traffic through specific network interface.
For example, there are three interfaces in your device,
which is lo (127.0.0.1), eth0 (192.168.0.1) and eth1 (192.168.0.2).
Meanwhile, you configure ss-local
to listen on 0.0.0.0:8388 and bind to eth1.
That results the traffic go out through eth1, but not lo nor eth0.
This option is useful to control traffic in multi-interface environment.
Enable UDP relay.
Enable UDP relay and disable TCP relay.
Enable onetime authentication.
Setup name servers for internal DNS resolver (libudns).
The default server is fetched from /etc/resolv.conf
.
Enable TCP fast open.
Only available with Linux kernel > 3.7.0.
Enable port reuse.
Only available with Linux kernel > 3.9.0.
Enable ACL (Access Control List) and specify config file.
Specify UNIX domain socket address for the communication between ss-manager(1) and ss-server(1).
Only available in server and manager mode.
Specify the executable path of ss-server.
Only available in manager mode.
Enable SIP003 plugin. (Experimental)
Set SIP003 plugin options. (Experimental)
Enable verbose mode.
Print help message.
ss-manager
(1) provides several APIs through UDP protocol:
command: [JSON data]
add: {"server_port": 8001, "password":"7cd308cc059"}
remove: {"server_port": 8001}
ping
ss-manager
(1) will send back the traffic statistics:
stat: {"8001":11370}
To use ss-manager
(1), First start it and specify necessary information.
Then communicate with ss-manager
(1) through UNIX Domain Socket using UDP
protocol:
# Start the manager. Arguments for ss-server will be passed to generated
# ss-server process(es) respectively.
ss-manager --manager-address /tmp/manager.sock --executable $(which ss-server) -s example.com -m aes-256-cfb -c /path/to/config.json
# Connect to the socket. Using netcat-openbsd as an example.
# You should use scripts or other programs for further management.
nc -Uu /tmp/manager.sock
After that, you may communicate with ss-manager
(1) as described above in the
PROTOCOL section.
ss-local
(1),
ss-server
(1),
ss-tunnel
(1),
ss-redir
(1),
shadowsocks-libev
(8),
iptables
(8),
/etc/shadowsocks-libev/config.json
Last updated 2018-01-16 01:25:03 UTC