当前能用的面板主要有X-UI、3X-UI、Marzban,其中X-UI的功能不全,不支持Telegram机器人,且长期没有更新;3X-UI解决了X-UI的问题,但不支持多节点。Marzban则是一款比较有特色的面板,主要特性有:
- 内置 Web 界面
- 完全支持 REST API 的后端
- 支持 Vmess、VLESS、Trojan 和 Shadowsocks 协议
- 单用户的多协议支持
- 单入站的多用户支持
- 单端口的多入站支持(使用 fallbacks)
- 流量和过期日期限制
- 周期性的流量限制(例如每天、每周等)
- 兼容 V2ray 的订阅链接(例如 V2RayNG、SingBox、Nekoray 等)和 Clash
- 自动化的分享链接和二维码生成器
- 系统监控和流量统计
- 可自定义的 xray 配置
- TLS 支持
- 集成的 Telegram Bot
- 多管理员支持(WIP)
总结起来,Marzban最大的特色就是:
- 支持订阅链接:面板里直接就可以生成订阅链接,方便终端软件直接使用;
- 支持多节点:面板和节点可以分离,面板支持多节点部署。非常方便实现多节点的统一管理、流量分担。

Marzban面板搭建
1、安装
Marzban网站提供脚本,面板可以用脚本直接搭建。底层使用Docker部署,所以对于性能太低的机器是没法实现。Marzban的数据库支持SQLite、MySQL、MariaDB,脚本也可以通过参数来选择不同的数据库,这里以SQLite为例。面板安装脚本为:
sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install
当出现“Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)”面板安装已初步完成,可CTRL+C终止,后续进行配置。

2、配置
2.1 修改.env文件
Marzban的Docker配置文件在主机 /opt/marzban/ 目录下,总共两个文件,一个docker-compose.yml一个.env,编辑.env文件,将SSL证书的那两行启用(去除行前#注释),修改如下:

其中fullchain.cer和private.key为面板机域名的TLS证书。
2.2 上传证书
建立目录 /var/lib/marzban/certs:
mkdir /var/lib/marzban/certs
使用你喜欢的软件将证书上传到 /var/lib/marzban/certs
2.3 建立面板管理员账号
使用以下命令建立面板的管理员账号:
marzban cli admin create --sudo
其中会提示输入账号名、密码、TelegramID、Discord webhook,其中TelegramID、Discord webhook用于接收面板信息,也可以忽略。
2.4 重启marzban,进入web界面
通过命令重启marzban
marzban restart
通过 https://面板机域名:8000/dashboard 访问面板,用之前生成的账号登录面板。
这个时候点击“创建用户”看到的只有shadowsocket是可以使用的,其他三个都是灰的,因为inbound没有设置。
2.5 启用vless协议
点击右上角齿轮图标,进入“核心设置”,其实就是xray的配置窗口,在inbound添加vless入站。

熟悉的网友可以自己编写vless入站,不熟悉的可以通过以下网站帮助实现:
https://azavaxhuman.github.io/DDS-Xray-Inbound-Generator
或者用我编写好的入站:
{
"tag": "VLESS+TCP+REALITY+8082",
"listen": "0.0.0.0",
"port": 8082,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"tcpSettings": {},
"realitySettings": {
"show": false,
"dest": "www.lovelive-anime.jp:443",
"xver": 0,
"serverNames": [
"www.lovelive-anime.jp"
],
"privateKey": "yJ9A0yX5MKY6WgeDk_fkiHXc9-vWVouxBNVWtRdgQV0",
"shortIds": [
"529490cf0639487f"
],
"fingerprint": "chrome"
}
}
},
其中port、dest、serverNames、privateKey、shortIDs根据自己的情况调整成自己的,切勿照抄。
添加vless入站后点击“保存”会自动重启xray,也可以自己手动重启。
2.6 添加vless用户
返回首页后刷新一下页面,然后点击“创建用户”,输入用户名、流量、日期等信息。vless右边的三个点,在出来的详情里的“flow”选择xtls-rprx-vision,然后点击“创建用户”

然后在首页就会出现该用户,用户那栏的右边有“复制订阅链接”、“复制配置”、“QR Code”,可以根据情况来使用。
至此,面板就已经搭建完毕,该面板同时也是个节点,可以转发流量。
Marzban节点搭建
marzben支持面板节点分离,支持多节点。节点也是使用的docker方式,安装也可以通过脚本实现。
1、安装
节点通过以下脚本安装:
sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban-node.sh)" @ install
2、对接面板
当出现“Please paste the content of the Client Certificat, press ENTER on a new line when finished:”的时候打开marzban面板的web界面

点击首页的右上角的 “三” ,点击“节点设置”,点击“添加新的Marzban节点”

点击下载证书旁的“显示”图标,出现证书,复制证书栏里所有的内容。然后粘贴到之前节点机的SSH窗口里,然后按ENTER,提示“Do you want to use REST protocol?”输入y,提示示“SERVICE_PORT”和“XRAY_API_PORT”都可以直接回车使用默认值。

然后会继续进行docker镜像的下载和后续安装,直到提示出现:“Uvicorn running on http://0.0.0.0:62050 (Press CTRL+C to quit)”,按CTRL+C终止。
编辑 /opt/marzban-node/docker-compose.yml文件,添加SSL证书,编辑后内容如下:

然后重启节点:
marzban-node restart
然后到之前的面板web界面,在添加新的marzban节点里输入节点名字、节点IP地址,端口、API端口、系数使用默认即可,根据你的实际情况决定是否勾选”为每个入站请求添加此节点作为新主机”,然后点击“添加节点”

等待节点的添加,直到出现xray版本和“已连接”

这个时候节点机器就已经和面板对接成功,刷新之前的订阅链接可以看到新的节点已经添加上去了。