Marzban 是一款基于 Xray-core 的多用户代理管理面板,支持 VLESS、VMess、Trojan 和 Shadowsocks 等协议。和自己使用 VPS 搭建单个节点相比,Marzban 更适合创建多个用户,然后给不同的用户分别设置流量、到期时间和订阅链接。
如果您只是想在一台 VPS 上快速搭建单个 VLESS-REALITY 节点,不需要管理多个用户,也可以参考 Xray 一键脚本安装教程,下面本文继续介绍适合管理用户、流量和订阅链接的 Marzban 面板。
本篇 Marzban 面板安装教程将使用一台全新的 VPS 给大家进行实测,系统为 Debian 12,数据库使用默认的 SQLite。本站将从系统检查开始,完成 Marzban 安装、管理员创建、SSL 证书申请和后台登录,最终搭建一套可以正常使用的 Xray 多用户管理面板。
一、安装 Marzban 前的准备工作
开始安装前,大家需要准备一台 VPS 服务器,本站此次使用的是 Debian 12 x86_64,内存为 2GB,硬盘空间超过 10GB。
为了通过 HTTPS 打开 Marzban 后台,还需要准备一个域名或子域名,并提前添加 A 记录,将域名解析到 VPS 的公网 IPv4 地址。
本文需要准备的环境如下:
- 一台干净的 VPS;
Debian 12 64 位系统;root用户和 SSH 登录密码;- 一个已经解析到 VPS 的域名或子域名;
- VPS 的
80和443端口可以正常访问。
本文使用 root 用户登录 VPS,所以后面的命令不需要添加 sudo。
如果您的 VPS 以前安装过其他代理面板、宝塔、Nginx、Caddy 或 Docker 项目,建议先重装系统,这样可以减少端口冲突和旧配置残留带来的问题。
如果您还在 Marzban 和其他 Xray 面板之间选择,也可以先参考 3X-UI 面板安装教程,3X-UI 更偏向在单台 VPS 上创建和管理不同协议的入站,Marzban 则增加了用户流量、到期时间和订阅链接管理。
二、更新 Debian 12 并安装 Marzban 面板
首先使用 Xshell、PuTTY 或其他 SSH 工具登录 VPS 后,先检查系统版本、系统架构、内存和硬盘空间。这样可以确认自己没有选错系统,也能提前发现 VPS 配置是否太低。
运行下面的命令:
printf '系统版本:\n'; grep -E '^(PRETTY_NAME|VERSION_ID)=' /etc/os-release; printf '\n系统架构:\n'; uname -m; printf '\n内存:\n'; free -h; printf '\n磁盘:\n'; df -h /
正常情况下,系统版本应显示为 Debian GNU/Linux 12,系统架构应为 x86_64。

安装 Marzban 前检查 Debian 12 系统版本、架构、内存和硬盘空间
确认系统没有问题后,更新软件包:
apt update && apt -y upgrade
更新过程中,如果看到是否替换 /etc/ssh/sshd_config 的提示,选择:
keep the local version currently installed
也就是保留 VPS 当前的 SSH 配置,避免服务商设置的 SSH 端口或登录方式被覆盖。

更新 Debian 12 时选择保留当前 SSH 配置,避免登录设置被覆盖
系统更新完成后,重新启动 VPS:
reboot
SSH 连接会自动断开,等待几十秒后重新连接,再检查当前内核版本:
uname -r

VPS 重启后检查 Debian 12 当前运行的 Linux 内核版本
接下来安装 Marzban,本站本次使用的是 v0.8.4 正式版。
运行下面的命令:
bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install --version v0.8.4
安装脚本会自动安装 Docker、下载 Marzban 镜像、创建配置文件,并使用 SQLite 数据库启动面板。
如果您只是个人使用或管理少量用户,默认的 SQLite 已经够用,只有在需要管理大量用户和多台节点服务器时,再考虑使用 MySQL。
当我们安装完成后,终端会进入实时日志画面,看到下面几类信息,说明 Marzban 和 Xray-core 已经启动:
Application startup complete
Starting main Xray core
Uvicorn running on http://127.0.0.1:8000

安装脚本执行完成后,Marzban 面板和 Xray-core 服务已经正常启动
此时的日志会一直显示在终端中,这个画面并不是卡住了,我们只需按一次 Ctrl+C 退出日志即可,退出日志不影响正在运行的 Marzban 服务。
退出日志后检查运行状态:
marzban status
正常结果应包含:
Status: Up
marzban: running

执行状态检查命令,确认 Marzban 面板服务已经正常运行
三、创建 Marzban 后台管理员
Marzban 安装完成后不会自动生成默认管理员,我们需要通过命令进行创建后台登录账号。
运行:
marzban cli admin create --sudo
接下来会依次要求输入:
Username:后台管理员用户名;Password:后台登录密码;Repeat for confirmation:再次输入密码;Telegram ID:Telegram 数字 ID;Discord webhook:Discord 通知地址。
输入密码时终端不会显示字符或星号,这是 Linux 的正常安全设置,输入完成后直接按回车即可。
如果大家暂时不需要使用 Telegram 机器人和 Discord 通知,Telegram ID 与 Discord webhook 都可以留空,直接按回车键跳过即可。
当看到下面的提示,就说明管理员账号创建成功了:
Admin "用户名" created successfully.

设置用户名和密码后,Marzban 后台管理员账号创建成功
四、申请 SSL 证书并配置 HTTPS
Marzban 出于安全原因,不支持直接通过服务器 IP 打开后台管理面板,我们在正常使用时需要给域名申请 SSL 证书,再通过 HTTPS 登录 Marzban 面板。
首先需要确认我们的域名已经解析到当前 VPS,大家将下面的 panel.example.com 示例域名改成自己的域名或子域名后进行回车:
export DOMAIN=panel.example.com
getent ahostsv4 "$DOMAIN" | head -n 1
回车后,返回的 IPv4 地址应当和您当前 VPS 的公网 IPv4 地址一致。
如果域名使用 Cloudflare,申请证书前建议先把代理状态改成“仅 DNS”,也就是灰色云朵,避免证书验证绕到 Cloudflare。
检查域名解析结果,确认 Marzban 域名已经指向当前 VPS
接着我们再检查 80 和 443 端口是否被其他程序占用:
ss -lntp | grep -E ':(80|443)[[:space:]]' || echo "80 和 443 端口当前未占用"
如果返回结果显示“80 和 443 端口当前未占用”,就可以继续申请证书。
检查 80 和 443 端口,确认申请 SSL 证书前没有程序占用
安装 curl 和 socat:
apt install -y curl socat
然后安装 acme.sh,将命令中的邮箱改成自己的常用邮箱:
curl https://get.acme.sh | sh -s email=your-email@example.com
这里填写的是 ACME 证书账户联系邮箱,不是 Marzban 后台账号,也不要求使用域名邮箱。

在 Debian 12 VPS 上安装 acme.sh,为 Marzban 域名申请 SSL 证书
当我们安装完成后,执行下面的命令申请证书,大家需要将以下命令第一行的 panel.example.com 改成您自己的域名:
export DOMAIN=panel.example.com
mkdir -p /var/lib/marzban/certs
~/.acme.sh/acme.sh \
--issue --force --standalone -d "$DOMAIN" \
--fullchain-file "/var/lib/marzban/certs/$DOMAIN.cer" \
--key-file "/var/lib/marzban/certs/$DOMAIN.cer.key"
这条命令会临时使用 80 端口验证域名,并把完整证书和私钥保存到:
/var/lib/marzban/certs
看到 Cert success、Installing key 和 Installing full chain 等提示,就说明证书已经申请成功。

运行 acme.sh 命令完成域名验证,成功申请 Marzban SSL 证书
接下来我们开始进行 Marzban SSL 配置,快速安装生成的配置文件位于:
/opt/marzban/.env
先备份原配置文件:
cp /opt/marzban/.env /opt/marzban/.env.bak
再运行下面这组命令,第一行的 panel.example.com 仍然需要改成您自己的域名:
export DOMAIN=panel.example.com
sed -i 's/^[[:space:]]*UVICORN_PORT[[:space:]]*=.*$/UVICORN_PORT = 443/' /opt/marzban/.env
printf '\nUVICORN_SSL_CERTFILE = "/var/lib/marzban/certs/%s.cer"\nUVICORN_SSL_KEYFILE = "/var/lib/marzban/certs/%s.cer.key"\nXRAY_SUBSCRIPTION_URL_PREFIX = https://%s\n' "$DOMAIN" "$DOMAIN" "$DOMAIN" >> /opt/marzban/.env
grep -nE '^[[:space:]]*(UVICORN_PORT|UVICORN_SSL_CERTFILE|UVICORN_SSL_KEYFILE|XRAY_SUBSCRIPTION_URL_PREFIX)[[:space:]]*=' /opt/marzban/.env
这组命令执行后会完成以下四项设置:
- 把 Marzban 后台端口从
8000改成443; - 写入 SSL 完整证书路径;
- 写入 SSL 私钥路径;
- 把订阅链接前缀改成 HTTPS 域名。
正常会显示四行配置信息:
UVICORN_PORT = 443
UVICORN_SSL_CERTFILE = "/var/lib/marzban/certs/你的域名.cer"
UVICORN_SSL_KEYFILE = "/var/lib/marzban/certs/你的域名.cer.key"
XRAY_SUBSCRIPTION_URL_PREFIX = https://你的域名

写入 Marzban 域名、SSL 证书路径和 HTTPS 订阅地址配置
本文将 Marzban 后台放在 443 端口,这样登录地址不需要再写端口号,当大家以后需要创建 Xray 节点时,可以使用其他空闲端口。
如果以后必须让某个节点使用 443,就需要修改后台端口,或者另外配置 Caddy、HAProxy 和单端口分流。
如果您后面还准备单独搭建 Trojan 节点,并同时配置 SSL 证书自动续签和伪装网站,可以继续参考:搬瓦工 VPS 搭建 Trojan 详细教程。
五、重启 Marzban 并登录后台
当我们完成 Marzban SSL 配置后,需要重新启动 Marzban 面板:
marzban restart
重启后会再次进入日志画面,看到下面这行,说明 Marzban 已经成功加载 SSL 证书,并监听 443 端口:
Uvicorn running on https://0.0.0.0:443

重启 Marzban 后成功加载 SSL 证书,并通过 HTTPS 监听 443 端口
按一次 Ctrl+C 退出日志,再进行检查运行状态:
marzban status
当确认显示 Status: Up 和 marzban: running 后,在浏览器打开:
https://你的域名/dashboard/
如果浏览器可以正常打开登录页面,并且地址栏没有证书警告,就说明域名和 SSL 已经生效。

通过 HTTPS 域名打开 Marzban 后台,输入管理员账号即可登录
输入前面创建的管理员用户名和密码,点击“登录”。
当我们成功进入 Marzban 管理面板后,就可以看到活动用户、总流量、内存状态和创建用户入口,新安装的 Marzban 面板因为还没有创建普通用户,所以活动用户数量显示为 0。

成功登录 Marzban 后台,可管理用户、流量、订阅链接和 Xray 节点
到这里,Marzban 安装教程就完成了,当前 VPS 已经运行 Marzban 和 Xray-core,后台可以通过 HTTPS 域名登录,后面我们可以继续创建用户、设置流量和到期时间,再生成订阅链接导入客户端。
Marzban 生成订阅链接后,还需要导入客户端才能连接,如果您使用的是 Windows 版 ClashN,可以参考 ClashN 配置教程,完成订阅导入、订阅转换和系统代理设置。
下一步可以单独配置 Marzban 的 VLESS Reality 等的入站,并创建第一个用户进行节点连接测试。
| 机房位置 | 带宽 | 流量 | 设备 | 价格 | 购买 |
|---|---|---|---|---|---|
| 洛杉矶 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 套餐整理与购买推荐。 |
|||||

搬瓦工教程