# V2Board

V2Board (opens new window) 是近年新开发的又一个机场面板之一,因界面优雅、配置明了而深受广大机场主喜爱。

# 功能特性

  • 支持 Shadowsocks、Vmess、Trojan 协议
  • Laravel 框架开发
  • 稳定、简单、快速
  • 单一版本

# 安装

# 环境依赖

  • PHP >= 7.3
  • Nginx >= 1.17
  • MySQL = 5.x
  • Redis

基础环境安装参见 Linux 基础

# 面板安装

# 获取面板代码

# 创建目录
cd /var/www
mkdir v2board

# 拉取代码
cd v2board
git clone https://github.com/v2board/v2board.git ${PWD}

# 下载 composer
wget https://getcomposer.org/installer -O composer.phar

# 安装 PHP 依赖
php composer.phar
php composer.phar install

# 执行面板安装命令,根据提示完成安装
php artisan v2board:install

# 调整目录权限
chmod -R 755 ${PWD}
chown -R www-data:www-data ${PWD}

# Nginx 配置

需要使用的伪静态配置如下。

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

完整的 Nginx 配置如下,将文件放置在 /etc/nginx/sites-available/v2board.conf,Nginx 配置文件的常用目录请参考 SSPanel

server {  
    listen 80;
    listen [::]:80;
    root /var/www/v2board/public; # 改成你自己的路径,需要以 /public 结尾
    index index.php index.html;
    server_name sspanel.host; # 改成你自己的域名

    location /downloads {}

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
    }

    location ~ .*\.(js|css)?$
    {
        expires 1h;
        error_log off;
        access_log /dev/null; 
    }
}

再在 /etc/nginx/sites-enabled 下配置软连接。

cd /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/v2board.conf v2board

重新加载 Nginx 配置。

nginx -s reload

# 配置定时任务

使用 crontab -e 进入 crontab 编辑界面,添加如下定时任务。

# 注意修改为自己的目录
*/1 * * * * php /var/www/v2board/artisan schedule:run

# 队列服务

首先安装 Node.js 14.x。

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt install -y nodejs

检查 Node.js 版本。

$ node -v
v14.15.0

安装 Node.js 后也会同时安装 NPM,这是 Node.js 的依赖管理器,检查 NPM 的版本。

$ npm -v
6.14.8

Node.js 与 NPM 安装完成后,即可开始安装 PM2。

# 全局安装最新版的 PM2
sudo npm install pm2@latest -g

启动队列服务。

cd /var/www/v2board
pm2 start pm2.yaml

# 开机启动
pm2 startup
systemctl enable pm2-root

查看队列服务状态。

$ pm2 list
┌─────┬────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id  │ name       │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├─────┼────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0   │ V2Board    │ default     │ N/A     │ fork    │ 32329    │ 8s     │ 0    │ online    │ 0%       │ 39.0mb   │ root     │ disabled │
│ 1   │ V2Board    │ default     │ N/A     │ fork    │ 32330    │ 8s     │ 0    │ online    │ 0%       │ 38.8mb   │ root     │ disabled │
│ 2   │ V2Board    │ default     │ N/A     │ fork    │ 32331    │ 7s     │ 0    │ online    │ 0%       │ 38.6mb   │ root     │ disabled │
│ 3   │ V2Board    │ default     │ N/A     │ fork    │ 32332    │ 7s     │ 0    │ online    │ 0%       │ 38.9mb   │ root     │ disabled │
└─────┴────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

查看 PM2 开机启动状态。

$ systemctl status pm2-root
● pm2-root.service - PM2 process manager
   Loaded: loaded (/etc/systemd/system/pm2-root.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-11-22 22:01:49 CST; 4min 44s ago
     Docs: https://pm2.keymetrics.io/
  Process: 32276 ExecStop=/usr/lib/node_modules/pm2/bin/pm2 kill (code=exited, status=0/SUCCESS)
  Process: 32288 ExecStart=/usr/lib/node_modules/pm2/bin/pm2 resurrect (code=exited, status=0/SUCCESS)
 Main PID: 32310 (node)
    Tasks: 15 (limit: 1107)
   CGroup: /system.slice/pm2-root.service
           ├─32310 PM2 v4.5.0: God Daemon (/root/.pm2)
           ├─32329 php artisan queue:work --queue=send_email,send_telegram
           ├─32330 php artisan queue:work --queue=send_email,send_telegram
           ├─32331 php artisan queue:work --queue=send_email,send_telegram
           └─32332 php artisan queue:work --queue=send_email,send_telegram

Nov 22 22:01:49 VM-0-5-ubuntu pm2[32288]: [PM2] Process /bin/bash restored
Nov 22 22:01:49 VM-0-5-ubuntu pm2[32288]: ┌─────┬────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
Nov 22 22:01:49 VM-0-5-ubuntu pm2[32288]: │ id  │ name       │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
Nov 22 22:01:49 VM-0-5-ubuntu pm2[32288]: ├─────┼────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
Nov 22 22:01:49 VM-0-5-ubuntu pm2[32288]: │ 0   │ V2Board    │ default     │ N/A     │ fork    │ 32329    │ 0s     │ 0    │ online    │ 0%       │ 27.2mb   │ root     │ disabled │
Nov 22 22:01:49 VM-0-5-ubuntu pm2[32288]: │ 1   │ V2Board    │ default     │ N/A     │ fork    │ 32330    │ 0s     │ 0    │ online    │ 0%       │ 26.9mb   │ root     │ disabled │
Nov 22 22:01:49 VM-0-5-ubuntu pm2[32288]: │ 2   │ V2Board    │ default     │ N/A     │ fork    │ 32331    │ 0s     │ 0    │ online    │ 0%       │ 25.7mb   │ root     │ disabled │
Nov 22 22:01:49 VM-0-5-ubuntu pm2[32288]: │ 3   │ V2Board    │ default     │ N/A     │ fork    │ 32332    │ 0s     │ 0    │ online    │ 0%       │ 17.3mb   │ root     │ disabled │
Nov 22 22:01:49 VM-0-5-ubuntu pm2[32288]: └─────┴────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
Nov 22 22:01:49 VM-0-5-ubuntu systemd[1]: Started PM2 process manager.

# 进阶使用

# 后端节点

# 概念解析

  • 连接端口和服务端口

    连接端口是用户连接所使用的端口,服务端口为节点提供服务所使用的端口。

    假设你有一台中转服务器将 A 服务器 1234 端口数据转发到 B 服务器 4567 端口,那么用户连接 A 服务器,而后端节点部署于 B 服务器。此时,连接端口为 A 服务器的 1234 端口,服务端口为 B 服务器的 4567 端口。

  • 父节点与子节点

    一般只有多入口单出口(多中转单落地)的情况下才会使用到。

    • 父节点用于服务端获取节点配置及客户端连接所使用,假设使用的是官方的服务端只需要在 V2Board 进行节点配置无需额外在服务端进行配置,配置将会自动从 V2Board 获取一键部署。

    • 子节点继承父节点的节点状态以便显示正确的节点状态展示给用户,参数配置只做为客户端连接使用,不会与服务端进行交互。节点倍率同步父节点。

# 由 V2Board 官方团队维护的后端

仅支持 V2Board。

# 第三方提供的后端

参考 节点

# Telegram