使用 Docker 在 Linux 上快速搭建 Shadowsocks 服务端教程

为什么选择 Docker 部署 Shadowsocks

  • 环境隔离:使用 Docker 容器可以将 Shadowsocks 服务与系统其它进程隔离,减少与系统环境的冲突。
  • 快速部署与便于管理:通过 Docker Pull 和 Run 命令,你可以在几分钟内搭建起 Shadowsocks 服务端。
  • 可移植性:容器化意味着你可以轻松把配置迁移到其它 Linux 服务器,只要安装了 Docker。

准备工作

在正式部署之前,请先完成以下准备:

  • 一台运行 Linux(如 Ubuntu、Debian、CentOS 等)的服务器
  • 已安装 Docker,可以通过 curl -fsSL https://get.docker.com | sh 快速安装
  • 基本的网络知识(端口、协议等)

拉取 Shadowsocks 镜像

在你的 Linux 服务器上,通过以下命令拉取官方的 Shadowsocks-libev Docker 镜像(轻量、高性能版本):

docker pull shadowsocks/shadowsocks-libev

这个镜像由 Shadowsocks 官方维护,是部署服务端的常用选择。

创建 Shadowsocks 配置文件

虽然你也可以直接通过环境变量传参启动容器,但使用 JSON 配置文件更灵活。建议操作如下:

1. 在主机上创建目录保存配置文件:

mkdir -p /etc/shadowsocks-libev

2. 编写 config.json:

{
  "server": "0.0.0.0",
  "server_port": 8388,
  "password": "你的强密码",
  "timeout": 300,
  "method": "aes-256-gcm",
  "fast_open": false,
  "mode": "tcp_and_udp"
}
  • server: 设置为 0.0.0.0 使容器监听所有网卡
  • server_port: Shadowsocks 服务监听端口
  • password: 强密码非常重要,尽量生成复杂密码
  • method: 加密方式,推荐使用 AEAD 类加密方式(如 aes-256-gcm)以提高安全性
  • fast_open: 可选,通常关闭
  • mode: 支持 TCP + UDP

3. 保存后退出。

通过 Docker 启动 Shadowsocks 服务端

以下是两种启动方式:

方法一:使用 JSON 配置文件

docker run -d \
  --name shadowsocks-libev \
  -v /etc/shadowsocks-libev/config.json:/etc/shadowsocks-libev/config.json \
  -p 8388:8388 \
  -p 8388:8388/udp \
  shadowsocks/shadowsocks-libev \
  ss-server -c /etc/shadowsocks-libev/config.json
  • -v:挂载本地配置文件
  • -p:映射 TCP 和 UDP 端口
  • 容器内部通过 ss-server -c 指定配置文件启动

方法二:使用环境变量(不推荐生产环境)

docker run -d \
  --name shadowsocks-libev \
  -e PASSWORD="你的强密码" \
  -e METHOD="aes-256-gcm" \
  -p 8388:8388 \
  -p 8388:8388/udp \
  shadowsocks/shadowsocks-libev

这种方式部署简单,但是不够灵活。

验证 Shadowsocks 服务是否运行

查看容器状态:

docker ps

你应该能看到 shadowsocks-libev 容器正在运行。

检查日志(可选):

docker logs shadowsocks-libev

日志会显示 Shadowsocks 启动情况,以及是否有错误。

客户端配置

在客户端(如 Windows、macOS、Linux 或移动端)上配置 Shadowsocks 时,填写以下信息:

  • 服务器(Server):你的 VPS 或主机 IP
  • 端口(Port):与你在容器中映射的端口(如 8388)
  • 密码(Password):与 config.json 中相同
  • 加密方式(Method):例如 aes-256-gcm

然后启动客户端,连接服务器,即可使用加密代理。

安全性与性能优化建议

使用强密码和 AEAD 加密方式

推荐使用 aes-256-gcm 等安全性较高的加密算法,并设置复杂的密码。

使用防火墙保护端口

建议仅打开 Shadowsocks 服务端口(如 8388),关闭其他不必要服务端口。

开启 Docker 的重启策略

如果你想让 Shadowsocks 容器在系统重启后自动启动,可以加上 --restart unless-stopped 参数:

docker run -d \
  --restart unless-stopped \
  --name shadowsocks-libev \
  -v /etc/shadowsocks-libev/config.json:/etc/shadowsocks-libev/config.json \
  -p 8388:8388 \
  -p 8388:8388/udp \
  shadowsocks/shadowsocks-libev \
  ss-server -c /etc/shadowsocks-libev/config.json

监控资源使用

如果你在 VPS 上部署,注意监控容器的内存和网络使用情况,避免因资源不足导致服务不稳定。

定期更新镜像

使用新版本镜像可以获得性能提升和安全修复。可以定期通过 docker pull 拉取新版本,再重启容器。

常见问题与排查

  • 连接不上:请检查 VPS 的安全组、防火墙是否开放了 TCP/UDP 端口。
  • 性能不理想:可以尝试调整加密方式、开启 fast_open 选项。
  • 日志太少:使用 docker logs 查看启动日志,也可以在配置文件中开启更高日志级别(如果镜像支持)。
  • 容器重启失败:确认挂载的配置文件路径和内容是否正确。

总结

通过 Docker 在 Linux 上搭建 Shadowsocks 服务端,是一种快速、安全、灵活的方式。你只需拉取镜像、编写简单配置文件、运行一个容器,就能构建自己的加密代理节点。之后,再配合客户端使用,并关注安全性优化,就能稳定、高效地使用 Shadowsocks 进行加密代理。

评论 添加
暂无评论,来聊两句?