Sah (esaalii)
6 years ago
3 changed files with 0 additions and 223 deletions
Unified View
Diff Options
@ -1,34 +0,0 @@ |
|||||
FROM ubuntu:latest |
|
||||
MAINTAINER Sah Lee <contact@leesah.name> |
|
||||
|
|
||||
ENV DEPENDENCIES git-core gettext build-essential autoconf libtool libssl-dev libpcre3-dev \ |
|
||||
asciidoc xmlto zlib1g-dev libev-dev libudns-dev libsodium-dev \ |
|
||||
ca-certificates automake libmbedtls-dev |
|
||||
ENV BASEDIR /tmp/shadowsocks-libev |
|
||||
ENV SERVER_PORT 8338 |
|
||||
|
|
||||
# Set up building environment |
|
||||
RUN apt-get update \ |
|
||||
&& apt-get install --no-install-recommends -y $DEPENDENCIES |
|
||||
|
|
||||
# Get the latest code, build and install |
|
||||
RUN git clone https://github.com/shadowsocks/shadowsocks-libev.git $BASEDIR |
|
||||
WORKDIR $BASEDIR |
|
||||
RUN git submodule update --init --recursive \ |
|
||||
&& ./autogen.sh \ |
|
||||
&& ./configure \ |
|
||||
&& make \ |
|
||||
&& make install |
|
||||
|
|
||||
# Tear down building environment and delete git repository |
|
||||
WORKDIR / |
|
||||
RUN rm -rf $BASEDIR/shadowsocks-libev\ |
|
||||
&& apt-get --purge autoremove -y $DEPENDENCIES |
|
||||
|
|
||||
# Port in the config file won't take affect. Instead we'll use 8388. |
|
||||
EXPOSE $SERVER_PORT/tcp $SERVER_PORT/udp |
|
||||
|
|
||||
# Override the host and port in the config file. |
|
||||
ADD entrypoint / |
|
||||
ENTRYPOINT ["/entrypoint"] |
|
||||
CMD ["-h"] |
|
@ -1,90 +0,0 @@ |
|||||
# Shadowsocks Dockerized |
|
||||
|
|
||||
## About this image |
|
||||
|
|
||||
This image is built to ease the deployment of the Shadowsocks server daemon with Docker. |
|
||||
|
|
||||
For Shadowsocks clients, you want to visit http://shadowsocks.org/en/download/clients.html |
|
||||
|
|
||||
### What is Shadowsocks |
|
||||
|
|
||||
A secure socks5 proxy designed to protect your Internet traffic. |
|
||||
|
|
||||
See http://shadowsocks.org/ |
|
||||
|
|
||||
### What is Docker |
|
||||
|
|
||||
An open platform for distributed applications for developers and sysadmins. |
|
||||
|
|
||||
See https://www.docker.com/ |
|
||||
|
|
||||
## How to use this image |
|
||||
|
|
||||
### Start the daemon for the first time |
|
||||
|
|
||||
```bash |
|
||||
$ docker run --name shadowsocks-app --detach --publish 58338:8338 shadowsocks/shadowsocks-libev -k "5ecret!" |
|
||||
``` |
|
||||
|
|
||||
To publish UDP port for DNS tunnelling, run |
|
||||
|
|
||||
```bash |
|
||||
$ docker run --name shadowsocks-app --detach --publish 58338:8338 --publish 58338:8338/udp shadowsocks/shadowsocks-libev -k "5ecret!" |
|
||||
``` |
|
||||
|
|
||||
To see all supported arguments, run |
|
||||
|
|
||||
```bash |
|
||||
$ docker run --rm shadowsocks/shadowsocks-libev --help |
|
||||
``` |
|
||||
|
|
||||
To try the bleeding edge version of Shadowsocks, run with an `unstable` tag |
|
||||
|
|
||||
```bash |
|
||||
$ docker run --name shadowsocks-app --detach --publish 58338:8338 shadowsocks/shadowsocks-libev:unstable -k "5ecret!" |
|
||||
``` |
|
||||
|
|
||||
### Stop the daemon |
|
||||
|
|
||||
```bash |
|
||||
$ docker stop shadowsocks-app |
|
||||
``` |
|
||||
|
|
||||
### Start a stopped daemon |
|
||||
|
|
||||
```bash |
|
||||
$ docker start shadowsocks-app |
|
||||
``` |
|
||||
|
|
||||
### Upgrade |
|
||||
|
|
||||
Simply run a `docker pull` to upgrade the image. |
|
||||
|
|
||||
```bash |
|
||||
$ docker pull shadowsocks/shadowsocks-libev |
|
||||
``` |
|
||||
|
|
||||
### Use in CoreOS |
|
||||
|
|
||||
COMING SOON |
|
||||
|
|
||||
### Use with `fig` |
|
||||
|
|
||||
COMING SOON |
|
||||
|
|
||||
## Limitations |
|
||||
|
|
||||
### JSON Configuration File |
|
||||
|
|
||||
This image doesn't support the JSON configuration at the moment. But I do plan to add the support in the future. So please stay tuned. |
|
||||
|
|
||||
### Specifying Hostname & Port |
|
||||
|
|
||||
Docker containers don't have the power to specify on what hostname or port of the host should the service listen to. These have to be specified using the `--publish` argument of `docker run`. |
|
||||
|
|
||||
See [Docker run reference](https://docs.docker.com/reference/run/#expose-incoming-ports) for more details. |
|
||||
|
|
||||
## References |
|
||||
|
|
||||
* [Shadowsocks - Servers](http://shadowsocks.org/en/download/servers.html) |
|
||||
* [shadowsocks-libev](https://github.com/shadowsocks/shadowsocks-libev/blob/master/README.md) |
|
@ -1,99 +0,0 @@ |
|||||
#! /bin/bash |
|
||||
|
|
||||
IMAGE_NAME="leesah/shadowsocks-libev" |
|
||||
PORTNUMBER="8338" |
|
||||
|
|
||||
SHADOWSOCKS="/usr/local/bin/ss-server" |
|
||||
HOST="-s 0.0.0.0" |
|
||||
PORT="-p $PORTNUMBER" |
|
||||
JSON="" |
|
||||
|
|
||||
function print_usage { |
|
||||
echo |
|
||||
echo "Usage:" |
|
||||
echo " docker run $IMAGE_NAME [OPTIONS]" |
|
||||
echo |
|
||||
echo "OPTIONS" |
|
||||
echo " -k <password> password of your remote server" |
|
||||
echo |
|
||||
echo " [-m <encrypt_method>] encrypt method: table, rc4, rc4-md5" |
|
||||
echo " aes-128-cfb, aes-192-cfb, aes-256-cfb," |
|
||||
echo " bf-cfb, camellia-128-cfb, camellia-192-cfb," |
|
||||
echo " camellia-256-cfb, cast5-cfb, des-cfb, idea-cfb," |
|
||||
echo " rc2-cfb, seed-cfb, salsa20 and chacha20" |
|
||||
echo " [-t <timeout>] socket timeout in seconds" |
|
||||
echo " [-c <config_file>] config file in json" |
|
||||
echo " [-u] enable udprelay mode" |
|
||||
echo " [-v] verbose mode" |
|
||||
echo |
|
||||
echo " [--fast-open] enable TCP fast open" |
|
||||
echo " [--acl <acl_file>] config file of ACL \(Access Control List\)" |
|
||||
echo |
|
||||
echo " [-h] print this" |
|
||||
echo |
|
||||
} |
|
||||
|
|
||||
function print_usage_configfile { |
|
||||
echo "Config file is currently not supported by this image." |
|
||||
echo |
|
||||
echo "See https://github.com/leesah/shadowsocks-libev/issues/1 for current progress." |
|
||||
echo |
|
||||
} |
|
||||
|
|
||||
function print_usage_host { |
|
||||
echo "To specify the host on which ss-server should listen, please use" |
|
||||
echo " docker run -p $1::$PORTNUMBER ..." |
|
||||
echo "or" |
|
||||
echo " docker run -p $1:<HOST-PORT>:$PORTNUMBER ..." |
|
||||
echo |
|
||||
echo "See manpage of docker-run for more details:" |
|
||||
echo " man docker-run" |
|
||||
echo |
|
||||
} |
|
||||
|
|
||||
function print_usage_port { |
|
||||
echo "To specify the port on which ss-server should listen, please use" |
|
||||
echo " docker run -p $1:$PORTNUMBER ..." |
|
||||
echo |
|
||||
} |
|
||||
|
|
||||
OPTIONS=`getopt -o s:p:k:m:t:c:uvh --long server:,key:,password:,encrypt-method:,timeout:,acl:,server-port:,config-file:,fast-open,help -n "$IMAGE_NAME" -- "$@"` |
|
||||
if [ $? -ne 0 ]; then |
|
||||
print_usage |
|
||||
exit 1 |
|
||||
fi |
|
||||
|
|
||||
eval set -- "$OPTIONS" |
|
||||
while true; do |
|
||||
case "$1" in |
|
||||
-k|--key|--password) PASSWORD="-k $2"; shift 2;; |
|
||||
-m|--encrypt-method) ENCRYPTION="-m $2"; shift 2;; |
|
||||
-t|--timeout) TIMEOUT="-t $2"; shift 2;; |
|
||||
--acl) ACL="--acl $2"; shift 2;; |
|
||||
--fast-open) FAST_OPEN="--fast-open"; shift;; |
|
||||
-u) UDP_RELAY="-u"; shift;; |
|
||||
-v) VERBOSE="-v"; shift;; |
|
||||
--) shift; break;; |
|
||||
|
|
||||
-c|--config-file) print_usage_configfile; exit 128;; |
|
||||
-s|--server) print_usage_host "$2"; exit 128;; |
|
||||
-p|--server-port) print_usage_port "$2"; exit 128;; |
|
||||
-h|--help) print_usage; exit 0;; |
|
||||
|
|
||||
*) |
|
||||
echo "$IMAGE_NAME: unexpected argument: $1" |
|
||||
print_usage |
|
||||
exit 1;; |
|
||||
esac |
|
||||
done |
|
||||
|
|
||||
if [ -z "$HOST" -o -z "$PORT" -o -z "$PASSWORD" ]; then |
|
||||
echo "$IMAGE_NAME: insufficient arguments." |
|
||||
print_usage |
|
||||
exit 1 |
|
||||
fi |
|
||||
|
|
||||
echo "Launching Shadowsocks server..." |
|
||||
echo "To watch the output, run" |
|
||||
echo " docker ps -ql | xargs docker logs -f" |
|
||||
$SHADOWSOCKS $HOST $PORT $PASSWORD $ENCRYPTION $TIMEOUT $UDP_RELAY $VERBOSE $FAST_OPEN $ACL $JSON |
|
Write
Preview
Loading…
Cancel
Save