搬瓦工机场
Just My Socks教程

Marzban 面板安装教程:VPS 搭建 Xray 多用户管理面板

Marzban 是一款基于 Xray-core 的多用户代理管理面板,支持 VLESSVMessTrojanShadowsocks 等协议。和自己使用 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 的 80443 端口可以正常访问。

本文使用 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 VPS 系统版本、架构、内存和硬盘空间

安装 Marzban 前检查 Debian 12 系统版本、架构、内存和硬盘空间

确认系统没有问题后,更新软件包:

apt update && apt -y upgrade

更新过程中,如果看到是否替换 /etc/ssh/sshd_config 的提示,选择:

keep the local version currently installed

也就是保留 VPS 当前的 SSH 配置,避免服务商设置的 SSH 端口或登录方式被覆盖。

安装 Marzban 前更新 Debian 12 并保留当前 SSH 配置文件

更新 Debian 12 时选择保留当前 SSH 配置,避免登录设置被覆盖

系统更新完成后,重新启动 VPS:

reboot

SSH 连接会自动断开,等待几十秒后重新连接,再检查当前内核版本:

uname -r
Marzban 安装前检查 Debian 12 VPS 当前内核版本

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 服务

安装脚本执行完成后,Marzban 面板和 Xray-core 服务已经正常启动

此时的日志会一直显示在终端中,这个画面并不是卡住了,我们只需按一次 Ctrl+C 退出日志即可,退出日志不影响正在运行的 Marzban 服务。

退出日志后检查运行状态:

marzban status

正常结果应包含:

Status: Up
marzban: running
检查 Marzban 面板运行状态并确认服务正常启动

执行状态检查命令,确认 Marzban 面板服务已经正常运行

三、创建 Marzban 后台管理员

Marzban 安装完成后不会自动生成默认管理员,我们需要通过命令进行创建后台登录账号。

运行:

marzban cli admin create --sudo

接下来会依次要求输入:

  • Username:后台管理员用户名;
  • Password:后台登录密码;
  • Repeat for confirmation:再次输入密码;
  • Telegram ID:Telegram 数字 ID;
  • Discord webhook:Discord 通知地址。

输入密码时终端不会显示字符或星号,这是 Linux 的正常安全设置,输入完成后直接按回车即可。

如果大家暂时不需要使用 Telegram 机器人和 Discord 通知,Telegram IDDiscord webhook 都可以留空,直接按回车键跳过即可。

当看到下面的提示,就说明管理员账号创建成功了:

Admin "用户名" created successfully.
通过命令创建 Marzban 后台管理员账号并获得完整管理权限

设置用户名和密码后,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 IP 地址

检查域名解析结果,确认 Marzban 域名已经指向当前 VPS

接着我们再检查 80443 端口是否被其他程序占用:

ss -lntp | grep -E ':(80|443)[[:space:]]' || echo "80 和 443 端口当前未占用"

如果返回结果显示“80 和 443 端口当前未占用”,就可以继续申请证书。

检查 Marzban 安装前 80 和 443 端口是否被占用

检查 80 和 443 端口,确认申请 SSL 证书前没有程序占用

安装 curlsocat

apt install -y curl socat

然后安装 acme.sh,将命令中的邮箱改成自己的常用邮箱:

curl https://get.acme.sh | sh -s email=your-email@example.com

这里填写的是 ACME 证书账户联系邮箱,不是 Marzban 后台账号,也不要求使用域名邮箱。

安装 acme.sh 为 Marzban 域名申请 SSL 证书

在 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 successInstalling keyInstalling full chain 等提示,就说明证书已经申请成功。

使用 acme.sh 为 Marzban 域名申请 SSL 证书成功

运行 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 域名、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 通过 HTTPS 监听 443 端口并正常运行

重启 Marzban 后成功加载 SSL 证书,并通过 HTTPS 监听 443 端口

按一次 Ctrl+C 退出日志,再进行检查运行状态:

marzban status

当确认显示 Status: Upmarzban: running 后,在浏览器打开:

https://你的域名/dashboard/

如果浏览器可以正常打开登录页面,并且地址栏没有证书警告,就说明域名和 SSL 已经生效。

通过 HTTPS 域名打开 Marzban 面板后台登录页面

通过 HTTPS 域名打开 Marzban 后台,输入管理员账号即可登录

输入前面创建的管理员用户名和密码,点击“登录”。

当我们成功进入 Marzban 管理面板后,就可以看到活动用户、总流量、内存状态和创建用户入口,新安装的 Marzban 面板因为还没有创建普通用户,所以活动用户数量显示为 0

成功登录 Marzban Xray 多用户管理面板后台首页

成功登录 Marzban 后台,可管理用户、流量、订阅链接和 Xray 节点

到这里,Marzban 安装教程就完成了,当前 VPS 已经运行 Marzban 和 Xray-core,后台可以通过 HTTPS 域名登录,后面我们可以继续创建用户、设置流量和到期时间,再生成订阅链接导入客户端。

Marzban 生成订阅链接后,还需要导入客户端才能连接,如果您使用的是 Windows 版 ClashN,可以参考 ClashN 配置教程,完成订阅导入、订阅转换和系统代理设置。

下一步可以单独配置 Marzban 的 VLESS Reality 等的入站,并创建第一个用户进行节点连接测试。

Just My Socks 套餐对比与选择
选择提示如果您只是想直接使用代理服务,不想自己购买 VPS、安装系统和维护环境,可以优先考虑搬瓦工官方出品的 Just My Socks
自己搭建上网环境虽然自由,但面对晚高峰线路抽风和 AI 工具(如 Gemini、ChatGPT)频繁的 IP 封锁,维护成本其实很高。如果你想追求极致的省心和纯净度,搬瓦工官方机场(Just My Socks)是目前最好的替代方案。
搬瓦工机场不仅自带 CN2 GIA 高速线路,更重要的是 IP 权重高,能完美解锁各类主流 AI 权限。
下面是目前搬瓦工机场 JMS 详细的套餐介绍:
机房位置带宽流量设备价格购买
洛杉矶 5002.5Gbit500GB/月5台$5.88/月-$58.88/年购买
洛杉矶 10005Gbit1T/月无限$9.88/月-$98.88/年购买
洛杉矶 50005Gbit5T/月无限$48.99/月-$489.99/年购买
洛杉矶 100005Gbit10T/月无限$93.99/月-$948.99/年购买
香港 CMI+NTT2.5Gbps500GB/月5台$8.99/月-$89.99/年购买
香港 CMI+NTT5Gbps1T/月无限$14.90/月-$113.99/年购买
香港 CMI+NTT5Gbps5T/月无限$59.99/月-$599.99/年购买
香港 IPLC 专线300MB 独享300GB/月3台$21.00/月-$210.00/年购买
香港 IPLC 专线1G 独享1T/月无限$59.00/月-$589.00/年购买
香港 CN2 GIA100MB 独享100GB/月3台$34.99/月-$349.99/年购买
香港 CN2 GIA500MB 独享500GB/月5台$149.99/月-$1499.99/年购买
香港 CN2 GIA1G 独享1T/月无限$279.99/月-$2799.99/年购买
日本 CN2 GIA100MB 独享100GB/月3台$29.99/月-$299.99/年购买
日本 CN2 GIA200MB 独享500GB月5台$135.99/月-$1349.99/年购买
日本 CN2 GIA500MB 独享1T/月无限$239.00/月-$2399.00/年购买
日本 CN2 GIA700MB 独享5T/月无限$1135.00/月-$11395.00/年购买
伦敦 5002.5Gbps500GB/月5台$6.8/月-$67.99/年购买
伦敦 10005Gbps1T/月无限$11.29/月-$113.99/年购买
伦敦 50005Gbps5T/月无限$59.99/月-$559.99/年购买
需要 VPS 服务器?Just My Socks 更适合直接使用代理服务;如果您需要建站、部署项目、搭建环境或学习 Linux,可以选择搬瓦工 VPS,参考 搬瓦工在售 VPS 套餐整理与购买推荐
未经允许不得转载:搬瓦工教程 » Marzban 面板安装教程:VPS 搭建 Xray 多用户管理面板
Vultr 最新优惠活动:新用户注册 Vultr 赠送 50-100 美元

Just My Socks (JMS) 官方线路深度解析与稳定上网方案

搬瓦工官方出品,专为解决网络封锁而生。支持被封自动更换 IP,无需担心失联。拥有 IPLC 专线与 CN2 GIA 顶级链路,全线套餐现货在售。使用专属优惠码 JMS9248225 (5.2% 循环折扣),即刻畅享极速互联。

JMS 套餐汇总JMS 购买教程