Marzban面板和节点部署

当前能用的面板主要有X-UI、3X-UI、Marzban,其中X-UI的功能不全,不支持Telegram机器人,且长期没有更新;3X-UI解决了X-UI的问题,但不支持多节点。Marzban则是一款比较有特色的面板,主要特性有:

  • 内置 Web 界面
  • 完全支持 REST API 的后端
  • 支持 VmessVLESSTrojanShadowsocks 协议
  • 单用户的多协议支持
  • 单入站的多用户支持
  • 单端口的多入站支持(使用 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版本和“已连接”

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

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注