a tunnel proxy that help you get through firewalls

npm install shadowsocks
30 downloads in the last day
236 downloads in the last week
997 downloads in the last month


Current version: 1.4.11 Build Status

shadowsocks-nodejs is a lightweight tunnel proxy which can help you get through firewalls. It is a port of shadowsocks.

Both TCP CONNECT and UDP ASSOCIATE are implemented.

Other ports and clients can be found here.


Download the lastest Node stable release. You can find them here. Don't just use master branch of Node source code from Github! It's not stable.


npm install -g shadowsocks

Create a file named config.json, with the following content.


Explaination of the fields:

server          your server IP (IPv4/IPv6), notice that your server will listen to this IP
server_port     server port
local_port      local port
password        a password used to encrypt transfer
timeout         in seconds
method          encryption method, "bf-cfb", "aes-256-cfb", "des-cfb", "rc4", etc. Default is table

cd into the directory of config.json. Run ssserver on your server. To run it in the background, run nohup ssserver > log &.

On your client machine, run sslocal.

Change the proxy setting in your browser into

protocol: socks5
port:     your local_port


You can use args to override settings from config.json.

sslocal -s server_name -p server_port -l local_port -k password -m bf-cfb -b local_address
ssserver -p server_port -k password -m bf-cfb
ssserver -c /etc/shadowsocks/config.json

Example of multi-user server support can be found in test/config-multi-passwd.json.


You can build coffee source code and test it:

npm install -g coffee-script
cake build test



Bugs and Issues

Please visit issue tracker

Mailing list:

Also see troubleshooting

npm loves you