跳转至

第14章 多用户管理方案

当需要为多人提供代理服务时,需要专门的管理工具。本章介绍主流的多用户管理面板和方案。

14.1 面板管理工具(X-UI等)

14.1.1 X-UI面板

X-UI简介:

X-UI特点:
✓ Web图形化管理界面
✓ 支持多协议(VMess/VLESS/Trojan/Shadowsocks)
✓ 流量统计
✓ 用户管理
✓ 定时重启
✓ 系统监控
✓ 中文界面

安装X-UI:

# 一键安装脚本
bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)

# 安装过程:
# 1. 选择端口(默认54321)
# 2. 设置管理员账号
# 3. 设置管理员密码
# 4. 自动安装并启动

# 访问面板
http://your-server-ip:54321
# 用户名:设置的用户名
# 密码:设置的密码

X-UI管理命令:

# 启动面板
x-ui start

# 停止面板
x-ui stop

# 重启面板
x-ui restart

# 查看状态
x-ui status

# 查看日志
x-ui log

# 更新面板
x-ui update

# 修改配置
x-ui setting

# 卸载
x-ui uninstall

14.1.2 X-UI使用教程

添加用户:

步骤1:登录面板
访问 http://your-ip:54321

步骤2:添加入站
面板 → Inbounds → + 添加入站

配置项:
- 备注:用户昵称(如:user001)
- 协议:选择协议类型(VLESS/VMess/Trojan)
- 监听IP:0.0.0.0
- 端口:随机或指定(建议1000-60000)
- 流量限制:设置月流量(如50GB)
- 到期时间:设置有效期
- 传输配置:
  - TCP(直连)
  - WebSocket(CDN友好)
  - gRPC(推荐)

步骤3:配置TLS(如需要)
- 启用TLS:开
- 域名:your-domain.com
- 证书路径:/path/to/cert
- 密钥路径:/path/to/key

步骤4:添加用户
- UUID:自动生成或手动输入
- Email:用户标识
- 流量:单用户流量限制(可选)

步骤5:保存配置
点击保存,系统自动重载配置

导出客户端配置:

方法1:扫描二维码
- 点击用户后面的二维码图标
- 手机扫描导入

方法2:复制链接
- 点击复制链接按钮
- 发送给用户

方法3:导出配置文件
- 导出JSON配置
- 用户手动导入

14.1.3 3X-UI(推荐)

3X-UI特点:

3X-UI是X-UI的增强版,基于Xray-core构建

核心优势:
✓ 现代化Web管理界面
✓ 支持所有Xray协议
✓ 支持Reality协议(无需域名)
✓ 多用户管理
✓ 流量统计和限制
✓ 系统状态监控
✓ 一键申请SSL证书
✓ 订阅链接生成
✓ Telegram机器人通知
✓ 定时重启任务
✓ 支持多管理员

支持协议:
- VLESS (TCP/WS/gRPC/Reality)
- VMess (TCP/WS/gRPC)
- Trojan (TCP/WS/gRPC)
- Shadowsocks
- Dokodemo-door
- Socks
- HTTP

安装3X-UI:

# 一键安装最新版本
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

# 安装指定版本
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh) v2.3.0

# 安装过程:
# 1. 选择语言(中文/英文)
# 2. 设置管理员用户名(默认:admin)
# 3. 设置管理员密码(默认:admin)
# 4. 设置面板端口(默认:2053)
# 5. 自动安装完成

# 安装完成后:
# 访问地址:http://your-ip:2053
# 用户名:你设置的用户名
# 密码:你设置的密码
# 首次登录强制修改密码

3X-UI管理命令:

# 查看状态
x-ui status

# 启动/停止/重启
x-ui start
x-ui stop
x-ui restart

# 查看配置信息
x-ui settings

# 修改用户名和密码
x-ui username
x-ui password

# 修改面板端口
x-ui port

# 更新面板
x-ui update

# 卸载
x-ui uninstall

3X-UI配置Reality节点:

Reality配置步骤:

1. 登录3X-UI面板
   访问:http://your-ip:2053
   输入管理员账号密码

2. 添加Reality入站
   点击"入站列表" → "+添加入站"

3. 基本设置:
   - 备注:Reality-用户名
   - 协议:选择 VLESS
   - 监听IP:0.0.0.0
   - 端口:443(推荐)
   - 传输协议:TCP
   - TLS:选择 Reality

4. Reality设置:
   - Dest(目标网站):www.microsoft.com:443
     (或其他大型网站)
   - ServerNames:www.microsoft.com
   - PrivateKey:点击“生成”按钮
   - ShortIds:点击“生成”按钮

5. 用户配置:
   - 添加用户:点击“+”
   - Email:用户标识(如user01@example.com)
   - UUID:自动生成
   - Flow:xtls-rprx-vision
   - 流量限制:设置月流量(如50GB)
   - 到期时间:设置有效期

6. 保存并启用
   - 点击保存
   - 点击二维码图标生成分享链接
   - 用户扫码或复制链接导入客户端

Reality目标网站推荐:

选择原则:
• 必须是HTTPS网站(端口443)
• 选择知名大型网站
• 优先选择与VPS同地区的网站

美国区域 VPS:
- www.microsoft.com:443
- www.cisco.com:443
- www.apple.com:443
- www.cloudflare.com:443

亚洲区域 VPS:
- www.samsung.com:443
- www.yahoo.co.jp:443
- www.ntt.com:443

欧洲区域 VPS:
- www.bmw.com:443
- www.siemens.com:443
- www.logitech.com:443

流量管理功能:

在入站配置中设置:

1. 总流量限制
   - 点击编辑入站
   - 设置总流量(如100GB)
   - 0表示不限制

2. 过期时间
   - 设置到期日期
   - 过期后自动禁用

3. 单用户限制
   - 编辑用户设置
   - 设置单用户流量限制

4. IP连接限制
   - 防止账号共享
   - 设置最大同时连接数

14.1.4 V2Ray-UI/V2-UI

V2-UI面板:

# 安装
bash <(curl -Ls https://raw.githubusercontent.com/sprov065/v2-ui/master/install.sh)

# 功能:
- V2Ray多协议支持
- 用户管理
- 流量统计
- 系统状态监控

# 访问
http://your-ip:65432

14.1.5 面板安全建议

加强面板安全:

# 1. 修改默认端口
# 面板设置 → 端口 → 改为非常见端口

# 2. 设置强密码
# 至少16位,包含大小写字母、数字、符号

# 3. 启用IP白名单
# 仅允许特定IP访问面板

# 4. 使用防火墙
ufw allow from your-ip to any port 54321

# 5. 启用HTTPS
# 面板设置 → SSL → 上传证书

# 6. 定期备份
# 面板设置 → 备份 → 下载备份文件

# 7. 限制登录尝试
# 防止暴力破解

14.2 流量统计与限制

14.2.1 流量统计功能

X-UI流量统计:

统计维度:
- 总流量:所有用户总计
- 用户流量:单个用户使用情况
- 实时流量:当前上传/下载速度
- 历史流量:按日/月统计

查看方式:
1. 面板首页:总览
2. Inbounds列表:每个用户的流量
3. 流量统计页面:详细图表
4. 导出报表:Excel/CSV格式

流量重置:

自动重置:
- 设置 → 流量设置 → 重置周期
- 选项:每月1号/自定义日期

手动重置:
- 用户管理 → 选择用户 → 重置流量
- 或批量重置所有用户

14.2.2 流量限制策略

限制方式:

1. 总流量限制
   设置用户月流量(如50GB)
   超出后自动禁用

2. 速度限制
   限制上传/下载速度
   防止单用户占用全部带宽

3. 连接数限制
   限制同时连接数
   防止账号共享

4. IP数量限制
   限制使用的IP数量
   防止多人使用

X-UI流量限制配置:

添加/编辑用户时设置:

总流量:
- 输入流量大小(GB)
- 0表示不限制
- 超出后自动禁用

到期时间:
- 设置有效期
- 过期后自动禁用

限速(需配置):
- 上传速度:MB/s
- 下载速度:MB/s

连接数:
- 最大同时连接数

14.2.3 流量监控与告警

Telegram机器人通知:

# 3X-UI支持Telegram机器人

配置步骤:
1. 创建Telegram Bot
   - 联系 @BotFather
   - 发送 /newbot
   - 设置bot名称
   - 获取Token

2. 获取Chat ID
   - 联系你的bot
   - 发送任意消息
   - 访问:https://api.telegram.org/bot<token>/getUpdates
   - 查找 "chat":{"id":数字}

3. 面板配置
   - 设置  Telegram设置
   - 输入Bot Token
   - 输入Chat ID
   - 保存

4. 通知类型
   - 用户流量告警(80%/90%/100%)
   - 到期提醒
   - 系统告警
   - 登录通知

邮件通知:

配置SMTP:
- SMTP服务器
- 端口(通常587)
- 用户名
- 密码
- 发件人地址

通知事件:
- 流量即将用完
- 账号即将到期
- 新用户添加
- 系统告警

14.3 用户配置管理

14.3.1 批量用户管理

批量添加用户:

方法1:面板批量添加
- 用户管理 → 批量添加
- 设置用户数量
- 统一配置:
  - 流量限制
  - 到期时间
  - 协议类型
- 自动生成UUID

方法2:导入用户列表
- 准备CSV文件
  格式:用户名,流量(GB),到期时间
- 面板导入

方法3:API批量创建
- 使用X-UI API
- 编写脚本批量创建

批量修改配置:

选择多个用户 → 批量操作:
- 重置流量
- 延长时间
- 修改限速
- 启用/禁用
- 删除用户

14.3.2 用户分组管理

按需求分组:

免费用户组:
- 流量:10GB/月
- 速度:5MB/s
- 有效期:1个月

标准用户组:
- 流量:50GB/月
- 速度:50MB/s
- 有效期:1个月

VIP用户组:
- 流量:500GB/月
- 速度:不限速
- 有效期:3个月

创建模板:
面板设置 → 用户模板
- 保存常用配置
- 新建用户时快速应用

14.3.3 配置导出与备份

导出用户数据:

# X-UI数据库位置
/etc/x-ui/x-ui.db

# 备份数据库
cp /etc/x-ui/x-ui.db /root/x-ui-backup-$(date +%Y%m%d).db

# 定期自动备份
crontab -e
# 每天凌晨3点备份
0 3 * * * cp /etc/x-ui/x-ui.db /root/backups/x-ui-$(date +\%Y\%m\%d).db

# 保留最近7天备份
find /root/backups/ -name "x-ui-*.db" -mtime +7 -delete

导出用户配置:

面板功能:
1. 用户列表 → 导出所有
2. 格式:JSON/CSV
3. 包含:
   - 用户信息
   - 流量统计
   - 配置参数
   - 订阅链接

用途:
- 迁移到新服务器
- 数据分析
- 用户分发

14.4 续费与到期提醒

14.4.1 自动续费系统

续费流程:

流程设计:

用户端:
1. 用户访问续费页面
2. 选择套餐(1月/3月/1年)
3. 支付费用
4. 系统自动延长

管理端:
1. 收到支付通知
2. 验证支付
3. 更新用户配置:
   - 延长到期时间
   - 重置流量
4. 发送确认通知

支付集成:

支付方式选择:

1. 手动确认
   - 用户转账
   - 发送截图
   - 管理员手动确认

2. 支付API
   - 支付宝
   - 微信支付
   - PayPal
   - 加密货币

3. 卡密系统
   - 生成激活码
   - 用户输入激活
   - 自动续期

14.4.2 到期提醒机制

提醒时间节点:

提醒计划:

到期前7天:
- 第一次提醒
- 邮件/Telegram通知
- 提示续费链接

到期前3天:
- 第二次提醒
- 强调即将到期

到期前1天:
- 最后提醒
- 紧急通知

到期当天:
- 账号禁用
- 发送到期通知

到期后7天:
- 最终通知
- 账号将被删除(可选)

通知模板:

邮件模板:

主题:【重要】您的账号将于3天后到期

尊敬的用户,

您的账号信息:
用户名:{username}
到期时间:{expire_date}

剩余时间:3天
剩余流量:{remain_traffic}GB

为了不影响您的使用,请及时续费。

续费链接:{renew_url}

如有问题,请联系客服。

---
Telegram通知:

⚠️ 到期提醒

用户:{username}
到期:{expire_date}
剩余:3天

点击续费:{renew_url}

14.4.3 卡密系统实现

卡密生成:

# Python示例:生成卡密

import random
import string

def generate_card(length=16):
    """生成激活码"""
    chars = string.ascii_uppercase + string.digits
    card = ''.join(random.choice(chars) for _ in range(length))
    # 格式化:XXXX-XXXX-XXXX-XXXX
    return '-'.join([card[i:i+4] for i in range(0, len(card), 4)])

# 批量生成
cards = [generate_card() for _ in range(100)]

# 保存到数据库
# 包含:
# - 卡密
# - 面值(天数/流量)
# - 状态(未使用/已使用)
# - 使用时间
# - 使用用户

卡密使用:

用户端:
1. 登录面板/客户端
2. 输入卡密
3. 点击激活

系统处理:
1. 验证卡密有效性
2. 检查是否已使用
3. 更新用户信息:
   - 延长到期时间
   - 增加流量
4. 标记卡密已使用
5. 记录使用日志

14.4.4 自动化运维脚本

定期清理脚本:

#!/bin/bash
# cleanup.sh - 清理过期用户

# X-UI数据库
DB_FILE="/etc/x-ui/x-ui.db"

# 获取当前时间戳
NOW=$(date +%s)

# 查询过期用户(SQL示例)
sqlite3 $DB_FILE "SELECT id,username FROM users WHERE expire_time < $NOW"

# 删除过期超过30天的用户
sqlite3 $DB_FILE "DELETE FROM users WHERE expire_time < $NOW - 2592000"

# 重启服务
x-ui restart

# 发送通知
echo "清理完成:$(date)" | mail -s "定期清理报告" admin@example.com

流量重置脚本:

#!/bin/bash
# reset_traffic.sh - 每月重置流量

# 重置所有用户流量
sqlite3 /etc/x-ui/x-ui.db "UPDATE users SET used_traffic = 0"

# 记录日志
echo "$(date): 流量已重置" >> /var/log/x-ui/reset.log

# 发送通知
curl -X POST "https://api.telegram.org/bot<token>/sendMessage" \
  -d "chat_id=<chat_id>" \
  -d "text=月度流量已重置"

定时任务配置:

crontab -e

# 每天凌晨3点清理过期用户
0 3 * * * /root/scripts/cleanup.sh

# 每月1号凌晨重置流量
0 0 1 * * /root/scripts/reset_traffic.sh

# 每天检查到期用户并提醒
0 9 * * * /root/scripts/expire_reminder.sh

本章小结

本章介绍了多用户管理的完整方案:

核心要点:

  1. 管理面板

    • X-UI:功能全面、易用
    • 3X-UI:现代化、功能强大
    • V2-UI:简洁实用
  2. 流量管理

    • 统计分析
    • 限制策略
    • 监控告警
    • Telegram通知
  3. 用户管理

    • 批量操作
    • 分组管理
    • 导出备份
    • 配置模板
  4. 续费系统

    • 自动续费
    • 到期提醒
    • 卡密系统
    • 支付集成

最佳实践:

安全建议:
✓ 修改默认端口
✓ 设置强密码
✓ 启用IP白名单
✓ 使用HTTPS
✓ 定期备份

管理建议:
✓ 合理分配流量
✓ 设置到期时间
✓ 启用自动提醒
✓ 定期清理过期用户
✓ 监控系统资源

运营建议:
✓ 提供多种套餐
✓ 自动化续费流程
✓ 及时客户服务
✓ 定期系统维护

至此,第四部分"服务器搭建篇"全部完成!


实践任务:

  1. 安装X-UI面板
  2. 添加测试用户
  3. 配置流量限制
  4. 设置到期提醒
  5. 导出用户配置
  6. 创建自动化脚本