目录
- 前言
- 环境准备
- 安装 shadowsocks-manager
- 配置 MySQL 数据库
- 整合 shadowsocks-manager 与 MySQL
- 管理 Shadowsocks 用户
- 常见问题 FAQ
前言
shadowsocks-manager 是一款功能强大的 Shadowsocks 服务管理工具,它可以帮助用户更好地管理和维护自己的 Shadowsocks 代理服务。通过与 MySQL 数据库的整合,用户可以更方便地存储和管理 Shadowsocks 用户信息,提高服务的可靠性和可扩展性。
环境准备
在开始使用 shadowsocks-manager 之前,您需要准备好以下环境:
- 一台可以运行 Node.js 的服务器
- 已安装并配置好的 MySQL 数据库
安装 shadowsocks-manager
- 使用
npm
或yarn
安装shadowsocks-manager
:
npm install -g shadowsocks-manager
yarn global add shadowsocks-manager
- 初始化 shadowsocks-manager 配置文件:
ssm init
这将在当前目录创建一个 config.json
配置文件。
配置 MySQL 数据库
-
创建 MySQL 数据库和表: sql CREATE DATABASE shadowsocks; USE shadowsocks; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) UNIQUE NOT NULL, password VARCHAR(255) NOT NULL, port INT NOT NULL, enable BOOLEAN NOT NULL DEFAULT true, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );
-
在
config.json
文件中配置 MySQL 连接信息:
{ “manager”: { “port”: 6001, “password”: “your_manager_password” }, “db”: { “host”: “your_mysql_host”, “user”: “your_mysql_username”, “password”: “your_mysql_password”, “database”: “shadowsocks” }}
整合 shadowsocks-manager 与 MySQL
- 启动 shadowsocks-manager 服务:
ssm start
- 访问
http://your_server_ip:6001
并使用配置文件中设置的manager.password
进行登录。 - 在 Web 管理界面中,切换到
Database
选项卡,选择MySQL
作为数据库类型,并填写之前配置的 MySQL 连接信息。 - 保存设置并重启 shadowsocks-manager 服务。
管理 Shadowsocks 用户
- 在 Web 管理界面的
Users
选项卡中,您可以查看、添加、编辑和删除 Shadowsocks 用户。 - 用户信息包括用户名、密码、端口号和启用状态等。
- 您还可以批量导入或导出用户数据。
常见问题 FAQ
1. 为什么 shadowsocks-manager 无法连接 MySQL 数据库?
请检查以下几点:
- 确保 MySQL 数据库已正确配置并可以远程访问。
- 检查
config.json
中 MySQL 连接信息是否填写正确。 - 确保防火墙未阻挡 shadowsocks-manager 与 MySQL 之间的连接。
2. 如何备份和恢复 Shadowsocks 用户数据?
您可以使用 Web 管理界面中的”导出”和”导入”功能来备份和恢复用户数据。导出的数据为 JSON 格式,可以手动编辑或导入到其他 shadowsocks-manager 实例中。
3. 如何设置 Shadowsocks 用户的流量限制?
shadowsocks-manager 暂不支持直接设置用户流量限制,但您可以通过编辑 MySQL 数据库中的 users
表来实现。添加一个 traffic_limit
字段来存储用户的流量限制值。
4. 如何实现 Shadowsocks 用户的自动续期?
shadowsocks-manager 目前不支持自动续期功能,但您可以通过编写定时任务来实现。例如,您可以编写一个脚本定期检查用户账号的到期时间,并自动续期或发送续期提醒。