12
0
0

2026 AnyTLS + S-UI 从零搭建:面板安装、TLS、节点、客户端完整教程

文章摘要
|
S-UI · SING-BOX · ANYTLS · BEGINNER FIELD GUIDE
2026 AnyTLS + S-UI 从零搭建:面板安装、TLS、节点、客户端完整教程

这篇只做一件事:让第一次使用 S-UI 的人,从一台干净 VPS 开始,最终得到一个可以真实导入客户端并验证连通性的 AnyTLS 节点。每一步都写清楚“点哪里、选什么、填什么、看到什么算成功”。

S-UIsing-boxAnyTLSTLS / ACMEClients新手逐步操作
先确定本文环境

推荐 Ubuntu 22.04/24.04 或 Debian 11/12,拥有 root 权限和公网 IPv4。AnyTLS 从 sing-box 1.12.0 起成为正式入站类型,服务端必须配置用户密码和 TLS。S-UI 当前公开稳定容器包仍以 v1.5.4 标记 Latest,但仓库已经出现 v1.5.5 构建,因此安装时以官方脚本实际拉取的当前稳定版为准。

先看最终链路:面板端口和节点端口不是一回事

目标先把几个端口的职责分开,避免把 S-UI 管理后台直接当成 AnyTLS 节点。
用途示例是否给客户端使用
S-UI 管理面板5443/TCP + 随机路径否,只给管理员登录
S-UI 订阅服务以当前 Settings / 安装输出为准可选
AnyTLS 入站8443/TCP
ACME HTTP Challenge80/TCP仅申请证书时需要
推荐做法

面板端口用独立高位端口,AnyTLS 再单独开放一个 TCP 端口。不要为了“看起来像 HTTPS”把所有服务都强塞在 443。

准备服务器:确认系统、时间、端口和防火墙

目标安装前排除最常见的“脚本装好了但页面打不开”。
bash · 基础检查
cat /etc/os-release
uname -m
date
ss -lntup | head -n 30

# Ubuntu / Debian 常用工具
apt update
apt install -y curl ca-certificates openssl
完成标准

系统时间正确;你知道服务器公网 IP;计划使用的面板端口和 AnyTLS 端口没有被占用。

云厂商安全组也要放行

即使服务器里的 UFW 没拦,云厂商控制台安全组如果没放端口,外网仍然访问不到。本文示例会用到 5443/TCP8443/TCP,申请 ACME HTTP 证书时还可能需要 80/TCP

安装 S-UI:只使用官方脚本

目标安装 S-UI 与 sing-box 服务。

官方当前 Linux/macOS 安装命令:

bash · 官方安装
bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh)

希望安装器使用简体中文,可以这样运行:

bash · 中文安装器
SUI_LANG=zhcn bash <(curl -Ls https://raw.githubusercontent.com/alireza0/s-ui/master/install.sh)
当前官方 README 的默认安装信息

官方 README 目前列出默认 Panel Port 2095、Panel Path /app/、Subscription Port 2096、Subscription Path /sub/、默认账号密码 admin/admin。实际安装后请以终端输出和你自己的 Settings 为准,并立即修改管理凭据。

bash · 服务检查
systemctl status s-ui --no-pager
systemctl status sing-box --no-pager
s-ui
完成标准

s-ui 命令可以进入管理菜单,两个服务没有持续报错。

第一次打开 S-UI:先确认首页正常,再改安全设置

目标先成功登录,不要一上来同时改端口、路径、TLS 和节点。

浏览器访问安装器输出的面板地址。如果仍使用默认信息,形式大致为:

text · 面板 URL 示例
http://你的服务器IP:2095/app/
S-UI 官方 Home 首页截图
S-UI 官方 Home 界面。左侧可以进入 Inbounds、Clients、TLS Settings、Basics、Settings。
完成标准

Home 页能看到 Sing-Box Info、CPU、RAM、流量等状态;此时再进入下一步改面板安全设置。

修改面板端口、路径和管理员账号

目标不要长期使用默认端口、默认路径和弱口令。
左侧菜单Settings / BasicsPanel / Admin 相关设置
S-UI 首次基础设置界面示意图
界面示意:字段来自当前 S-UI 设置逻辑。不同小版本的排列位置可能略有变化。
项目新手建议
Panel Port选择未占用高位端口,例如 5443
Panel Path随机路径,例如 /sui-7f3a/;不要使用 //admin
Username换成自己的管理员名
Password使用随机强密码,不和节点密码复用
保存前先放行新端口

如果你把面板从 2095 改到 5443,却没有先在安全组/UFW 放行 5443,保存后会立刻“把自己关在门外”。

bash · UFW 示例
ufw allow 5443/tcp
ufw allow 8443/tcp
ufw status
验证

保存后使用新的端口和路径重新登录一次,旧地址不再作为日常入口。

准备域名和 TLS:AnyTLS 不应该跳过证书

目标给 AnyTLS 准备一个可验证的 TLS 模板。

先把一个域名,例如 node.example.com,解析到服务器公网 IP。等待解析生效后检查:

bash · DNS 验证
getent ahosts node.example.com
# 或
nslookup node.example.com
域名不是绝对必须,但强烈推荐

有域名和有效证书时,客户端可以保持证书校验开启;用 IP + 自签证书虽然能测试,但客户端必须显式跳过验证,安全性和可维护性都更差。

在 TLS Settings 创建证书模板

目标创建一个名为 anytls-cert 的 TLS 模板,后面 AnyTLS 入站直接选择它。
TLS SettingsAddType: TLS
S-UI TLS 模板创建界面示意
界面示意:当前前端支持 TLS / Reality、SNI、证书路径/文本、自签生成和 ACME。
字段填写方式
Nameanytls-cert
TypeTLS
SNI你的节点域名,例如 node.example.com
证书可以选 Use Path 填 fullchain / private key 路径,或 Use Text 粘贴 PEM
ACME如果没有现成证书,可在下方 ACME 区启用域名申请;支持 Let's Encrypt、ZeroSSL,以及 Cloudflare/AliDNS 等 DNS-01 Provider
HTTP Challenge 的前提

用 HTTP-01 申请证书时,域名必须正确解析到服务器,并且公网 80/TCP 能到达这台机器。80 被别的 Web 服务占用时,可以改用 DNS-01,或使用已有证书路径。

完成标准

TLS Settings 列表里能看到 anytls-cert,并且证书状态没有报错。

创建客户端用户:AnyTLS 密码在 Client Config 里

目标先创建一个独立用户,让它拥有自己的 AnyTLS Password。
ClientsAdd
S-UI 官方 Clients 用户列表
S-UI 官方 Clients 页面。用户、流量、到期时间和入站绑定都在这里管理。
S-UI Client Basics Config Links 设置示意
界面示意:当前 Client 弹窗包含 Basics、Config、Links 三个标签。
标签操作
Basics开启 Enable;Name 填设备名,例如 my-phone;Group 可填 personal;流量和到期时间按需设置
Config找到 anytls,确认 Password 已生成;不满意可点刷新重新随机
Inbound Tags这一步可以稍后绑定;如果 AnyTLS 入站还没建,先保存用户
Links保存用户后再进入,这里会展示本地生成的分享 URI / 外部链接 / 订阅链接
S-UI 官方 Edit Client 界面
官方 Edit Client 截图。Basics 页可以设置流量、到期时间和 Inbound Tags。
不要把管理面板密码当节点密码

管理员账号只用于登录 S-UI;AnyTLS Password 是客户端认证凭据,两者必须独立。

创建 AnyTLS 入站:Type、Port、Client、TLS 一个都不能漏

目标创建真正监听公网端口的 AnyTLS 服务。
InboundsAddType: AnyTLS
S-UI AnyTLS 入站字段中文示意
界面示意:字段来自当前 S-UI Inbound.vue 与 AnyTls.vue。
字段建议值说明
TypeAnyTLS协议类型
Taganytls-8443只用于管理识别
Listen::S-UI 新入站默认也倾向使用双栈监听
Port8443确保 TCP 端口未占用且已放行
Padding scheme先保持默认sing-box 官方有默认 padding scheme;新手不要随意删除/乱改
Clients选择刚创建的用户或 Group没有用户,客户端无法认证
TLS Templateanytls-certAnyTLS 在当前 S-UI 中属于 OnlyTLS 类型,没有 TLS 模板无法通过保存校验
官方配置对应关系

sing-box AnyTLS inbound 的核心就是 type: anytls、监听字段、必填 users[].password、可选 padding_schemetls。S-UI 只是把这些字段做成了图形界面。

保存后

Inbounds 列表应出现新的 AnyTLS 卡片,并显示 Port、TLS、Clients 等状态。

把用户绑定到 AnyTLS 入站,并复制 S-UI 生成的链接

目标让某个用户真正拥有刚创建的 AnyTLS 入站,并从 S-UI 获取正确的客户端参数。
Clients编辑用户BasicsInbound Tags
  1. Inbound Tags 选择 anytls-8443
  2. 点击 Save
  3. 重新打开这个用户,切到 Links 标签。
  4. 复制 S-UI 自动生成的 AnyTLS 分享 URI;不要自己手工拼参数。
为什么不手工写 URI

S-UI 会根据客户端密码、域名、端口、TLS/SNI 等配置生成链接。不同版本对 URI 参数细节可能会调整,直接复制面板结果最不容易出错。

导入客户端:只选明确支持 AnyTLS 的客户端

目标把 S-UI 生成的 URI 导入支持 AnyTLS 的 sing-box 客户端/GUI。

客户端界面不同,但操作逻辑基本一样:

  1. 打开客户端的 Import / 从剪贴板导入 / Add profile
  2. 粘贴刚从 S-UI Links 复制的 AnyTLS URI。
  3. 检查 Server 是你的域名、Port 是 8443、TLS 已开启。
  4. 如果使用有效证书,SNI 应为节点域名,不要开启 insecure / skip-cert-verify
  5. 保存,切换到这个节点,然后进行延迟/连通性测试。
客户端没有 AnyTLS 选项怎么办

说明它的核心版本或 GUI 暂不支持 AnyTLS。不要把 AnyTLS 链接硬改成 VLESS/Trojan;换用明确支持 AnyTLS / sing-box 新版核心的客户端。

服务端验证:确认 8443 正在监听、连接有日志

目标不要只看客户端显示“已连接”,服务端也要证明流量进入了正确入站。
bash · 端口与服务
ss -lntp | grep ':8443 '
systemctl status sing-box --no-pager
journalctl -u sing-box -n 80 --no-pager
S-UI 官方流量统计图
官方流量统计界面。真实连接建立后,用户或入站的流量计数应产生变化。
  • 服务器 8443/TCP 确实处于 LISTEN。
  • 客户端连接时 sing-box 日志没有持续 TLS / authentication error。
  • S-UI Clients / Inbounds 对应用户流量开始增加。
  • 关闭客户端后重新连接仍然稳定,而不是偶尔“碰巧成功”。

最终验收:按这张清单逐项打勾

  • S-UI 面板已更换管理员账号、密码、端口和随机路径。
  • S-UI 与 sing-box 服务重启后都能自动恢复。
  • 节点域名解析到正确 VPS。
  • TLS 模板证书与私钥匹配,SNI 与域名一致。
  • AnyTLS 入站选择了正确 Client 和 TLS Template。
  • AnyTLS 的公网 TCP 端口已同时在系统防火墙与云安全组放行。
  • Client Config 中 AnyTLS Password 是独立随机密码。
  • 使用 S-UI 自动生成的链接成功导入兼容客户端。
  • 客户端使用有效证书时没有开启 insecure。
  • 服务端日志和 S-UI 流量统计都能看到真实连接。

常见问题排查:按症状定位,不要反复重装

现象常见原因检查 / 修复
安装后面板打不开Panel Port 未放行、路径错误、服务没启动运行 systemctl status s-ui;确认安全组和完整 Panel Path
改了面板端口后失联新端口没提前放行从 SSH/UFW/云安全组放行新端口,再用新 URL 登录
AnyTLS 入站无法保存没有 TLS Template、Tag 为空、端口非法当前 S-UI 对 AnyTLS 强制要求 TLS 模板;逐项补齐
客户端 TLS handshake failedSNI 错、证书域名不匹配、证书过期核对域名、SNI、证书有效期;不要先用 insecure 掩盖问题
authentication failed客户端 Password 与 S-UI Client Config 不一致重新复制 Links 里的自动生成 URI
端口 LISTEN 但外网连不上云安全组/iptables/UFW 拦截本机 ss 正常后,从另一网络测试 TCP 端口
Links 里没有想要的节点Client 没绑定 Inbound Tags编辑 Client → Basics → Inbound Tags,选择 AnyTLS 入站并保存
客户端没有 AnyTLS客户端核心过旧升级到支持 AnyTLS 的 sing-box 核心/GUI,不要改协议类型

版本与资料说明

S-UI:当前官方 README 提供 Linux/macOS 一键安装脚本,并列出 Panel Port 2095、Panel Path /app/、Subscription Port 2096、Subscription Path /sub/、admin/admin 的默认安装信息;部署后应立即更改。

AnyTLS:sing-box 官方文档标注自 1.12.0 起支持 AnyTLS;服务端 users 为必填,padding_scheme 有默认方案,并支持 TLS。

本文界面图:Home / Clients / Edit Client 使用 S-UI 官方截图;首次设置、TLS、AnyTLS 入站、Client Links 为根据当前 S-UI 前端源码生成的中文界面示意图,并明确标注为“界面示意”。

最终链路

客户端 → node.example.com:8443 → TLS → AnyTLS → S-UI / sing-box → Internet

新手真正需要记住的是:管理面板、TLS 模板、Client、Inbound 是四个不同对象。先把它们分别建好,再做绑定和分享链接,排错会简单很多。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或者给予支持!

2026 AnyTLS + S-UI 从零搭建:面板安装、TLS、节点、客户端完整教程
/archives/anytls-sui-beginner-guide-2026
作者
X
发布于
2026-08-31
许可协议
CC BY-NC-SA 4.0

评论

欢迎来到我的博客!