Skip to content

Latest commit

 

History

History
303 lines (224 loc) · 12.4 KB

README-zh-cn.md

File metadata and controls

303 lines (224 loc) · 12.4 KB

Marzban

Unified GUI Censorship Resistant Solution Powered by Xray


English / فارسی / 简体中文

Marzban screenshots

目录

概览

Marzban(Marzban一词源自波斯语,意为“边境警卫”,发音为 /mærz'ban/)是一个代理管理工具,提供简单易用的用户界面,可管理数百个代理账户,由 Xray-core 提供支持,使用 Python 和 Reactjs 构建。

为什么要使用 Marzban?

Marzban 是一个用户友好、功能丰富且可靠的工具。它让您可以为用户创建不同的代理,无需进行任何复杂的配置。通过其内置的 Web 界面,您可以监视、修改和限制用户。

特性

  • 内置 Web 界面
  • 完全支持 REST API 的后端
  • 支持 VmessVLESSTrojanShadowsocks 协议
  • 单用户的多协议支持
  • 单入站的多用户支持
  • 单端口的多入站支持(使用 fallbacks)
  • 流量过期日期限制
  • 周期性的流量限制(例如每天、每周等)
  • 兼容 V2ray订阅链接(例如 V2RayNG、OneClick、Nekoray 等)和 Clash
  • 自动化的分享链接二维码生成器
  • 系统监控和流量统计
  • 可自定义的 xray 配置
  • TLS 支持
  • 集成的 Telegram Bot
  • 多管理员支持(WIP)

安装指南

我们强烈建议使用我们的 Docker 镜像运行。这样更易于维护和升级。

使用 Docker 进行安装(推荐)

我们根据不同的需求制作了一些预构建的 Docker 配置文件。要使用 Docker 运行此应用程序,请阅读此处的说明

您可以选择其中一个设置,例如:

手动安装(高级)

在您的机器上安装xray

您可以使用 Xray-install 进行安装。

手动安装(高级)

在您的机器上安装 xray

您可以使用 Xray-install 脚本进行安装:

bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install

克隆项目并安装依赖项。

您需要 Python>=3.8 版本。

git clone https://github.com/Gozargah/Marzban.git
cd Marzban
wget -qO- https://bootstrap.pypa.io/get-pip.py | python3 -
python3 -m pip install -r requirements.txt

另外,为了拥有一个隔离的环境,您可以使用 Python Virtualenv

然后运行以下命令运行数据库迁移脚本:

alembic upgrade head

现在开始配置:

复制 .env.example 文件,查看并使用文本编辑器(如nano)进行编辑。

您可能想要修改管理员凭据。

cp .env.example .env
nano .env

请查看配置部分以获取更多信息。

最终,使用以下命令启动应用程序:

python3 main.py

也可使用 linux systemctl 启动:

systemctl enable /var/lib/marzban/marzban.service
systemctl start marzban

配合 nignx 使用:

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name  example.com;

    ssl_certificate      /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/example.com/privkey.pem;

    location ~* /(dashboard|api|docs|redoc) {
        proxy_pass http://0.0.0.0:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name  marzban.example.com;

    ssl_certificate      /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        proxy_pass http://0.0.0.0:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

默认情况下,应用将在 http://localhost:8000/dashboard 上运行。您可以通过更改 UVICORN_HOSTUVICORN_PORT 环境变量来进行配置。

配置

您可以使用环境变量或将其放置在 env.env 文件中来设置以下设置。

变量 描述
SUDO_USERNAME 管理员用户名(默认: admin)
SUDO_PASSWORD 管理员密码(默认: admin)
SQLALCHEMY_DATABASE_URL 数据库文档(SQLAlchemy's docs
UVICORN_HOST 绑定应用程序到此主机(默认为 0.0.0.0
UVICORN_PORT 绑定应用程序到此端口(默认为 8000
UVICORN_UDS 将应用程序绑定到一个 UNIX 域套接字
UVICORN_SSL_CERTFILE SSL 证书文件路径
UVICORN_SSL_KEYFILE SSL 密钥文件路径
XRAY_JSON Xray 的 json 配置文件路径(默认: xray.json
XRAY_EXECUTABLE_PATH Xray 的执行程序路径: /usr/local/bin/xray
XRAY_ASSETS_PATH Xray 的资源目录: /usr/local/share/xray
XRAY_SUBSCRIPTION_URL_PREFIX 订阅URL的前缀
XRAY_FALLBACKS_INBOUND_TAG 包含 fallbacks 的入站标记, 在您需要使用 fallbacks 配置此项
XRAY_EXCLUDE_INBOUND_TAGS 不需要此应用程序管理或在链接中包含的入站标记
TELEGRAM_API_TOKEN Telegram bot API 令牌(可以从 @botfather 获取)
TELEGRAM_ADMIN_ID 管理员的 Telegram ID(可以使用 @userinfobot 查找您的 ID)
TELEGRAM_PROXY_URL 在代理下运行 Telegram bot。
JWT_ACCESS_TOKEN_EXPIRE_MINUTES Access Tokens 的过期时间,以分钟为单位,0 表示无限期(默认为 1440 分钟)
DOCS API 文档是否应该在 /docs/redoc 上提供(默认为 False
DEBUG 开发者调试模式(默认: False

如何使用 API

Marzban 提供了 REST API,使开发人员能够以编程方式与 Marzban 服务进行交互。要在 Swagger UI 或 ReDoc 中查看 API 文档,设置配置变量 DOCS=True,然后导航到 /docs/redoc

如何备份 Marzban

定期备份Marzban文件是预防系统故障或意外删除导致数据丢失的好习惯。以下是备份 Marzban 的步骤:

  1. 默认情况下,所有重要的 Marzban 文件都保存在 /var/lib/marzban ( Docker 版本)中。将整个 /var/lib/marzban 目录复制到您选择的备份位置,比如外部硬盘或云存储。
  2. 此外,请确保备份您的 env 文件,其中包含您的配置变量,以及您的 Xray 配置文件。

按照这些步骤,您可以确保有备份所有 Marzban 文件和数据,以及您的配置变量和 Xray 配置,以备将来恢复使用。请记得定期更新备份,以保持它们的最新性。

Telegram bot

Marzban 配备了一个集成的 Telegram bot,可以处理服务器管理、用户创建和删除,以及发送通知。通过几个简单的步骤,您可以轻松地启用这个机器人,并提供了一种方便的方式与 Marzban 交互,而不需要每次都登录到服务器上。

启用 Telegram bot:

  1. TELEGRAM_API_TOKEN 设置为您的机器人 API Token。
  2. TELEGRAM_ADMIN_ID 设置为您的 Telegram 帐户的数字 ID,您可以从 @userinfobot 中获取自己的 ID。

捐赠

如果您认为 Marzban 有用,并想支持其发展,可以在以下加密网络之一进行捐赠:

  • TRON(TRX) 网络:TX8kJoDcowQPBFTYHAJR36GyoUKP1Xwzkb
  • ETH、BNB、MATIC 网络:0xFdc9ad32454FA4fc4733270FCc12ddBFb68b83F7
  • 比特币网络:bc1qpys2nefgsjjgae3g3gqy9crsv3h3rm96tlkz0v
  • Dogecoin 网络:DJAocBAu8y6LwhDKUktLAyzV8xyoFeHH6R

感谢您的支持!

许可

制作于 [Unknown!] 并在 AGPL-3.0 下发布。

贡献者

我们热爱贡献者!如果您想做出贡献,请查看我们的贡献指南并随时提交拉取请求或打开问题。我们也欢迎您加入我们的 Telegram 群组,以获得支持或贡献指导。

查看 issues 以帮助改进这个项目。

感谢所有为改善 Marzban 做出贡献的贡献者们:

Made with contrib.rocks