如果你已经有了一台 VPS,并且完成了《VLESS-Reality 架构实战》里的单节点配置,下一步自然要考虑:怎么规模化管理多个用户、多种协议、以及更复杂的流量策略?

3x-UI(前身是 v2ray-agent / x-ui,MHSanaei 开发)是目前自建面板里最活跃的一个分支。它原生支持 VLESS / VMess / Trojan / Hysteria2 等多种 inbound,同时保留了 Xray-core 的全部能力。这篇文章会完整走一遍从零装到生产环境可用的流程。

⚠️ 重要提醒
本指南仅用于技术研究与学习用途。自行搭建代理服务前,请确认你了解并遵守所在地区的相关法律法规。

一、为什么选 3x-UI(而不是 Marzban / 直手写配置)

维度3x-UIMarzban手写 Xray config
多协议支持✅ VLESS/VMess/Trojan/Hysteria2主要 VLESS✅ 全支持
面板易用性✅ 中文友好中等❌ 需懂 JSON
流量统计✅ 实时 / 历史✅ 详细❌ 自行实现
用户隔离✅ UUID 级别✅ 子用户❌ 需手动
更新频率✅ 活跃中等取决于 Xray
上手难度低-中

3x-UI 的适用场景是中小规模(10-200 用户)的自建节点。超过这个量级,建议考虑带数据库计费的方案。

二、环境准备

2.1 VPS 要求

  • 系统:Debian 11/12 或 Ubuntu 22.04/24.04 LTS(推荐 Debian 12)。
  • 内存:≥ 512MB(面板本身很轻,但 Xray-core 要占 ~30MB)。
  • 端口:443(TCP)用于 Reality,443(UDP)如需 Hysteria2 可同时。
  • 权限:root 或 sudo。
💡 还没有 VPS?
部署 3x-UI 不需要高配机器,512MB 内存就够跑。如果你还没有合适的 VPS,推荐看看 DediRock 美国 VPS——纽约机房 2GB 内存套餐年付仅 $8.88,三网往返直连延迟低,美国原生 IP 解锁流媒体和 AI 平台,跑面板节点绰绰有余。流量需求大的也可以考虑 Rabisu 无限流量 VPS,$9.9/年不限月流量,跑代理节点无流量焦虑。

2.2 基础系统加固

# 更新系统
apt update && apt upgrade -y

# 安装必要工具
apt install -y curl socat ufw jq

# 配置防火墙(先允许 SSH,再开启)
ufw allow 22/tcp
ufw allow 443/tcp
ufw allow 443/udp
ufw enable

# 确认防火墙状态
ufw status
💡 SSH 端口提示
不要把 SSH(22)暴露给全互联网。建议用 ufw 限制只有你的出口 IP 能访问 22 端口,或用密钥认证代替密码。

三、安装 3x-UI

3.1 官方脚本安装

# 下载并执行官方安装脚本
bash -c "$(curl -L https://raw.githubusercontent.com/MHSanaei/3x-ui/main/install.sh)" @ install

脚本会自动:

  1. 安装 Xray-core 最新版。
  2. 安装 3x-UI 面板(端口默认 2053,可自定义)。
  3. 初始化 SQLite 数据库(默认,小规模够用)。
  4. 生成管理员账号和密码(终端会显示,注意保存)。

3.2 访问面板

浏览器访问 https://你的IP:2053,输入账号密码登录。

⚠️ 首次登录后立即:
(1)修改面板登录密码;(2)在设置里开启 2FA(Google Authenticator);(3)确认访问 IP 白名单(如不需要远程管理,绑定为 localhost:2053 + SSH 隧道)。

3.3 安装 Reality 插件(内置于 Xray)

3x-UI 使用的 Xray-core 已内置 Reality 支持。在面板里添加 inbound 时,直接选择 Reality 作为安全层即可,不需要额外插件。

四、创建 VLESS-Reality 入站

4.1 面板操作流程

1

登录面板 → 点击左上角 "入站列表" → 选择 "添加入站"

2

协议:VLESS
端口:443
传输:tcp

3

安全:Reality
此时面板会提示生成或选择已有的 x25519 密钥对。点"生成新密钥"

4

目标域名 (dest):选一个高信誉域名,如 www.microsoft.comwww.google.com
Short ID:留空自动生成,或手动填 6 位 hex。

5

Flow:xtls-rprx-vision(推荐,提升并发效率)。
点击"保存",inbound 就创建好了。

4.2 添加用户(UUID)

进入刚创建的 inbound → 点击 "客户端""添加客户端"

  • 邮箱/备注:[email protected](用作标识,不影响功能)
  • UUID:点击生成或手动粘贴
  • 流量限额:可选,见下一节
  • 过期时间:可选,留空=永不过期

保存后,面板会自动生成 分享链接 / 二维码,直接发给用户即可。

五、多用户管理与流量限额

5.1 流量限额

3x-UI 支持两种限额模式:

  • 总流量上限(GB):达到后该用户连接被拒绝,可在面板重置。
  • 周期限额:配合"过期时间",实现月包/季包模式。

配置路径:入站 → 编辑 inbound → 客户端 → 编辑用户 → 流量限额

5.2 用户分组

通过 "入站" 的隔离,可以实现用户组逻辑:

  • 创建一个 VIP inbound(端口 443,不限速)
  • 创建一个 Public inbound(端口 8443,限速 50Mbps)
  • 不同用户分到不同 inbound,实现 QoS 分层

5.3 连接数限制

设置项推荐值说明
单用户最大连接数50-100过高的并发是滥用信号
全局最大连接500-2000视 VPS 带宽而定
单 IP 速率限制100 Mbps防止单用户拖垮整机

六、日志与审计

6.1 面板内置日志

3x-UI 面板自带 实时连接日志,可以看到当前在线用户、使用的协议、流量消耗。位置:面板 → 入站 → 点击对应 inbound → 日志

6.2 审计建议

  • 每日随机抽查:快速扫描异常高流量用户。
  • 告警规则:单用户当日流量突增 3 倍以上,触发人工审核。
  • 保留周期:连接日志保留 7-30 天(视磁盘空间),需要更久则导出到独立日志系统。
  • 敏感信息脱敏:日志中的 IP 地址属于个人数据,如需存档应进行脱敏处理。

6.3 服务端 Xray 日志级别

如需更细粒度的调试,调整 Xray 的 loglevel:

# 在面板设置 → 高级设置 → 日志级别
# 可选:none / warning / error / info / debug
# 生产环境建议:warning 或 error
# 调试时临时设为 info

七、Reality 进阶配置

7.1 多个 inbound 共享同一 Reality 密钥

3x-UI 会在每个 inbound 独立生成密钥对。如果你希望关键 inbound 使用同一对密钥(便于用户切换),可以:

  1. 在一个 inbound 里生成 Reality 密钥。
  2. 编辑另一个 inbound,在 Reality 设置里手动粘贴相同的 privateKey
  3. 公钥分发给对接的用户客户端。

7.2 靶域名轮换

Reality 的 dest 域名选择见《VLESS-Reality 架构实战》第二节。在 3x-UI 里更换 dest:

  1. 入站列表 → 选择 inbound → 编辑
  2. 安全层 → Reality → 修改 dest 域名
  3. 保存,Xray 热重载(无需重启服务)

7.3 Short ID 批量管理

3x-UI 的 Reality 设置里可以配置 多个 Short ID,支持按客户端分配不同 Short ID。建议:

  • 不同 inbound 不要用相同的 Short ID。
  • 定期轮换(季度级)。

八、备份与恢复

8.1 一键备份

3x-UI 面板 → 设置 → 备份与恢复 → 导出备份。导出的 JSON 包含:

  • 所有 inbound 配置(含 Reality 密钥)
  • 用户列表及 UUID
  • 流量使用记录
  • 面板设置
⚠️ 备份文件包含私钥
备份 JSON 里有 ServicePrivateKey(Reality 私钥)。备份文件本身要加密存储,不要放进 GitHub 或公开网盘。

8.2 恢复流程

# 在面板 → 设置 → 备份与恢复 → 导入备份
# 或命令行:
cd /usr/local/x-ui/
./x-ui restore < 备份文件.json

九、系统维护与监控

9.1 定期更新 3x-UI 与 Xray

# 更新 3x-UI 面板
bash -c "$(curl -L https://raw.githubusercontent.com/MHSanaei/3x-ui/main/install.sh)" @ install

# Xray-core 会在升级时一起更新

9.2 磁盘空间监控

Xray 日志和面板数据库会随用户量增长。定期清理:

# 查看日志大小
du -sh /var/log/xray/ 2>/dev/null
du -sh /usr/local/x-ui/log/ 2>/dev/null

# 清理超过 30 天的日志(谨慎操作)
find /usr/local/x-ui/log/ -type f -mtime +30 -delete

9.3 自动重启策略

3x-UI 安装时会自动创建 systemd 服务:

systemctl status x-ui
journalctl -u x-ui -f   # 实时查看面板日志

十、常见问题排查

现象可能原因解决方向
面板打不开2053 端口被阻检查 ufw: ufw allow 2053/tcp
添加 inbound 失败端口冲突检查 443/UDP 是否被其他服务占用
Reality 握手失败Key 配错重新生成密钥,客户端 publicKey 要对应
用户能连但速度慢VPS 带宽不够speedtest 测速,或换更高带宽套餐
数据库报错SQLite 损坏用备份恢复:面板 → 恢复
面板升级后白屏版本兼容问题清除浏览器缓存,或重新导入备份

10.1 Reality 的"证书验证失败"怎么办?

Reality 本身不需要证书,但客户端(如 Clash Verge)在配置了 sni 时会去验证 TLS 证书。解决:

  • 客户端侧勾选 skip-cert-verify: true
  • 确保客户端填的 server-name = 面板里设置的 dest 域名。