目录
前言
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 服务端安装
-
更新系统软件包:
bash yum update -y
-
安装 Python 环境:
bash yum install -y python3
-
安装 shadowsocks-libev 服务端:
bash yum install -y epel-release yum install -y shadowsocks-libev
shadowsocks 服务端配置
-
编辑 shadowsocks-libev 配置文件:
bash vim /etc/shadowsocks-libev/config.json
-
在配置文件中添加以下内容,根据实际情况修改参数:
{ “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-cfb
、chacha20-ietf-poly1305
等
shadowsocks 服务端启动
-
启动 shadowsocks-libev 服务:
bash systemctl start shadowsocks-libev
-
设置开机自启动:
bash systemctl enable shadowsocks-libev
至此,您已经成功搭建了一个基础的 shadowsocks 服务器。您可以使用 shadowsocks 客户端连接到该服务器,实现科学上网。
shadowsocks 多用户管理
在实际使用中,您可能需要为多个用户提供 shadowsocks 服务。下面介绍如何管理 shadowsocks 的多用户功能。
添加新用户
-
编辑 shadowsocks-libev 配置文件:
bash vim /etc/shadowsocks-libev/config.json
-
在
"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
-
重启 shadowsocks-libev 服务:
bash systemctl restart shadowsocks-libev
删除用户
-
编辑 shadowsocks-libev 配置文件:
bash vim /etc/shadowsocks-libev/config.json
-
从
"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 的信息。
-
重启 shadowsocks-libev 服务:
bash systemctl restart shadowsocks-libev
修改用户密码
-
编辑 shadowsocks-libev 配置文件:
bash vim /etc/shadowsocks-libev/config.json
-
在
"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
。 -
重启 shadowsocks-libev 服务:
bash systemctl restart shadowsocks-libev
查看用户信息
-
查看 shadowsocks-libev 服务状态:
bash systemctl status shadowsocks-libev
此命令可以查看 shadowsocks-libev 服务的运行状态,包括服务端口、连接数等信息。
-
查看 shadowsocks-libev 配置文件:
bash cat /etc/shadowsocks-libev/config.json
此命令可以查看 shadowsocks-libev 的完整配置信息,包括各个用户的端口和密码。
shadowsocks 客户端使用
shadowsocks 提供了多种客户端供您选择,下面分别介绍各个平台的客户端使用方法。
Windows 客户端
- 下载 Windows 客户端: https://github.com/shadowsocks/shadowsocks-windows/releases
- 解压缩安装包,运行
Shadowsocks.exe
- 在 Shadowsocks 客户端界面中,单击
+
按钮添加服务器信息:- 服务器地址: 您的 shadowsocks 服务器 IP 地址
- 服务器端口: 您在配置文件中设置的端口号
- 密码: 您在配置文件中设置的密码
- 加密方式: 与服务端配置一致
- 单击
启动
按钮即可连接 shadowsocks 服务器
MacOS 客户端
- 下载 MacOS 客户端: https://github.com/shadowsocks/ShadowsocksX-NG/releases
- 解压缩安装包,运行
ShadowsocksX-NG.app
- 在菜单栏中找到 Shadowsocks 图标,单击
服务器
->编辑服务器配置
- 在配置界面中添加服务器信息:
- 服务器地址: 您的 shadowsocks 服务器 IP 地址
- 服务器端口: 您在配置文件中设置的端口号
- 密码: 您在配置文件中设置的密码
- 加密方式: 与服务端配置一致
- 单击
确定
保存配置,然后单击 Shadowsocks 图标并选择启动
即可连接
Android 客户端
- 在 Google Play 商店搜索并下载 Shadowsocks 客户端
- 打开 Shadowsocks 客户端,单击
+
按钮添加服务器信息:- 服务器: 您的 shadowsocks 服务器 IP 地址
- 端口: 您在配置文件中设置的端口号
- 密码: 您在配置文件中设置的密码
- 加密方式: 与服务端配置一致
- 单击
保存
并返回主界面,然后单击连接
即可使用
iOS 客户端
- 在 App Store 搜索并下载 Shadowrocket 客户端
- 打开 Shadowrocket 客户端,单击
+
按钮添加服务器信息:- 地址: 您的 shadowsocks 服务器 IP 地址
- 端口: 您在配置文件中设置的端口号
- 密码: 您在配置文件中设置的密码
- 加密: 与服务端配置一致
- 单击
完成
保存配置,然后单击服务器名称即可连接
常见问题 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 服务器的流量使用情况?
可以使用第三方监控