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.