Docker 运行 Shadowsocks
 Docker 运行 Shadowsocks 
 当更换一台新的 Linux 服务器,需要快速搭建 Shadowsocks 时,采用 Docker 镜像安装将是个十分便捷的选择:无须考虑各种软件依赖对机器环境的污染(Linux 跑服务不用 Docker 就是原罪)。
虽然这种操作的频率很低,但在实施的时候,通常要翻阅相关的官方文档,略烦。所以本文将略微讲述采用 Docker 搭建 Shadowsocks Server 的过程。
安装 Docker Engine
因为是裸机,所以安装 Docker Engine 是不能偷懒的,参考 Docker 官方文档 完成安装。出于本人的个人需要,下面将摘录在 Ubuntu Server 安装的步骤。
配置 apt 仓库
- 为了允许服务器通过 HTTPS 拉取 Docker 仓库,需要更新 apt 索引以及安装所需的 packages: - 1 2 3 4 5 6 7 - $ sudo apt-get update $ sudo apt-get install -y \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common 
- 添加 Docker 的 GPG key: - 1 - $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 
- 正确的指纹是 - 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88,通过后八位字符验证指纹:- 1 2 3 4 5 6 - $ sudo apt-key fingerprint 0EBFCD88 pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ unknown] Docker Release (CE deb) <docker@docker.com> sub rsa4096 2017-02-22 [S] 
- 添加 - x86_64/amd64仓库- 1 2 3 4 - $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" 
安装
更新索引再安装即可:
1
2
$ sudo apt-get update
$ sudo apt-get install -y docker-ce docker-ce-cli containerd.io
验证是否正确安装,运行 hello-world 镜像:
1
$ sudo docker run hello-world
优化使用体验
- 为非 root 用户添加使用 Docker 的权限: - 1 2 - $ sudo usermod -aG docker $USER $ newgrp docker 
- 配置开机启动 Docker 以及 container: - 1 2 - $ sudo systemctl enable docker.service $ sudo systemctl enable containerd.service 
获取 Shadowsocks-libev 镜像
安装好 Docker Engine 后,就可以进入正题了:
1
$ docker pull shadowsocks/shadowsocks-libev
默认会 pull 最新版本,需要指定旧版本可上 DockerHub 查询 Tags 列表。
运行 Shadowsocks Server
1
2
3
4
5
6
7
8
$ export passwd=<passwd> method=<encrypt_method> port=<server_port>
$ docker run --name ssserver \
      -e PASSWORD=$passwd \
      -e METHOD=$method \
      -e SERVER_PORT=$port \
      -p $port:$port -p $port:$port/udp \
      -d --restart always shadowsocks/shadowsocks-libev
把上述 <xxx> 部分参数替换为自己所需内容即可,详细参数说明可查看 GitHub 项目文档。
最后,请确保 VPS 控制台为端口 port 开启 TCP/UDP 的入站出站过滤。
 This post is licensed under  CC BY 4.0  by the author.
Comments powered by Disqus.