在 docker 中运行 shadowsocks 客户端

deepin 升级了以后, 不知道是哪个系统包被升级了, 我的 shadowsocks 客户端一直不能正常使用正常使用, 尝试和很多方法没有解决. 最后我终于开窍了: 此路不通, 我换条路走.

在 chrome 里面配置了插件 SwitchyOmega , 这个插件里面配置了代理服务器的地址和端口, 通常这个地址和端口是本机的 shadowsocks client, 好傻. 宿主机器上依赖有问题, 那我何不将 shadowsocks client 允许在 docker 中呢, 说这我就到 dockerhub 上找到了对于的镜像:

* https://hub.docker.com/r/mritd/shadowsocks/

符合条件的镜像很多, 这个是使用最多的一个. 于是研究了一下这个镜像,Dockerfile 写的挺复杂的,启动参数也不够友好. 于是,参考他的 Dockerfile 删掉了一些功能和配置. 我从新打了一个新的镜像, 参数更加简单了, 对 docker-compose 支持也更加友好了.

1
docker pull hellojukay/shadowsocks:1.0.0

我也将这个镜像开源到 dockerhub 上了, 使用方式非常简单

https://hub.docker.com/r/hellojukay/shadowsocks

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: '2'
services:
ssclient:
image: hellojukay/shadowsocks:1.0.0
container_name: 'ssclient'
restart: always
ports:
- 1080:1080
environment:
SERVER: 'xxx'
PORT: xxx
LISTEN: 1080
METHOD: 'chacha20-ietf-poly1305'
PASSWD: 'q6Gsdfsdfx9sd'

使用 docker-compose 启动即可

1
docker-compose up -d

启动成功以后可以看到,shadowsocks 绑定了本地的 1080 端口了

1
2
3
4
hellojukay@local blog (master) $ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
05ba33138b43 hellojukay/shadowsocks:1.0.0 "/bin/sh -c /entrypo…" 2 days ago Up 23 minutes 0.0.0.0:1080->1080/tcp ssclient
hellojukay@local blog (master) $

又能开心的科学上网了.