Marzban 是一款基于 Xray-core 的多用户管理面板,可以在网页后台创建和管理不同协议的用户,并设置流量限制、过期时间、订阅链接等内容。相比于修改 Xray 配置文件,使用 Marzban 面板管理多个用户会方便很多,后面增加或删除用户时,也不需要每次都登录服务器修改配置。
Trojan 是一种通过 TLS 建立加密连接的代理协议,连接方式和普通 HTTPS 流量比较接近。与前面介绍过的 VLESS Reality 不同,Trojan TLS 需要使用已经解析到 VPS 的域名,并加载对应的证书和私钥。如果域名、证书、服务器地址或 SNI 没有对应好,客户端就可能出现证书错误、TLS 握手失败或者连接超时。
如果您只想快速搭建一个 Trojan 节点,不需要 Marzban 面板的多用户、流量限制和订阅管理功能,也可以参考:Trojan 一键脚本安装教程:适用于 CentOS、Debian、Ubuntu 系统,直接通过脚本完成安装。
这篇 Marzban 面板 Trojan TLS 节点搭建教程会从检查域名证书和端口开始,接着添加 Trojan + TCP + TLS 入站、设置服务器域名和 SNI、创建 Trojan 用户,再把 Marzban 订阅链接导入客户端完成连接测试。整个过程按照实际操作顺序整理,第一次使用 Marzban 面板配置 Trojan 的用户可以跟着一步步完成操作。
如果您的 Marzban 面板还没有安装,可以先参考:Marzban 面板安装教程,下面默认大家的面板已经安装完成,可以通过 HTTPS 正常登录后台,并且域名已经解析到当前 VPS。
一、先确认域名证书和 8443 端口
Trojan TLS 会使用域名证书建立加密连接,所以开始配置前,最好先确认三件事:
- 准备使用的节点端口没有被其他程序占用。
- 证书和私钥文件都存在,而且没有过期。
- Marzban 面板所在的 Xray 容器能够读取这两个文件。
当前 Marzban 面板后台已经使用了 443 端口,Trojan 入站不能再占用同一个端口,所以这里改用 8443。
通过 SSH 登录 VPS,运行下面这组命令:
echo "=== 8443 端口检查 ==="
ss -lntp | grep -E ':8443[[:space:]]' || echo "8443 端口当前未占用"
echo
echo "=== Trojan TLS 证书文件 ==="
ls -l \
/var/lib/marzban/certs/trojan.example.com.cer \
/var/lib/marzban/certs/trojan.example.com.cer.key
echo
echo "=== 证书域名和有效期 ==="
openssl x509 \
-in /var/lib/marzban/certs/trojan.example.com.cer \
-noout -subject -dates -ext subjectAltName
echo
echo "=== Xray 容器读取测试 ==="
docker exec marzban-marzban-1 sh -c '
test -r /var/lib/marzban/certs/trojan.example.com.cer &&
test -r /var/lib/marzban/certs/trojan.example.com.cer.key &&
echo "Xray 容器可以读取证书和私钥"
'
上面使用的是占位域名和证书路径,大家操作时需要换成自己的真实域名,以及这个域名对应的证书文件路径。
当我们的命令执行完成后,重点查看下面几个结果:
- 终端显示
8443 端口当前未占用。 - 证书和私钥文件都能正常列出。
- 证书域名中包含自己准备使用的域名。
notAfter后面的日期还没有到期。- 最后显示
Xray 容器可以读取证书和私钥。
如果证书文件不存在,或者证书中的域名与节点域名不一致,先不要继续添加 Trojan 入站,需要先处理好证书问题。

检查 8443 端口、Trojan TLS 证书有效期,并确认 Xray 容器能够读取证书和私钥
二、让 Xray 加载 Trojan TCP TLS 入站
当证书和端口都没有问题后,接下来要让 Xray 真正监听 Trojan 端口。Marzban 面板的用户可以在网页中创建,但 Trojan TCP TLS 入站仍然要写进核心配置。
登录 Marzban 面板后台,点击页面右上角的齿轮按钮。

在 Marzban 后台点击右上角齿轮,进入 Xray 核心设置准备添加 Trojan TLS 入站
打开核心设置后,最好先把当前 JSON 复制到本地保存一份,这样即使后面少写了一个括号,或者粘贴时覆盖错了内容,也可以随时恢复。
如果当前核心设置中只有默认的 Shadowsocks TCP 入站,可以点击配置编辑框,按 Ctrl+A 全选,再替换为下面这份完整配置:
{
"log": {
"loglevel": "warning"
},
"routing": {
"rules": [
{
"ip": [
"geoip:private"
],
"outboundTag": "BLOCK",
"type": "field"
}
]
},
"inbounds": [
{
"tag": "TROJAN TCP TLS",
"listen": "0.0.0.0",
"port": 8443,
"protocol": "trojan",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"serverName": "trojan.example.com",
"certificates": [
{
"ocspStapling": 3600,
"certificateFile": "/var/lib/marzban/certs/trojan.example.com.cer",
"keyFile": "/var/lib/marzban/certs/trojan.example.com.cer.key"
}
],
"minVersion": "1.2",
"alpn": [
"h2",
"http/1.1"
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
}
},
{
"tag": "Shadowsocks TCP",
"listen": "0.0.0.0",
"port": 1080,
"protocol": "shadowsocks",
"settings": {
"clients": [],
"network": "tcp,udp"
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "DIRECT"
},
{
"protocol": "blackhole",
"tag": "BLOCK"
}
]
}
这份配置保留了 Marzban 面板默认的 Shadowsocks TCP,只是在 inbounds 中增加了一个 TROJAN TCP TLS 入站。
粘贴之前,需要按照自己的环境修改下面几项:
port:Trojan 节点端口,这里使用8443。serverName:换成证书对应的域名。certificateFile:换成自己的证书文件路径。keyFile:换成自己的证书私钥路径。
域名和证书必须配套,例如证书属于 trojan.example.com,就不能在 serverName 中填写另一个域名。
如果核心设置中已经有其他入站,不要直接覆盖整份 JSON,需要保留已有内容,只把 TROJAN TCP TLS 这一段加入 inbounds 数组。
检查配置开头和结尾的花括号没有缺失后,点击右下角的保存。
顶部出现“核心设置更新成功”,日志中还会出现类似下面的内容,具体版本号可能不同:
Xray 24.12.31 started
说明 Xray 已经读取新配置,并开始监听 Trojan 节点端口。

粘贴 Trojan TCP TLS 核心配置并点击保存,Marzban 提示核心设置更新成功
Marzban 面板需要通过核心设置添加 Trojan 入站,如果您使用的是 3X-UI 面板,操作入口和参数填写方式会有所不同,可以参考:3X-UI 面板 Trojan TLS 节点搭建教程:VPS 添加 Trojan 入站并导出链接。
三、把订阅地址改成域名并设置 SNI
虽然服务端现在已经加载了 TLS 证书,但 Marzban 面板生成订阅时,服务器地址默认可能仍然使用 VPS 公网 IP。
普通无证书节点可以直接使用 IP,Trojan TLS 不一样,客户端需要通过域名校验证书,所以订阅中的服务器地址也要改成证书对应的域名。
关闭核心设置窗口后,点击 Marzban 面板右上角的三横线菜单,然后进入设置。

点击 Marzban 后台右上角三横线菜单,选择“设置”进入 Trojan TLS 节点参数页面
设置窗口中会出现刚添加的 TROJAN TCP TLS,默认的 Shadowsocks TCP 也会继续保留。

进入 Host Settings 后,可以看到刚添加的 TROJAN TCP TLS 入站
点击 TROJAN TCP TLS 将它展开,可以看到节点名称和服务器地址。
默认服务器地址通常是:
{SERVER_IP}
把它改成证书对应的域名:
trojan.example.com
这里的 trojan.example.com 是占位域名,大家操作时需要填写自己的真实域名。修改完成后,Marzban 面板生成的 Trojan 订阅会使用域名连接,而不是服务器 IP。

查看节点名称、服务器地址以及高级选项入口
接着点击高级选项,在 SNI 中填写同一个域名:
trojan.example.com
这里只需要填写 SNI,其他项目保持默认:
- 端口:保持
8443。 - 请求主机:留空。
- 路径:留空。
- 安全层:保持
Inbound's default。 - ALPN:留空,由核心入站配置决定。
- 指纹:留空。
- 允许不安全连接:不要勾选。
- MUX 和随机用户代理:不要勾选。
这里最容易出错的就是服务器地址和 SNI,这两个位置要与证书中的域名保持一致,否则客户端可能会提示证书不匹配。
填写完成后,点击右下角的保存。

填写 Trojan TLS 的 SNI,确认端口和其他参数后点击保存
这里设置域名和 SNI,主要是为了完成 TLS 证书校验,如果后面还准备给其他 Xray 节点配置静态页面、反向代理或者 WordPress 伪装网站,可以继续参考:V2Ray 伪装搭建网站教程:静态网站、反向代理与 WordPress。
四、给 Trojan 节点创建独立用户
Trojan 入站只负责监听端口,还没有任何用户可以连接,下面我们需要在 Marzban 面板中创建一个独立账号,让面板自动生成 Trojan 密码和订阅链接。
回到首页,点击右侧的创建用户。

在 Marzban 面板首页点击“创建用户”,开始添加新的 Trojan TLS 用户
打开创建用户窗口后,Marzban 面板会同时选中 Trojan 和 Shadowsocks。
这里不需要给同一个用户生成两个协议,所以点击 Shadowsocks 卡片将它取消,只保留蓝色边框的 Trojan。

点击取消 Shadowsocks 协议,只为当前用户保留 Trojan TLS 连接配置
Trojan 密码由 Marzban 面板自动生成,不需要手动进入协议详情修改。
接下来填写左侧的用户信息:
- 用户名:
trojan_tls - 保持:关闭
- 流量限制:
100 GB - 定期重置流量:选择“无”
- 过期日期:不限制时间时可以留空
- 备注:
Trojan TLS 测试用户
这些参数不是固定要求,大家可以根据自己的使用情况调整,例如只给朋友临时使用,可以同时设置流量限制和过期日期。
当确认无误后,点击右下角的创建用户。

填写 Trojan TLS 用户名、流量限制和备注,只保留 Trojan 协议后点击创建用户
创建成功后返回用户列表,新用户应当显示为“活跃”,流量栏中也会出现刚才设置的 100 GB。
用户名旁边第一次显示:Not Connected Yet,不用处理,它表示这个用户还没有在客户端建立过连接。
用户右侧有三个入口:
- 链条图标:复制完整订阅链接。
- 剪贴板图标:复制 Trojan 单节点配置。
- 二维码图标:查看订阅二维码和单节点二维码。

Trojan TLS 用户创建成功,右侧可以复制订阅链接、单节点配置或打开二维码
Marzban 可以直接在网页中增加和删除用户,如果您不使用面板,想手动为 V2Ray 或 Xray 配置多个账号,可以参考:V2Ray 多用户配置教程:同端口不同 UUID 与多端口配置教程。
五、导入订阅,确认 Trojan 节点真正可用
用户显示“活跃”只代表 Marzban 面板已经创建了账号,还不能证明客户端一定能够连接。接下来我们要把订阅导入客户端,实际测试 TLS 连接和网络流量。
点击用户右侧的链条图标,复制 Marzban 面板订阅链接。
本站在这里使用 Clash Verge 客户端给大家作为演示,其他支持 Trojan + TCP + TLS 的客户端,也可以导入同一个订阅地址。
打开 Clash Verge 客户端,进入左侧的订阅页面,把刚才复制的地址粘贴到顶部“订阅文件链接”输入框中,然后点击导入。

进入 Clash Verge 订阅页面,粘贴 Marzban Trojan TLS 订阅链接并点击导入
导入完成后,页面会出现一个新的订阅卡片,同时显示总流量和更新时间。

Clash Verge 提示订阅导入成功,并显示 Trojan TLS 订阅名称、流量和更新时间
接着进入左侧的代理页面,顶部选择全局模式。
在代理组中找到:Marz (trojan_tls) [Trojan - tcp],点击这个节点,让卡片变成蓝色,然后测试延迟。
这里不要选择 DIRECT,如果 DIRECT 仍然处于选中状态,流量会直接从本地网络访问,无法验证 Trojan 节点是否可用。
节点能够正常显示延迟,说明客户端已经完成了域名解析、TLS 握手和 Trojan 连接。

在 Clash Verge 全局模式中选择 Trojan TLS 节点,测试后可以正常显示连接延迟
这时候回到 Clash Verge 首页,确认当前节点已经切换成刚添加的 Trojan 节点,然后打开系统代理。

Clash Verge 已选择 Marzban Trojan TLS 节点并开启系统代理,可以开始测试网络连接
打开浏览器访问网页,确认网络能够正常使用,浏览器访问正常后,再回到 Marzban 面板用户页面刷新数据。
此时可以看到:
Not Connected Yet已经变成最近连接时间。- 用户使用流量不再是
0 B。 - 页面顶部的总流量也开始增加。
这比只看延迟更可靠,因为它可以证明客户端已经通过 Trojan 节点传输了真实数据。

Trojan TLS 用户已经成功连接,Marzban 后台显示最近连接时间和实际使用流量
测试完成后,可以按照自己的代理规则切回规则模式,全局模式主要用于排除分流规则的影响,不建议一直保持全局代理。
如果您使用的是 S-UI 面板,Trojan TLS 的证书、ALPN 和客户端导入位置与 Marzban 不一样,可以参考:S-UI 面板 Trojan TLS 搭建教程:证书、ALPN 与 Clash Verge 实测。
六、总结
Marzban 面板 Trojan TLS 节点完成后,日常管理主要是在用户页面进行。需要增加账号时,直接创建新用户、设置流量和过期日期,并只保留 Trojan 协议即可,不用重复添加核心入站。
这套配置能否长期连接,主要取决于下面几个地方:
- 域名解析需要继续指向当前 VPS。
- 证书不能过期,证书与私钥路径也不能随意移动。
- Host Settings 中的服务器地址和
SNI要与证书域名一致。 8443端口不能再被其他程序占用。- 客户端不能勾选“允许不安全连接”来掩盖证书问题。
后面证书自动续期时,只要新证书仍然写入当前配置指定的路径,Trojan 入站就不需要重新修改。如果证书已经更新,但客户端突然出现 TLS 错误,可以进入 Marzban 面板核心设置重新保存一次配置,让 Xray 重新读取证书文件。
这次搭建使用的是 Trojan + TCP + TLS,它和 VLESS Reality 最大的不同,就是 Trojan TLS 依赖真实域名和有效证书。只要域名、证书、连接地址和 SNI 四处对应好,后面创建用户和管理订阅就比较简单了。
| 机房位置 | 带宽 | 流量 | 设备 | 价格 | 购买 |
|---|---|---|---|---|---|
| 洛杉矶 500 | 2.5Gbit | 500GB/月 | 5台 | $5.88/月-$58.88/年 | 购买 |
| 洛杉矶 1000 | 5Gbit | 1T/月 | 无限 | $9.88/月-$98.88/年 | 购买 |
| 洛杉矶 5000 | 5Gbit | 5T/月 | 无限 | $48.99/月-$489.99/年 | 购买 |
| 洛杉矶 10000 | 5Gbit | 10T/月 | 无限 | $93.99/月-$948.99/年 | 购买 |
| 香港 CMI+NTT | 2.5Gbps | 500GB/月 | 5台 | $8.99/月-$89.99/年 | 购买 |
| 香港 CMI+NTT | 5Gbps | 1T/月 | 无限 | $14.90/月-$113.99/年 | 购买 |
| 香港 CMI+NTT | 5Gbps | 5T/月 | 无限 | $59.99/月-$599.99/年 | 购买 |
| 香港 IPLC 专线 | 300MB 独享 | 300GB/月 | 3台 | $21.00/月-$210.00/年 | 购买 |
| 香港 IPLC 专线 | 1G 独享 | 1T/月 | 无限 | $59.00/月-$589.00/年 | 购买 |
| 香港 CN2 GIA | 100MB 独享 | 100GB/月 | 3台 | $34.99/月-$349.99/年 | 购买 |
| 香港 CN2 GIA | 500MB 独享 | 500GB/月 | 5台 | $149.99/月-$1499.99/年 | 购买 |
| 香港 CN2 GIA | 1G 独享 | 1T/月 | 无限 | $279.99/月-$2799.99/年 | 购买 |
| 日本 CN2 GIA | 100MB 独享 | 100GB/月 | 3台 | $29.99/月-$299.99/年 | 购买 |
| 日本 CN2 GIA | 200MB 独享 | 500GB月 | 5台 | $135.99/月-$1349.99/年 | 购买 |
| 日本 CN2 GIA | 500MB 独享 | 1T/月 | 无限 | $239.00/月-$2399.00/年 | 购买 |
| 日本 CN2 GIA | 700MB 独享 | 5T/月 | 无限 | $1135.00/月-$11395.00/年 | 购买 |
| 伦敦 500 | 2.5Gbps | 500GB/月 | 5台 | $6.8/月-$67.99/年 | 购买 |
| 伦敦 1000 | 5Gbps | 1T/月 | 无限 | $11.29/月-$113.99/年 | 购买 |
| 伦敦 5000 | 5Gbps | 5T/月 | 无限 | $59.99/月-$559.99/年 | 购买 |
需要 VPS 服务器?Just My Socks 更适合直接使用代理服务;如果您需要建站、部署项目、搭建环境或学习 Linux,可以选择搬瓦工 VPS,参考 搬瓦工在售 VPS 套餐整理与购买推荐。 |
|||||

搬瓦工教程