Public Repository

Last pushed: 3 years ago
Short Description
start shadowsocks-go server in docker
Full Description


This image is built on google/golang and shadowsocks-go project to provide easy setup for shadowsocks servers.

Baisc Usage

  1. Creating a shadowsocks server configuration named config.json (reference) e.g.:

         "server_port": 8388,
         "password": "mypass",
         "method": "salsa20",
         "timeout": 600
  1. Start a docker to serve shadowsocks proxy (in the background):

     docker run -d -v /path/to/your/config.json:/shadowsocks-config -P genzj/shadowsocks-server-go
  2. Check the exposed ports

     docker ps


     CONTAINER ID        IMAGE                         COMMAND                CREATED              STATUS              PORTS                     NAMES
     c2851081bcf8        genzj/shadowsocks-server-go   "shadowsocks-server    About a minute ago   Up About a minute>8388/tcp   pensive_lumiere

Your client should be configured with the host ports (32768 in the example) as command output shows, not the port 8388.

Change Listening Port

By default the image exposes 8388 port only. But it's still possible to configure the server port or use multiple users with different passwords.

For example with a config.json exposing two custom ports:

    "port_password": {
        "10800": "password1",
        "10801": "password2"
    "method": "salsa20",
    "timeout": 600

To expose the two ports on host, start docker like:

docker run -p 10800:10800 -p 10801:10801 -d -v /path/to/your/config.json:/shadowsocks-config genzj/shadowsocks-server-go

Check with docker ps, it should be like:

CONTAINER ID        IMAGE                         COMMAND                CREATED             STATUS              PORTS                                                      NAMES
1b826ace7c49        genzj/shadowsocks-server-go   "shadowsocks-server    2 minutes ago       Up 2 minutes>10800/tcp,>10801/tcp, 8388/tcp   evil_elion

8388 is still there although, it is not being exposed to external network.

Docker Pull Command