前言
这是一篇SSPANEL面板+V2ray(ws+tls)后端的部署教程
本篇文章仅用于学习交流,严禁商业用途!
如果你觉得自建很麻烦的话可以用现成的

你也可以找我帮你搭建,联系方式见文章底部
部署准备
- Centos 7 服务器
- 域名
- Shell终端
- 脑子
域名解析
本教程示例域名 const.cloud
注册并登录CloudFlare
添加域名


添加A记录到要装面板的服务器iP

进入CloudFlare首页会提示你修改DNS服务器

进入域名控制台

修改对应的DNS服务器

进阶-面板服务器的选择及站库分离下面这篇文章有助于选择合适的面板服务器及数据库
前端部署
通过SSH终端连接服务器
更新系统
yum -y update

安装EPEL源:
yum -y install epel-release

安装开发工具包
yum -y groupinstall "Development Tools"

内存小的可以适量增加SWAP
wget https://www.moerats.com/usr/shell/swap.sh && bash swap.sh

宝塔面板
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

输入 y
确认

安装完成输出登录信息,建议单独保存
Bt-Panel | 登录地址 |
username | 账户 |
password | 密码 |
浏览器访问宝塔面板登录

安装如图LNMP环境

进入软件商店安装Redis

NGINX | 1.17 |
MYSQL | 5.7 |
PHP | 7.2 |
Redis | 5.0 |
安装速度取决于服务器性能,静待安装完成
完成后请确保所有可用升级的软件升到最新
配置PHP
安装扩展 ionCube
fileinfo
redis

禁用函数 system
proc_open
putenv

添加网站
本教程根目录为
/www/wwwroot/sspanel

进入网站根目录添删除默认文件

Shell终端执行以下命令
cd /www/wwwroot/sspanel
git clone -b dev https://github.com/Anankke/SSPanel-Uim.git tmp && mv tmp/.git . && rm -rf tmp && git reset --hard
git config core.filemode false
wget https://getcomposer.org/installer -O composer.phar
php composer.phar
php composer.phar install
cd ../
chmod -R 755 sspanel/
chown -R www:www sspanel/
ln -s /www/wwwroot/sspanel/sql/glzjin_all.sql /www/backup/database/

网站配置
设置运行目录 /public
,并取消 防跨站攻击

伪静态
location / {
try_files $uri /index.php$is_args$args;
}

SSL


数据库
创建数据库

导入数据库

配置网站程序
Shell里面执行
cd /www/wwwroot/sspanel/
cp config/.config.example.php config/.config.php
按照自己的需求修改
/www/wwwroot/sspanel/config/.config.php
修改
站点地址
及数据库信息
并保存

创建管理员并同步用户
依次执行以下命令:
php xcat createAdmin
php xcat syncusers
php xcat initQQWry
php xcat resetTraffic
php xcat initdownload
如果创建管理员出错请检查 config/.config.php 中的数据库连接信息。

定时任务
编辑/var/spool/cron
下的root
文件,添加以下四条:
30 22 * * * php /www/wwwroot/你的文件夹名/xcat sendDiaryMail
0 0 * * * php -n /www/wwwroot/你的文件夹名/xcat dailyjob
*/1 * * * * php /www/wwwroot/你的文件夹名/xcat checkjob
*/1 * * * * php /www/wwwroot/你的文件夹名/xcat syncnode
如果需要自动备份,可模仿以下两例,自行添加一条。
每 20 分钟备份 1 次(若间隔大于 60 分钟看下个例子):
*/20 * * * * php -n /www/wwwroot/你的文件夹名/xcat backup
每 20 小时备份 1 次(若间隔大于 24 小时请学会熟练使用搜索引擎):
0 */20 * * * php -n /www/wwwroot/你的文件夹名/xcat backup
如果需要财务报表,可选添加以下三条:
5 0 * * * php /www/wwwroot/你的文件夹名/xcat sendFinanceMail_day
6 0 * * 0 php /www/wwwroot/你的文件夹名/xcat sendFinanceMail_week
7 0 1 * * php /www/wwwroot/你的文件夹名/xcat sendFinanceMail_month
如果需要检测被墙,需要添加:
*/1 * * * * php /www/wwwroot/你的文件夹名/xcat detectGFW
如果要用到 radius,需要添加下面这三条:
*/1 * * * * php /www/wwwroot/你的文件夹名/xcat synclogin
*/1 * * * * php /www/wwwroot/你的文件夹名/xcat syncvpn
*/1 * * * * php -n /www/wwwroot/你的文件夹名/xcat syncnas

安装完成

进阶模式
前端修改
环境
安装Node.js
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum -y install nodejs

安装版本管理器
npm install -g n

安装最新版本Node.js
n latest

切换到最新版本
n
查看当前版本
node -v

npm更新
npm install -g npm

Shell内继续执行下面代码
cd /www/wwwroot/sspanel/
wget http://box.aokix.cn/uim-index-dev.zip
unzip uim-index-dev.zip

安装依赖
cd uim-index-dev
npm install


自定义
- Logo /www/wwwroot/sspanel/uim-index-dev/src/assets/logo.png
- LOGO /www/wwwroot/sspanel/public/images/logo_white.png
- favicon /www/wwwroot/sspanel/uim-index-dev/public/favicon.ico
- 网站名 /www/wwwroot/sspanel/config/.conig.php ^20
构建index页面
npm update

chmod +x *.sh
./createIndexTpl.sh


背景
回到Cloudflare,进入域名管理界面>Apps
搜索并安装
Background Meow

可以通过多个方式选择背景图片
比如说选择关键词 universe ,然后保存更改

如果你不喜欢采用新的界面,那你可以通过以下操作回到旧的界面
将 /www/wwwroot/sspanel/resources/views/material
目录下的index.tpl
文件重命名为 index.bak
,把indexold.tpl
重命名为index.tpl
此时就回到了旧的页面

自定义
- 首页副标题 /www/wwwroot/sspanel/resources/views/material/index.tpl ^73
- 背景 /www/wwwroot/sspanel/public/images/bg.jpg
- favicon /www/wwwroot/sspanel/public/favicon.ico
PS:修改页面要清理缓存才生效哦!
清理CDN缓存和浏览器缓存


邮件系统
示例采用SMTP的QQ邮箱发件
登录网页版QQ邮箱 设置-账户

开启SMTP获取授权码

编辑 /www/wwwroot/sspanel/config
目录下的./config.php
配置文件

- smtp_passsword 刚生成的授权码
- smtp_username QQ邮箱账户
更多
支付系统以及消息推送等自己弄。。。
后端部署
节点 WS+TLS V2ray
采用v2ray-poseidon后端,社区版仅仅支持50个用户,商业版说明见文章底部接下来换Finshell终端,毕竟很多人对vim不熟悉
面板API信息 (见.config.php)
baseUrl | https://const.cloud |
muKey | SFGHJIOUOAS |
面板新增节点
节点名称 | 国家 地区 编号 |
节点地址 | 在下面 |
节点iP | 留空或填写节点服务器iP |
节点类型 | V2ray |
地址解析 节点编号.const.cloud;443;32;tls;ws;path=/|host=节点编号..const.cloud
举个例子 sga.const.cloud;443;32;tls;ws;path=/|host=sga.const.cloud
域名通常命规则 国家代码
节点序号
.const.cloud
当然你也可以瞎搞

忽略该错误并回到节点列表


Cloudflare解析域名到节点ip,灰色云朵

修改.config.php 配置文件

注释掉 /src/Middleware/Mod_Mu.php 的 32 行

节点服务器 Centos7 X64
安装加速推荐使用BBR2
yum install wget
wget -N --no-check-certificate "https://github.000060000.xyz/tcp.sh" && chmod +x tcp.sh && ./tcp.sh


重启完成后 ./tcp.sh
进入管理脚本 使用BBR2+CAKE+ECN加速


同步时间
yum -y install ntpdate
timedatectl set-timezone Asia/Shanghai
ntpdate ntp1.aliyun.com

关闭防火墙
systemctl start supervisord
systemctl disable firewalld
systemctl stop firewalld

安装并启动 Docker/docker-compose
curl -fsSL https://get.docker.com | bash
curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod a+x /usr/local/bin/docker-compose
rm -f `which dc`
ln -s /usr/local/bin/docker-compose /usr/bin/dc
systemctl start docker
service docker start
systemctl enable docker.service
systemctl status docker.service
依次执行上面命令,docker.service为active (running)时表示正常

获取后端
yum install -y git
git clone https://github.com/ColetteContreras/v2ray-poseidon.git
修改配置文件
修改
/root/v2ray-poseidon/docker/sspanel/ws-tls
目录下的config.json
"nodeId": // 面板里添加完节点后生成的自增ID
"license_key": "", // 无效,或空的 license key 都会被当成社区版,社区版只支持50人
"panelUrl": "https://const.cloud", // SSPanel 面板地址
"panelKey": "SFGHJIOUOAS", // SSPanel 面板的配置文件中的 muKey 的值
"alterId": 32, // SSPanel 面板的配置文件中$_ENV['v2ray_alter_id']的值

修改
/root/v2ray-poseidon/docker/sspanel/ws-tls
目录下的docker-compose.yml
command: tls cloudflare 域名
例子: command: tls cloudflare sga.const.cloud
- CF_API_EMAIL=
你的Cloudflare账户- CF_API_KEY=
你的Cloudflare key
Cloudflare key


编辑完成后保存
启动节点
cd /root/v2ray-poseidon/docker/sspanel/ws-tls
dc up -d

查看运行日志
dc logs


更多
下列命令在/root/v2ray-poseidon/docker/sspanel/ws-tls
目录下执行
启动 | dc up -d |
停止 | dc stop |
重启 | dc restart |
查看日志 | dc logs |
v2ray-poseidon商业版及社区版区别,购买商业版请找我

关于价格
160USDT | 一年 |
290USDT | 两年 |
400USDT | 三年 |
700USDT | 永久 |
微信 QQ
如果你觉得本篇文章对你有用,请选择打赏我!

[email protected]:~# cd /root/v2ray-poseidon/docker/sspanel/ws-tls
[email protected]:~/v2ray-poseidon/docker/sspanel/ws-tls# dc up -d
Creating network "ws-tls_default" with the default driver
Pulling v2ray-ws-tls (v2cc/poseidon:)...
latest: Pulling from v2cc/poseidon
e6b0cf9c0882: Pull complete
cfb1b587aea4: Pull complete
a213e777e829: Pull complete
951031870ff6: Pull complete
94318e47f208: Pull complete
9c63d8222868: Pull complete
6d4633e2c164: Pull complete
Digest: sha256:7173ecf92e537c219237ab6f694f35f706a13ffb38084a745ca79d51627f7a55
Status: Downloaded newer image for v2cc/poseidon:latest
Creating v2ray-ws-tls ...
Creating v2ray-ws-tls ... error
ERROR: for v2ray-ws-tls Cannot start service v2ray-ws-tls: driver failed programming external connectivity on endpoint v2ray-ws-tls (b86f6a3f0bf9d128d434118f80235687b5dfbd20ddd2e0e6af906bbac58a3b65): Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use
ERROR: for v2ray-ws-tls Cannot start service v2ray-ws-tls: driver failed programming external connectivity on endpoint v2ray-ws-tls (b86f6a3f0bf9d128d434118f80235687b5dfbd20ddd2e0e6af906bbac58a3b65): Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use
ERROR: Encountered errors while bringing up the project.
我是面板和后端放一台主机搭建的,443端口肯定是被网站占用了,这样的情况该怎么办
@梦 谷歌一下解除端口占用
@拾贰 谢谢你的教程,我是nginx占用了端口,停掉nginx就可以运行了,启动后端docker-proxy就不可以启用nginx。好像前端和后端没办法放一起,我就一台服务器搭着玩的。教程超详细,正常分开搭是可以上网的了
@梦 我总算把前后端放一起了,后端换成其他端口就行了,我还没弄懂反正可以了。。。这个面板好像有的问题,注册马上登录账号,登录不了,需要刷新网页再登录才行。