{"id":17312865,"url":"https://github.com/9seconds/docker-shadow","last_synced_at":"2025-03-27T01:16:16.730Z","repository":{"id":142207106,"uuid":"132345183","full_name":"9seconds/docker-shadow","owner":"9seconds","description":"Container with Shadowsocks/KCPTun","archived":false,"fork":false,"pushed_at":"2019-03-29T11:16:55.000Z","size":32,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T06:41:35.702Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/9seconds.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-05-06T14:17:05.000Z","updated_at":"2021-06-11T01:34:07.000Z","dependencies_parsed_at":"2023-03-14T14:15:42.061Z","dependency_job_id":null,"html_url":"https://github.com/9seconds/docker-shadow","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9seconds%2Fdocker-shadow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9seconds%2Fdocker-shadow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9seconds%2Fdocker-shadow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/9seconds%2Fdocker-shadow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/9seconds","download_url":"https://codeload.github.com/9seconds/docker-shadow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245761303,"owners_count":20667895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T12:44:53.192Z","updated_at":"2025-03-27T01:16:16.710Z","avatar_url":"https://github.com/9seconds.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# docker-shadow\n\nContainer with Shadowsocks/KCPTun.\n\n\nInstallation\n------------\n\nFirst option is to pull from Docker registry:\n\n```console\n$ docker pull nineseconds/docker-shadow\n```\n\nAnother option is to build an image:\n\n```console\n$ git clone https://github.com/9seconds/docker-shadow.git\n$ docker build --pull -t shadow ./docker-shadow\n```\n\nRun\n---\n\nHere is the help:\n\n```console\nusage: shadowsocks [-h] [-p SERVER_PORT] [-k PASSWORD] [-n NAMESERVER]\n                   [-e {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,chacha20-ietf}]\n                   ip {obfs,kcptun,show} ...\n\nRun shadowsocks/kcptun with supervisord.\n\npositional arguments:\n  ip                    IP address of ShadowSocks server (required for QR\n                        code)\n  {obfs,kcptun,show}\n    obfs                OBFS plugin settings.\n    kcptun              KCPTun plugin settings.\n    show                Show connection settings.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -p SERVER_PORT, --server-port SERVER_PORT\n                        Port to listen on. (default: 443)\n  -k PASSWORD, --password PASSWORD\n                        Password to use. Default is autogenerated. (default:\n                        None)\n  -n NAMESERVER, --nameserver NAMESERVER\n                        Nameserver to use. (default: 1.1.1.1)\n  -e {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,chacha20-ietf}, --encryption_mode {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,chacha20-ietf}\n                        Cipher to use. (default: chacha20-ietf-poly1305)\n```\n\nIf you want to have OBFS:\n\n```console\nusage: shadowsocks ip obfs [-h] [-t HOST] {tls,http}\n\npositional arguments:\n  {tls,http}            Which mode is to use for obfuscating.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -t HOST, --host HOST  Hostname for obfuscating. Default is autogenerated.\n                        (default: None)\n```\n\nIf you want to have KCPTun:\n\n```console\nusage: shadowsocks ip obfs [-h] [-t HOST] {tls,http}\n\npositional arguments:\n  {tls,http}            Which mode is to use for obfuscating.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -t HOST, --host HOST  Hostname for obfuscating. Default is autogenerated.\n                        (default: None)\nkcptun\nusage: shadowsocks ip kcptun [-h] [-p PORT] [-r {normal,fast,fast2,fast3}]\n                             [-t MTU] [-s SNDWND] [-w RCVWND] [-a DATASHARD]\n                             [-d PARITYSHARD] [-q DSCP] [-z] [-y KEY]\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -p PORT, --port PORT  Default port to listen on (default: 444)\n  -r {normal,fast,fast2,fast3}, --profile {normal,fast,fast2,fast3}\n                        Profile to use with KCPTun. (default: fast2)\n  -t MTU, --mtu MTU     MTU for packets. (default: 1350)\n  -s SNDWND, --sndwnd SNDWND\n                        Send window in packets. (default: 128)\n  -w RCVWND, --rcvwnd RCVWND\n                        Receive window in packets. (default: 512)\n  -a DATASHARD, --datashard DATASHARD\n                        Reed-Solomon erasure coding - datashard (default: 10)\n  -d PARITYSHARD, --parityshard PARITYSHARD\n                        Reed-Solomon erasure coding - parityshard (default: 3)\n  -q DSCP, --dscp DSCP  DSCP(6 bits) (default: 0)\n  -z, --compression     Enable compression (default: False)\n  -y KEY, --key KEY     Key to work with KCPTun. Default is random generated.\n                        (default: None)\n```\n\nTo run Shadowsocks, just do following:\n\n```console\n$ docker run --rm=true -it --name shadow -p 6500:444/udp -p 6443:443/tcp -p 6443:443/udp shadow -p 6443 \u003cip addr\u003e obfs tls\n```\n\nWhere `\u003cip addr\u003e` is IP address of your machine. 443 port of container (both UDP and TCP) is for Shadowsocks, 444 - for KCPTun.\n\nAfter you run you container, you need a way on how to get a link for your application. To get that, use following command:\n\n```console\n$ docker exec -it shadow sh -c 'show'\n```\n\nThis will show SS SIP002 URL and a link to QR code\n\n\nCaveats\n-------\n\n* OBFS mode works fine with DNS propagation\n* KCPTun works without DNS propagation (because KCP does not work well with UDP at this moment)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F9seconds%2Fdocker-shadow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F9seconds%2Fdocker-shadow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F9seconds%2Fdocker-shadow/lists"}