shadowsocks 多用户服务器搭建完整指南

目录

前言

shadowsocks 是一种基于 SOCKS5 代理的加密传输协议,广泛用于突破网络审查,实现科学上网。本文将为您详细介绍如何搭建一个 shadowsocks 多用户服务器,并提供客户端使用指南,帮助您轻松实现科学上网。

shadowsocks 简介

shadowsocks 是一个开源的代理软件,由 @clowwindy 开发,它使用 SOCKS5 协议进行数据传输,并对数据进行加密,从而突破网络审查,实现科学上网。相比于传统的 VPN 技术,shadowsocks 具有以下优势:

  • 轻量级:相比 VPN 需要配置复杂的隧道协议,shadowsocks 仅需简单的配置即可使用。
  • 安全性高:通过加密传输,有效防止流量被监测和审查。
  • 速度快:基于 SOCKS5 代理,传输效率高,网络速度不会受到太大影响。
  • 多平台支持:Windows、macOS、Linux、Android、iOS 等主流操作系统均有客户端支持。

shadowsocks 服务器搭建

系统环境准备

shadowsocks 服务端可以运行在各种 Linux 发行版上,本文以 CentOS 7 为例进行介绍。在开始安装之前,请确保您的系统满足以下要求:

  • 操作系统: CentOS 7 或更高版本
  • 内存: 最低 512MB,推荐 1GB 及以上
  • 磁盘空间: 最低 5GB,推荐 20GB 及以上

shadowsocks 服务端安装

  1. 更新系统软件包:

    bash yum update -y

  2. 安装 Python 环境:

    bash yum install -y python3

  3. 安装 shadowsocks-libev 服务端:

    bash yum install -y epel-release yum install -y shadowsocks-libev

shadowsocks 服务端配置

  1. 编辑 shadowsocks-libev 配置文件:

    bash vim /etc/shadowsocks-libev/config.json

  2. 在配置文件中添加以下内容,根据实际情况修改参数:

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

    • server: 服务器监听地址,设置为 0.0.0.0 表示监听所有网卡
    • server_port: 服务器监听端口,可自行设置
    • password: 用户连接密码,请设置一个安全的密码
    • timeout: 连接超时时间,单位为秒
    • method: 加密方式,常用的有 aes-256-cfbchacha20-ietf-poly1305

shadowsocks 服务端启动

  1. 启动 shadowsocks-libev 服务:

    bash systemctl start shadowsocks-libev

  2. 设置开机自启动:

    bash systemctl enable shadowsocks-libev

至此,您已经成功搭建了一个基础的 shadowsocks 服务器。您可以使用 shadowsocks 客户端连接到该服务器,实现科学上网。

shadowsocks 多用户管理

在实际使用中,您可能需要为多个用户提供 shadowsocks 服务。下面介绍如何管理 shadowsocks 的多用户功能。

添加新用户

  1. 编辑 shadowsocks-libev 配置文件:

    bash vim /etc/shadowsocks-libev/config.json

  2. "ports_password" 字段中添加新用户信息:

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

    • "8389": "user1_password": 为用户 1 分配端口 8389,密码为 user1_password
    • "8390": "user2_password": 为用户 2 分配端口 8390,密码为 user2_password
  3. 重启 shadowsocks-libev 服务:

    bash systemctl restart shadowsocks-libev

删除用户

  1. 编辑 shadowsocks-libev 配置文件:

    bash vim /etc/shadowsocks-libev/config.json

  2. "ports_password" 字段中删除对应的用户信息:

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

    在此示例中,已经删除了用户 1 的信息。

  3. 重启 shadowsocks-libev 服务:

    bash systemctl restart shadowsocks-libev

修改用户密码

  1. 编辑 shadowsocks-libev 配置文件:

    bash vim /etc/shadowsocks-libev/config.json

  2. "ports_password" 字段中修改对应用户的密码:

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

    在此示例中,已将用户 1 的密码修改为 new_user1_password

  3. 重启 shadowsocks-libev 服务:

    bash systemctl restart shadowsocks-libev

查看用户信息

  1. 查看 shadowsocks-libev 服务状态:

    bash systemctl status shadowsocks-libev

    此命令可以查看 shadowsocks-libev 服务的运行状态,包括服务端口、连接数等信息。

  2. 查看 shadowsocks-libev 配置文件:

    bash cat /etc/shadowsocks-libev/config.json

    此命令可以查看 shadowsocks-libev 的完整配置信息,包括各个用户的端口和密码。

shadowsocks 客户端使用

shadowsocks 提供了多种客户端供您选择,下面分别介绍各个平台的客户端使用方法。

Windows 客户端

  1. 下载 Windows 客户端: https://github.com/shadowsocks/shadowsocks-windows/releases
  2. 解压缩安装包,运行 Shadowsocks.exe
  3. Shadowsocks 客户端界面中,单击 + 按钮添加服务器信息:
    • 服务器地址: 您的 shadowsocks 服务器 IP 地址
    • 服务器端口: 您在配置文件中设置的端口号
    • 密码: 您在配置文件中设置的密码
    • 加密方式: 与服务端配置一致
  4. 单击 启动 按钮即可连接 shadowsocks 服务器

MacOS 客户端

  1. 下载 MacOS 客户端: https://github.com/shadowsocks/ShadowsocksX-NG/releases
  2. 解压缩安装包,运行 ShadowsocksX-NG.app
  3. 在菜单栏中找到 Shadowsocks 图标,单击 服务器 -> 编辑服务器配置
  4. 在配置界面中添加服务器信息:
    • 服务器地址: 您的 shadowsocks 服务器 IP 地址
    • 服务器端口: 您在配置文件中设置的端口号
    • 密码: 您在配置文件中设置的密码
    • 加密方式: 与服务端配置一致
  5. 单击 确定 保存配置,然后单击 Shadowsocks 图标并选择 启动 即可连接

Android 客户端

  1. Google Play 商店搜索并下载 Shadowsocks 客户端
  2. 打开 Shadowsocks 客户端,单击 + 按钮添加服务器信息:
    • 服务器: 您的 shadowsocks 服务器 IP 地址
    • 端口: 您在配置文件中设置的端口号
    • 密码: 您在配置文件中设置的密码
    • 加密方式: 与服务端配置一致
  3. 单击 保存 并返回主界面,然后单击 连接 即可使用

iOS 客户端

  1. App Store 搜索并下载 Shadowrocket 客户端
  2. 打开 Shadowrocket 客户端,单击 + 按钮添加服务器信息:
    • 地址: 您的 shadowsocks 服务器 IP 地址
    • 端口: 您在配置文件中设置的端口号
    • 密码: 您在配置文件中设置的密码
    • 加密: 与服务端配置一致
  3. 单击 完成 保存配置,然后单击服务器名称即可连接

常见问题 FAQ

1. 为什么无法连接到 shadowsocks 服务器?

可能原因包括:

  • 检查服务器 IP 地址和端口号是否正确
  • 检查服务器防火墙是否已放行相关端口
  • 检查服务器配置文件中的密码是否正确
  • 尝试更换加密方式

2. 如何查看 shadowsocks 服务器的连接状态?

可以使用以下命令查看 shadowsocks-libev 服务的状态:

bash systemctl status shadowsocks-libev

此命令可以查看服务运行状态、连接数等信息。

3. 如何限制单个用户的带宽或流量?

可以通过修改 shadowsocks-libev 配置文件中的 "speed_limit_per_user" 参数来限制单个用户的带宽或流量。例如:

{ “server”:”0.0.0.0″, “server_port”:8388, “password”:”your_password”, “timeout”:300, “method”:”aes-256-cfb”, “ports_password”: { “8389”: “user1_password”, “8390”: “user2_password” }, “speed_limit_per_user”:1024}

此处将单个用户的带宽限制为 1024 kbps。

4. 如何监控 shadowsocks 服务器的流量使用情况?

可以使用第三方监控

正文完