Shadowsocks 多用户服务器搭建教程

目录

1. Shadowsocks 简介

Shadowsocks 是一种代理软件,主要用于突破网络审查,访问被屏蔽的网站。它采用 SOCKS5 协议,加密传输数据,隐藏了原始流量,可以有效规避网络审查。

与传统的 VPN 相比,Shadowsocks 的优势在于:

  • 更快的连接速度
  • 更低的成本
  • 更小的系统开销
  • 更好的隐私保护

2. 多用户 Shadowsocks 服务器的优势

搭建一个支持多用户的 Shadowsocks 服务器,可以带来以下优势:

  • 资源共享: 单个服务器可以为多个用户提供服务,提高资源利用率。
  • 流量管理: 可以针对不同用户设置不同的流量限制,实现更精细的流量管理。
  • 用户权限控制: 可以对不同用户设置不同的权限,如禁止某些用户访问特定网站等。
  • 统一管理: 可以通过一个管理界面集中管理所有用户,方便维护和扩展。

3. 选择合适的服务器

选择一台性能良好、网络环境优秀的服务器非常重要。我们建议选择以下类型的服务器:

  • VPS 或云服务器: 性能稳定,网络质量好,适合搭建 Shadowsocks 服务器。
  • 海外服务器: 如美国、日本等地的服务器,可以更好地访问被屏蔽的网站。
  • 高配置服务器: 处理器、内存、带宽等配置越高,支持的并发用户越多。

4. 安装 Shadowsocks 服务端

4.1 使用 Docker 部署

使用 Docker 部署 Shadowsocks 服务端非常方便,只需几行命令即可完成:

docker pull shadowsocks/shadowsocks-libev docker run -dt –name shadowsocks -p 8388:8388 -p 8388:8388/udp -e PASSWORD=your_password -e METHOD=aes-256-cfb shadowsocks/shadowsocks-libev

4.2 手动安装

如果不使用 Docker,也可以手动安装 Shadowsocks 服务端。以 CentOS 7 为例:

  1. 安装依赖包:

    yum install -y python3 python3-pip

  2. 安装 Shadowsocks 服务端:

    pip3 install shadowsocks

  3. 创建配置文件 /etc/shadowsocks.json,内容如下:

    { “server”:”0.0.0.0″, “server_port”:8388, “password”:”your_password”, “timeout”:300, “method”:”aes-256-cfb” }

  4. 启动 Shadowsocks 服务:

    ssserver -c /etc/shadowsocks.json -d start

5. 配置 Shadowsocks 服务端

5.1 添加用户

Shadowsocks 支持多用户模式,可以为每个用户设置不同的密码和流量限制。

以 Docker 部署为例,可以通过环境变量 MULTI_USER_MODE=true 开启多用户模式,然后在 USER_PASSWD 环境变量中设置用户名和密码,格式为 user1:pass1,user2:pass2

手动安装的话,可以编辑 /etc/shadowsocks.json 配置文件,在 users 字段中添加用户信息:

{ “server”:”0.0.0.0″, “server_port”:8388, “password”:”your_password”, “timeout”:300, “method”:”aes-256-cfb”, “users”: { “user1”: “pass1”, “user2”: “pass2” }}

5.2 设置加密方式和端口

/etc/shadowsocks.json 中,可以设置加密方式和端口:

  • method: 加密方式,常用的有 aes-256-cfbchacha20-ietf-poly1305 等。
  • server_port: 服务端监听的端口号。

5.3 启动服务

Docker 部署的话,直接启动容器即可:

docker start shadowsocks

手动安装的话,使用以下命令启动服务:

ssserver -c /etc/shadowsocks.json -d start

6. 客户端设置

Shadowsocks 客户端有多种选择,包括 Windows、macOS、Android、iOS 等平台。

以 Windows 为例,可以下载 Shadowsocks Windows 客户端,然后按以下步骤设置:

  1. 下载并安装 Shadowsocks Windows 客户端。
  2. 在服务器选项卡中,添加服务器信息:
    • 服务器地址: your_server_ip
    • 服务器端口: 8388
    • 密码: your_password
    • 加密方式: aes-256-cfb
  3. 点击”确定”保存设置,然后点击”连接”即可使用。

其他平台的客户端设置方法类似,可以参考相应的使用文档。

7. 用户管理

7.1 添加用户

可以通过编辑 /etc/shadowsocks.json 配置文件,在 users 字段中添加新的用户信息:

{ “server”:”0.0.0.0″, “server_port”:8388, “password”:”your_password”, “timeout”:300, “method”:”aes-256-cfb”, “users”: { “user1”: “pass1”, “user2”: “pass2”, “new_user”: “new_password” }}

然后重启 Shadowsocks 服务即可。

7.2 删除用户

同样编辑 /etc/shadowsocks.json 配置文件,删除对应的用户信息即可。

7.3 修改用户密码

修改用户密码也是编辑 /etc/shadowsocks.json 配置文件,找到对应用户的密码字段,修改即可。

8. 流量监控

Shadowsocks 服务端没有内置的流量监控功能,但可以使用第三方工具进行监控。

例如 shadowsocks-manager 是一个 Shadowsocks 多用户管理工具,支持流量统计、用户管理等功能。可以通过以下步骤安装和配置:

  1. 安装 shadowsocks-manager:

    npm install -g shadowsocks-manager

  2. 创建配置文件 /etc/shadowsocks-manager.json,内容如下:

    { “type”: “server”, “shadowsocks”: { “port”: 8388, “password”: “your_password”, “method”: “aes-256-cfb” }, “manager”: { “address”: “0.0.0.0:6001”, “password”: “manager_password” } }

  3. 启动 shadowsocks-manager:

    ssm start

  4. 访问 http://your_server_ip:6001 即可查看流量统计和用户管理界面。

9. 常见问题 FAQ

Q: 为什么我连接 Shadowsocks 服务器很慢?

A: 造成连接速度慢的原因可能有以下几点:

  • 服务器性能不足,如 CPU、内存、带宽等配置较低。
  • 服务器所在地理位置较远,网络质量较差。
  • 服务器所在国家/地区的网络环境不佳。
  • 客户端网络环境问题,如 ISP 限制、防火墙等。

建议选择性能较好、网络环境优秀的服务器,并尝试不同的加密方式和端口。

Q: 如何限制单个用户的流量使用?

A: 在 /etc/shadowsocks.json 配置文件中,可以为每个用户设置流量限制。例如:

{ “server”:”0.0.0.0″, “server_port”:8388, “password”:”your_password”, “timeout”:300, “method”:”aes-256-cfb”, “users”: { “user1”: { “password”: “pass1”, “transfer_enable”: 1073741824 // 1 GB }, “user2”: { “password”: “pass2”, “transfer_enable”: 5368709120 // 5 GB } }}

transfer_enable 字段指定了每个用户的流量限制,单位为字节。

Q: 如何禁止某些用户访问特定网站?

A: Shadowsocks 本身没有提供这种功能,但可以通过配合使用其他工具实现。例如可以使用 iptablesdnsmasq 进行网站访问控制。具体的操作方法可以参考相关的技术文档。

Q: 如何查看 Shadowsocks 服务的日志信息?

A: 如果使用 Docker 部署,可以通过 docker logs shadowsocks 查看日志。

如果手动安装,日志文件默认位于 /var/log/shadowsocks.log。也可以通过 ssserver -c /etc/shadowsocks.json -d start 命令启动服务时,添加 -l /var/log/shadowsocks.log 参数指定日志文件路径。

Q: 如何实现 Shadowsocks 服务的自动启动?

A: 可以使用 systemd 来实现 Shadowsocks 服务的自动启动。

  1. 创建 /etc/systemd/system/shadowsocks.service 文件,内容如下:

    [Unit] Description=Shadowsocks Server After=network.target

    [Service] ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks.json Restart=always

    [Install] WantedBy=multi-user.target

  2. 启用并启动 Shadowsocks 服务:

    systemctl enable shadowsocks systemctl start shadowsocks

之后 Shadowsocks 服务将在系统启动时自动启动。

正文完