Sah (esaalii)
6 years ago
3 changed files with 0 additions and 223 deletions
Split 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