跳到主要内容

Xboard

Xboard 是一套功能完整的机场管理系统,基于 V2Board 演进而来,支持多节点、多协议、用户订阅管理、套餐销售、支付接入等功能,适合搭建对外提供服务的代理平台。

关于 Xboard 与 V2Board

Xboard 是 V2Board 的社区分叉版本,修复了原版的安全问题,并持续在更新维护。如果你在搭建新机场,优先选择 Xboard 而非原版 V2Board。


环境要求

Xboard 支持两种部署方式:Docker(推荐)和传统 LNMP 环境。

Docker 部署(推荐)

  • Docker 20.10+
  • Docker Compose 2.0+
  • 一台有公网 IP 的 VPS(推荐 1 核 1 GB 以上)
  • 域名(用于前端访问和 API 通信)

传统 LNMP 部署

  • PHP 8.1+(需要扩展:BCMath、Ctype、FileInfo、JSON、Mbstring、OpenSSL、PDO、Tokenizer、XML)
  • MySQL 5.7+ 或 MariaDB 10.3+
  • Nginx 1.18+ 或 Apache
  • Redis(可选,用于队列与缓存)

安装

方式一:Docker 一键部署(推荐)

1. 下载部署文件

git clone https://github.com/cedar2025/Xboard.git
cd Xboard

2. 复制环境配置

cp .env.example .env

3. 编辑 .env 文件,配置数据库和域名

# 应用配置
APP_URL=https://your-domain.com

# 数据库配置(Docker 模式下使用内置 MySQL)
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=xboard
DB_USERNAME=xboard
DB_PASSWORD=your-db-password

# Redis 配置
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379

4. 启动服务

docker compose up -d

5. 初始化数据库

docker compose exec xboard php artisan xboard:install

按提示设置管理员账号和密码,安装完成后即可通过 https://your-domain.com 访问管理后台。


方式二:手动部署(LNMP 环境)

1. 下载源码

git clone https://github.com/cedar2025/Xboard.git /var/www/xboard
cd /var/www/xboard

2. 安装依赖

composer install --optimize-autoloader --no-dev

3. 配置 .env

cp .env.example .env
php artisan key:generate

编辑 .env 配置数据库连接信息。

4. 初始化

php artisan xboard:install
php artisan storage:link

5. 配置 Nginx

server {
listen 80;
server_name your-domain.com;
root /var/www/xboard/public;

index index.php;

location / {
try_files $uri $uri/ /index.php?$query_string;
}

location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
}
}

配置完成后建议使用 certbot 申请 SSL 证书,强制 HTTPS。

6. 启动队列进程

php artisan queue:work --daemon

建议使用 Supervisor 管理队列进程,确保持久运行。


节点对接

Xboard 通过与后端节点通信来管理用户流量。常见后端包括 3X-UI(单用户)和 XrayR/Sing-box-Xboard(多用户)。

对接 XrayR(推荐)

XrayR 是专门设计用于与 V2Board/Xboard 对接的多用户节点后端。

1. 在 Xboard 后台创建节点

进入「节点管理」→「添加节点」,选择协议类型(如 VMess、VLESS、Trojan、Shadowsocks),填写节点名称、地址、端口等信息,保存后记录节点 ID 和 API 通信密钥。

2. 在 VPS 上安装 XrayR

bash <(curl -Ls https://raw.githubusercontent.com/XrayR-project/XrayR-release/master/install.sh)

3. 配置 XrayR

编辑 /etc/XrayR/config.yml

Log:
Level: warning

DnsConfigPath: # 可选

Nodes:
- PanelType: "NewV2board"
ApiConfig:
ApiHost: "https://your-domain.com" # Xboard 面板地址
ApiKey: "your-api-key" # Xboard 后台 → 设置 → API 密钥
NodeID: 1 # 在 Xboard 中创建的节点 ID
NodeType: V2ray # 节点类型:V2ray / Trojan / Shadowsocks
ControllerConfig:
ListenIP: 0.0.0.0
SendIP: 0.0.0.0
UpdatePeriodic: 60
EnableDNS: false
CertConfig:
CertMode: http # http / dns / file
CertDomain: "your-node-domain.com"
CertFile: /etc/XrayR/cert/cert.pem
KeyFile: /etc/XrayR/cert/key.pem

4. 启动 XrayR

xrayr start
systemctl enable XrayR

套餐与用户管理

创建套餐

进入「套餐管理」→「添加套餐」:

字段说明
套餐名称用户可见的套餐名,如「月付 100G」
月度流量每月重置的流量上限(MB),0 表示不限制
连接设备数允许同时在线的设备数量,0 不限
速度限制节点限速(Mbps),0 不限
套餐售价月付/季付/半年/年付价格(0 表示不提供该时长选项)
套餐组可限制该套餐能访问的节点分组
试用天数新用户注册后的免费试用天数(0 禁用试用)

用户管理

在「用户管理」中可以:

  • 查看所有用户的注册时间、到期时间、流量使用情况
  • 手动修改用户套餐、延长到期时间、重置流量
  • 封禁或解封用户账号
  • 查看用户订阅链接和连接日志

流量统计

Xboard 提供按节点、按用户、按时间维度的流量统计,路径为「统计」→「流量统计」。


支付接入

Xboard 支持多种支付渠道,在「支付设置」中配置。

易支付(推荐,适合国内)

驱动:epay
商户 ID:your-merchant-id
秘钥:your-secret-key
支付接口地址:https://your-epay.com

支持的易支付类型:支付宝、微信、QQ 钱包等(取决于易支付服务商配置)。

Stripe(适合境外用户)

驱动:stripe
Secret Key:sk_live_xxxx
Webhook 密钥:whsec_xxxx

需要在 Stripe Dashboard 中配置 Webhook,指向 https://your-domain.com/api/v1/guest/payment/notify

手动审核支付(适合小规模)

无需接入支付平台,用户提交订单后由管理员手动确认付款并开通服务,适合初期运营或对接线下转账。


订阅配置

Xboard 为每个用户自动生成订阅链接,用户可在「我的」→「订阅」页面获取。

订阅格式

Xboard 支持多种订阅格式输出:

格式适用客户端
Clash(YAML)Mihomo、Stash、Clash Verge 等
V2Ray/Xrayv2rayN、Nekoray 等
Shadowrocket小火箭(iOS)
sing-box JSONsing-box 系客户端

自定义订阅前缀

在「系统设置」→「订阅设置」中可配置:

  • 订阅节点名称前缀(如显示为「🇭🇰 香港01」)
  • 订阅域名(建议使用与面板不同的域名)
  • 是否隐藏套餐名称

客户端兼容性说明

  • Clash 格式:最广泛兼容,推荐作为默认格式
  • sing-box 格式:支持 VLESS/Hysteria 2 等新协议,推荐给进阶用户
  • 通用格式(Base64):v2rayN、小火箭等客户端的备用选项

对接 sing-box-xboard 后端

除 XrayR 外,也可以使用 sing-box-xboard 作为节点后端,支持 Hysteria 2、VLESS-Reality、AnyTLS 等更新的协议。

1. 安装

bash <(curl -fsSL https://raw.githubusercontent.com/PuerNya/sing-box-xboard/main/install.sh)

2. 配置 /etc/sing-box-xboard/config.json

{
"log": { "level": "warn" },
"nodes": [
{
"panel_type": "NewV2board",
"api_host": "https://your-domain.com",
"api_key": "your-api-key",
"node_id": 1,
"node_type": "hysteria2"
}
]
}

node_type 可填:vmessvlesstrojanshadowsockshysteria2tuic

3. 启动

systemctl start sing-box-xboard
systemctl enable sing-box-xboard

更新与维护

更新 Xboard(Docker 方式)

cd /path/to/xboard
docker compose pull
docker compose up -d
docker compose exec xboard php artisan migrate --force

更新 Xboard(手动部署方式)

cd /var/www/xboard
git pull
composer install --optimize-autoloader --no-dev
php artisan migrate --force
php artisan config:cache
php artisan route:cache
# 重启队列进程
supervisorctl restart all

备份数据库

# MySQL 备份
mysqldump -u xboard -p xboard > xboard_backup_$(date +%Y%m%d).sql

# Docker 方式
docker compose exec mysql mysqldump -u xboard -ppassword xboard > backup.sql

建议设置定期备份的 cron 任务,并将备份文件上传到对象存储(如 Cloudflare R2、阿里云 OSS)。


安全加固

限制后台访问 IP

在 Nginx 配置中为 /admin 路径添加 IP 白名单:

location /admin {
allow 1.2.3.4; # 你的管理 IP
deny all;
try_files $uri $uri/ /index.php?$query_string;
}

修改默认后台路径

在「系统设置」→「站点设置」中修改后台访问路径(如将 /admin 改为随机字符串),降低被扫描的风险。

启用双因素认证

在管理员账户设置中开启 TOTP 两步验证,防止密码泄漏后被直接登录。

数据库安全

  • 不要将数据库端口(3306)暴露在公网,只允许本机或内网访问
  • 数据库账号使用最小权限,不要使用 root 账号运行 Xboard
  • 定期修改数据库密码

常见问题

面板安装后无法访问?

  • 检查域名 DNS 解析是否已生效(nslookup your-domain.com
  • 确认 80/443 端口防火墙已放行
  • 查看 Nginx 错误日志:tail -f /var/log/nginx/error.log

节点对接后用户无法连接?

  • 在 Xboard 后台「节点管理」查看节点是否显示「在线」
  • 检查 XrayR/sing-box-xboard 日志:journalctl -u XrayR -f
  • 确认节点 VPS 防火墙放行了对应协议端口

用户订阅更新后节点为空?

  • 检查订阅链接是否能正常访问(用浏览器打开看是否返回内容)
  • 确认用户套餐未过期、流量未用尽
  • 检查节点是否已分配到用户套餐所属的节点分组

支付回调失败?

  • 确认支付回调 URL(/api/v1/guest/payment/notify)可以从外部访问
  • 查看 Xboard 日志:docker compose logs xboardtail -f storage/logs/laravel.log
  • 检查支付平台配置的密钥是否与 Xboard 中一致