[分享] 2S-UI —— 把 s-ui 的前端整个重写了一遍的 sing-box 面板
先说清楚:fork 自 alireza0/s-ui,前端整套重写,还新加了不少功能。GPL-3.0,仓库 https://github.com/shenaba/2s-ui
为什么 fork
一是界面。s-ui 功能是够的,但 UI 还停留在十来年前那套审美,用起来别扭,手机上基本没法用。
二是功能。跟 3x-ui 比,s-ui 缺的东西不少——同时在线 IP 数限制、登录防护这些都没有。这些我在一个个补:IP 限制 v1.7.0 已经上了,登录限速和 TOTP 两步验证在路上。

跟 s-ui 比多了什么
- 改一个用户不再断掉所有人。s-ui 编辑客户端要把整个 inbound 摘掉重加,QUIC 的 session 跟着一起没,加个人全服掉线。这边是热更新用户表,只断被改的那个用户。
- 前端全重写。Vue 3 + TS,深浅双主题,六种语言,手机上能正常用。
- 多节点集群。一台面板管其他面板,5 秒心跳,用户自动下发,各节点流量回收进主面板,所有节点的线路合并进同一条订阅。节点端不用装 agent,建个 API token 就行。
- 面板内一键升级。下载 → 校验 SHA256 → 新二进制先跑一次冒烟测试 → 才替换重启,不用 SSH。
- 同时在线 IP 数限制。限制一个客户端最多能从几个源 IP 同时连接,超了的新连接直接拒掉,已经在的按最早的踢。v1.7.0 已上。
- 登录防护。失败次数限速——按 IP 和用户名双轴计数,哪个轴都没法靠换另一个换来新额度,状态落库所以重启也不清零;TOTP 两步验证;改密码自动踢掉所有已签发的会话。下个版本。
- 面板数据走 WebSocket 推送。流量、在线状态、系统负载都是服务端主动推过来的,不是前端每隔几秒轮询一次 API。数字是实时跳的,面板挂着也不会一直打接口。
功能
- 协议:VLESS、VMess、Trojan、Shadowsocks、Hysteria2、TUIC、AnyTLS、ShadowTLS、Naive 等,入站出站都有;WireGuard / WARP / Tailscale 端点可单独测延迟
- TLS:Reality、uTLS 指纹、XTLS,证书注册一次按入站选用
- 路由:按域名、IP、端口、协议、进程、用户、rule-set 匹配,支持 and/or,DNS 规则独立成套
- 客户端:流量配额、到期时间、同时在线 IP 数限制、实时在线状态、一键分享链接和二维码
- 订阅:link / json / clash 三种格式,用量和到期时间回传给客户端 App
- 统计:按入站、按客户端、按出站,可重置
- HTTPS:Let's Encrypt 自动签发续期,能自动生成 nginx 反代 vhost,
nginx -t不过自动回滚 - 面板:数据走 WebSocket 实时推送,不是轮询
- 登录防护:失败次数限速(IP 和用户名双轴计数,重启不清零)、TOTP 两步验证、改密码自动踢掉所有旧会话
装
复制
bash <(curl -Ls https://raw.githubusercontent.com/shenaba/2s-ui/main/install.sh)
面板 2095 / 订阅 2096,admin/admin,装完记得改。Docker、Windows 装法看 README,Linux 七个架构都编了。
不好的地方先说
- 项目才三个月,用的人不多,肯定有没踩到的坑
- macOS 是实验性的
- Windows 能装,但一键升级用不了——运行中的 exe 没法替换自己
- README 那句「请勿用于生产环境」是认真的
仅供个人学习交流。有问题欢迎开 issue,想要什么功能也可以提。

是我理解的那个 boy sb 吗,你弄了一个网页的面板
还是基于那个你弄了一个面板