Docker 部署 Shadowsocks-libev 服务最新版

网络上很多 Docker 部署 Shadowsocks-libev 服务的教程,但是包括官方没有一个是使用外置 config 文件的,使用参数运行 Shadowsocks-libev 会导致很多麻烦,比如修改密码、加密方式等问题,并且我们不知道第三方的 shadowsocks-libev 镜像究竟有没有夹带“私货”。

一、创建 Dockerfile

mkdir shadowsocks-libev && cd shadowsocks-libev
vi Dockerfile

复制粘贴:

FROM alpine

ENV TZ=Asia/Shanghai
ENV CONFIG_PATH=/etc/shadowsocks-libev/config.json
ENV ARGS=

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN set -ex && \
    apk add --no-cache udns && \
    apk add --no-cache --virtual .build-deps \
                                git \
                                autoconf \
                                automake \
                                make \
                                build-base \
                                curl \
                                libev-dev \
                                c-ares-dev \
                                libtool \
                                linux-headers \
                                libsodium-dev \
                                mbedtls-dev \
                                pcre-dev \
                                tar \
                                udns-dev && \

    cd /tmp/ && \
    git clone https://github.com/shadowsocks/shadowsocks-libev.git && \
    cd shadowsocks-libev && \
    git submodule update --init &&\
    ./autogen.sh && \
    ./configure --prefix=/usr --disable-documentation && \
    make install && \
    cd .. && \

    runDeps="$( \
        scanelf --needed --nobanner /usr/bin/ss-* \
            | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \
            | xargs -r apk info --installed \
            | sort -u \
    )" && \
    apk add --no-cache --virtual .run-deps $runDeps && \
    apk del .build-deps && \
    rm -rf /tmp/shadowsocks-libev

USER nobody

CMD exec ss-server -c $CONFIG_PATH $ARGS

二、创建 Shadowsocks-libev 配置文件

mkdir /etc/shadowsocks-libev
vi /etc/shadowsocks-libev/config.json

复制粘贴:

{
"server":"0.0.0.0",
"server_port":8388,//修改为你想要的端口,建议不要使用默认端口
"password":"your password",//修改为你想要的密码,建议带特殊字符
"timeout":600,//超时,建议600
"method":"xchacha20-ietf-poly1305",//加密方式
"fast_open":true,
"mode":"tcp_only"//仅tcp,如果需要开启udp请改为:tcp_and_udp
}

三、运行 Shadowsocks-libev

1、创建镜像

docker build -t shadowsocks-libev .

2、启动容器

docker run --restart=always \
--network=host \
--name=shadowsocks-libev \
-v /etc/shadowsocks-libev:/etc/shadowsocks-libev \
-i -t -d \
shadowsocks-libev

到此可以愉快的使用 Shadowsocks 客户端连接了!

关于修改 Shadowsocks-libev 配置

执行:

vi /etc/shadowsocks-libev/config.json

修改自己想要的配置参数,保存退出后重启 shadowsocks-libev 容器即可生效

docker restart shadowsocks-libev