基础环境
1.1 更新系统软件包列表
首先,连接到您的服务器,然后运行以下命令来更新系统的软件包索引:
1 | sudo apt-get update -y |
1.2 安装 Docker 的依赖项
接下来,安装一些必要的软件包,以允许 apt
通过 HTTPS 使用 Docker 的软件仓库:
1 | sudo apt-get install -y \ |
1.3 添加 Docker 官方 GPG 密钥
为了安全起见,我们需要添加 Docker 的官方 GPG 密钥。这会验证我们下载的 Docker 软件包是官方发布的,未经篡改。
1 | # 创建用于存放密钥的目录 |
1.4 设置 Docker 的 APT 软件源
现在,我们将 Docker 的官方软件源地址添加到我们系统的源列表中。这样,apt
命令就能找到并安装 Docker 了。
1 | echo \ |
1.6 (可选但推荐) 配置非 root 用户运行 Docker
每次都输入 sudo
来运行 Docker 命令很麻烦。我们可以将当前用户添加到 docker
用户组,从而免去 sudo
。
1 | # 将您的用户($USER 是一个环境变量,代表当前用户)添加到 docker 组 |
重要提示: 执行此命令后,您需要完全退出 SSH 会话并重新登录,才能使权限更改生效!
第二步:配置并部署 Shadowsocks 服务
环境准备好后,我们就可以开始定义和部署我们的 Shadowsocks 服务了。
2.1 创建一个工作目录
为我们的项目创建一个专门的目录,这样可以保持整洁。
1 | # 创建一个名为 ss 的目录并进入 |
2.2 编写 docker-compose.yml
配置文件
这是整个部署的核心。我们将创建一个名为 docker-compose.yml
的文件,它像一份蓝图,详细描述了我们的服务应该如何运行。
使用您喜欢的文本编辑器(这里以 nano
为例,它比 vim
更易上手)创建文件:
1 | vim docker-compose.yml |
然后,将以下内容复制并粘贴到编辑器中:
1 | # 使用 Compose 文件格式的版本 3 |
重要配置修改:
PASSWORD
: 将YOUR_STRONG_PASSWORD_HERE
替换为您自己设定的一个强密码。这是您的客户端连接时需要用到的凭证。ports
: 如果您服务器的8388
端口已被其他服务占用,您可以修改主机端口。例如,改成"10086:8388/tcp"
,这样您的客户端就需要连接服务器的10086
端口。
修改完成后,在 nano
编辑器中,按 Ctrl + X
,然后按 Y
,最后按 Enter
保存并退出。
2.3 启动 Shadowsocks 服务
现在,激动人心的时刻到了!在 docker-compose.yml
文件所在的目录(即 ~/ss
),运行以下命令:
1 | # 注意:如果您在 1.6 步中配置了用户组,这里就不需要 sudo 了 |
up
: 告诉 Docker Compose 启动并运行服务。-d
: (--detach
) 参数表示在后台运行服务。这是必须的,否则当您关闭 SSH 窗口时,服务也会停止。
Docker Compose 现在会自动:
- 检查
docker-compose.yml
文件。 - 从 Docker Hub 上拉取
shadowsocks/shadowsocks-libev
镜像(如果是第一次运行)。 - 根据您的配置创建并启动一个名为
shadowsocks
的容器。
第三步:验证服务与客户端配置
服务启动后,我们需要确认它是否正常运行,并配置客户端进行连接。
3.1 检查容器运行状态
运行以下命令查看当前正在运行的容器:
1 | docker ps |
您应该能看到类似下面的输出:
1 | CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
请关注以下几点:
IMAGE
: 确认是shadowsocks/shadowsocks-libev
。STATUS
: 必须是Up ...
,表示正在健康运行。如果是Exited
,说明启动失败。PORTS
: 确认端口映射正确。NAMES
: 确认是shadowsocks
。
3.2 查看服务日志
如果容器启动失败,或者您想确认服务的内部运行情况,查看日志是最佳方式:
1 | docker logs shadowsocks |
成功的日志会显示服务正在监听端口:
1 | INFO: initializing ciphers... chacha20-ietf-poly1305 |
3.3 配置您的客户端
现在,您可以在您的电脑或手机上配置 Shadowsocks 客户端了。填入以下信息:
- 服务器地址 (Server Address):
您服务器的公网 IP 地址
- 服务器端口 (Server Port):
8388
(或者您在docker-compose.yml
中设置的主机端口) - 密码 (Password):
您在 docker-compose.yml 中设置的密码
- 加密方法 (Encryption/Method):
chacha20-ietf-poly1305
保存配置并连接,现在您应该可以正常使用了!
第四步:常用管理命令
- 停止服务:
1
2# 在 ~/ss 目录下运行
docker compose down - 重启服务:
1
2# 在 ~/ss 目录下运行
docker compose restart - 更新服务 (例如更新 Shadowsocks 镜像):
1
2
3
4
5# 在 ~/ss 目录下运行
# 1. 拉取最新的镜像
docker compose pull
# 2. 重新创建并启动容器
docker compose up -d
客户端
- windows
1 | https://github.com/shadowsocks/shadowsocks-windows |
- android
1 | https://github.com/shadowsocks/shadowsocks-android |
代理模式
-
禁用 (Disabled):不使用代理。等同于取消勾选“启用系统代理”。
-
PAC 模式 (PAC):推荐日常使用。此模式下,客户端会根据一个名为 PAC (Proxy Auto-Config) 的规则列表来判断。
-
全局模式 (Global):所有网络流量都强制通过代理服务器。