原文地址:https://lala.im/7848.html,請支持原作者!該處僅作轉載。
v2board是一个机场面板,xrayr是最近出来的一个后端,讲道理这个后端算很良心了,现在有很多后端都是收费的,而这个永久免费,并且完全开源。
文章目录
咱用的系统是debian10,先来装v2board,建议内存至少1gb。
如果机器内存小于1gb可以尝试挂个swap上去,说不定在安装依赖的时候能够强行怼过去:
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
安装nginx/mariadb/redis和一些需要用到的工具:
apt -y update
apt -y install curl wget git unzip nginx mariadb-server redis-server supervisor
安装php:
apt -y install php7.3-common php7.3-cli php7.3-fpm \
php7.3-gd php7.3-mysql php7.3-mbstring php7.3-curl \
php7.3-xml php7.3-xmlrpc php7.3-zip php7.3-intl \
php7.3-bz2 php7.3-bcmath php-redis
安装composer:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/bin/composer
启动所有需要用到的服务并设置开机自启:
systemctl enable --now nginx mariadb redis-server php7.3-fpm supervisor
[重要]由于之前安装了php的redis扩展,这里需要重启fpm才能生效:
systemctl restart php7.3-fpm
初始化数据库:
mysql_secure_installation
创建一个名为v2board的数据库和用户:
mysql -u root -p
CREATE DATABASE v2board CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON v2board.* TO v2board@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit
拉取项目源码:
cd /var/www
git clone https://github.com/v2board/v2board.git
cd v2board
安装依赖:
composer install
安装v2board:
php artisan v2board:install
按照下图来填写数据库连接信息以及设置管理员账号密码:
[重要]给予正确的权限:
chown -R www-data:www-data /var/www/v2board
chmod -R 755 /var/www/v2board
新建nginx站点配置文件:
nano /etc/nginx/conf.d/v2board.conf
写入如下配置:
server {
listen 80;
server_name v2board.ohshit.club;
root /var/www/v2board/public;
index index.php;
client_max_body_size 0;
location /downloads {
}
location / {
try_files $uri $uri/ /index.php$is_args$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}
}
由于v2board的前端资源文件比较大,务必启用gzip进行压缩,不然访问的时候可能很慢:
nano /etc/nginx/nginx.conf
去掉下面这些配置的注释:
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
重载nginx使其生效:
systemctl reload nginx
安装certbot:
apt -y update
apt -y install snapd
snap install core
snap refresh core
snap install --classic certbot
ln -s /snap/bin/certbot /usr/bin/certbot
使用certbot签发ssl证书:
certbot --nginx
添加计划任务:
crontab -e
写入如下配置:
* * * * * php /var/www/v2board/artisan schedule:run >> /dev/null 2>&1
新建supervisor配置文件用于守护v2board的队列任务:
nano /etc/supervisor/conf.d/v2board.conf
写入如下配置:
[program:v2board]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/v2board/artisan queue:work --queue=send_email,send_telegram,stat_server
numprocs=4
user=www-data
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/www/v2board/storage/logs/queue.log
启动v2board的队列任务:
supervisorctl update
查看队列任务状态:
supervisorctl status
确保全部都是运行状态:
v2board:v2board_00 RUNNING pid 18665, uptime 7:53:33
v2board:v2board_01 RUNNING pid 18664, uptime 7:53:33
v2board:v2board_02 RUNNING pid 18667, uptime 7:53:33
v2board:v2board_03 RUNNING pid 18666, uptime 7:53:33
至此,v2board面板就搭建完成了,访问你的域名应该能够打开v2board的首页,在域名后面加上/admin即可访问后台管理面板。
这里先介绍比较常用的对接方法,既使用xrayr内置的tls设置。后续单独水一篇把tls交给nginx处理的文章。
xrayr内置的证书申请支持很多方法,这里我使用dns的方式,因为这个方法不需要用到80端口,如果在和v2board面板同一台机器上部署xrayr后端的话,80端口肯定是被nginx占用了的,这会导致证书申请失败。
这里我使用的dns服务商是cloudflare,假设你和我使用同一个dns服务商,你有一个node1.ohshit.club的域名。
你现在需要在cloudflare创建一个api,创建步骤可以参考:
Xray前置SNI分流/回落WebSocket+CDN
接着打开v2board面板,在“系统设置-站点”,填写好站点url和订阅url:
[重要]在“服务端”填写通讯密钥,这将是v2board和xrayr后端对接的凭据:
在“权限组管理”添加一个权限组:
在“节点管理”添加一个v2ray节点,为了避免机器被墙,这里建议添加websocket节点,并且启用tls:
关于节点添加这里有几个需要注意的事项:
1.端口是在v2board面板上指定,你指定什么端口xrayr就以什么端口监听。比如我在v2board上配置8443端口,那么xrayr就会监听8443端口。
2.没有特殊情况,连接端口和服务端口一律保持一致。(特殊情况的配置另外开一篇文章详细说明)
3.websocket节点,务必添加path:
{
"path": "/sometimesnaive"
}
如图所示:
现在下载解压xrayr后端:
mkdir /opt/xrayr && cd /opt/xrayr
wget https://github.com/XrayR-project/XrayR/releases/download/v0.5.0/XrayR-linux-64.zip
编辑xrayr配置文件:
nano config.yml
改为如下配置,需要改动的重要部分都写了注释:
Log:
Level: debug
AccessPath: ./access.log
ErrorPath: ./error.log
DnsConfigPath: ./dns.json
Nodes:
-
PanelType: "V2board" // 面板类型
ApiConfig:
ApiHost: "https://v2board.ohshit.club/" // v2board面板的地址,域名结尾一定要加/
ApiKey: "imlalaimlalaimlala" // v2board面板内配置的通讯密钥
NodeID: 1 // v2board面板内对应节点的id
NodeType: V2ray // 节点类型
Timeout: 30
EnableVless: false
EnableXTLS: false
ControllerConfig:
ListenIP: 0.0.0.0
UpdatePeriodic: 60
EnableDNS: false
CertConfig:
CertMode: dns
CertDomain: "node1.ohshit.club" // 节点域名
Provider: cloudflare
Email: [email protected] // 你的邮箱
DNSEnv:
CF_DNS_API_TOKEN: cwPZEBAvIXUcxCdy4v2ib5j8uK-KwnRMDuNPxE-n // 你之前申请的cloudflare域名api
新建supervisor配置文件用于守护xrayr:
nano /etc/supervisor/conf.d/xrayr.conf
写入如下配置:
[program:xrayr]
directory=/opt/xrayr
command=/opt/xrayr/XrayR -config config.yml
autostart=true
autorestart=true
启动xrayr:
supervisorctl update
至此所有配置就全部完成了。如果部署遇到了问题,下面的这些日志可能会有帮助:
/var/www/v2board/storage/logs/laravel-xxxx-xx-xx.log
/var/www/v2board/storage/logs/queue.log
/opt/xrayr/access.log
/opt/xrayr/error.log