前言

请注意,本教程仅用于学习目的,切勿将其用于非法用途。使用本教程搭建面板需要遵循法律法规,谨慎使用相关技术。

1. 安装宝塔面板 7.7

1
2
3
4
5
6
7
8
9
# 更新系统和安装 wget、curl
apt-get update -y && apt-get install wget -y && apt-get install curl -y

# 安装宝塔面板
curl -sSO <https://raw.githubusercontent.com/zhucaidan/btpanel-v7.7.0/main/install/install_panel.sh> && bash install_panel.sh

# 删除登录验证
sed -i "s|if (bind_user == 'True') {|if (bind_user == 'REMOVED') {|g" /www/server/panel/BTPanel/static/js/index.js
rm -rf /www/server/panel/data/bind.pl

2. 配置宝塔面板

  • 安装如下:
    • Nginx 1.22.1
    • PHP 8.2 +
    • MySQL 10.11.6-MariaDB
    • Redis 7.0.11
    • phpMyAdmin 4.9
    • Pure-Ftpd 1.0.49
  • 安装 PHP 扩展:fileinforedisyaml
  • 删除 PHP 被禁用函数:proc_openproc_get_statusputenv

3. 创建网站并添加 SSL 证书

4. 下载并安装面板源码

1
2
3
cd /www/wwwroot
# 版本参考 GitHub
git clone -b 2023.6 https://github.com/Anankke/SSPanel-Uim.git

5. 设置站点运行目录和伪静态

  1. 站点目录设置为 /www/wwwroot/SSPanel-Uim/public,关闭防跨站攻击
  2. 编辑 Nginx 配置文件,在 location / 下添加:
1
2
3
location / {
    try_files $uri /index.php$is_args$args;
}
  1. 重启 Nginx。

6. 设置站点根目录整体权限

1
chmod -R 775 /www/wwwroot/SSPanel-Uim

7. 编辑网站配置文件

  • appprofile.example.php 重命名为 appprofile.php
  • .config.example.php 重命名为 .config.php
  • 编辑 .config.php,填写必要的参数。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$_ENV['key'] = 'abcde';  //Cookie加密密钥,请务必修改此key为随机字符串
$_ENV['appName']  = 'sspanel'; //站点名称
$_ENV['baseUrl']  = '<https://www.aaa.com>';  //站点地址,结尾不要带斜杠
$_ENV['muKey'] = 'abcde';   //WebAPI密钥,用于节点服务端与面板通信
$_ENV['db_database']  = 'database'; //数据库名
$_ENV['db_username']  = 'user'; //数据库用户名
$_ENV['db_password']  = 'password'; //用户名对应的密码
$_ENV['enable_login_bind_ip'] = false; //是否将登陆和IP绑定,建议false
$_ENV['checkNodeIp']  = false; //是否webapi验证节点ip,建议false
$_ENV['cloudflare_enable'] = true; //是否开启 Cloudflare 解析
$_ENV['cloudflare_email'] = 'aa@gmail.com'; //Cloudflare 邮箱地址
$_ENV['cloudflare_key'] = 'key'; //Cloudflare API Key
$_ENV['cloudflare_name'] = 'www.aaa.com'; //站点域名
// ...其他参数

8. 站点初始化

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
cd /www/wwwroot/SSPanel-Uim
# 切换为PHP8.2
sudo ln -sf /www/server/php/82/bin/php /usr/bin/php

wget https://getcomposer.org/installer -O composer.phar
php composer.phar
php composer.phar install --no-dev
php xcat Migration new
php xcat Tool importAllSettings
php xcat Tool createAdmin

# 将目录权限用户设为 www
chmod -R 755 /www/wwwroot/SSPanel-Uim

9. 设置定时任务

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 安装 cron
sudo apt-get install cron

# 编辑定时任务
crontab -e

# 添加以下任务
*/5 * * * * /usr/bin/php /www/wwwroot/SSPanel-Uim/xcat Cron

# 保存并退出,重启 cron
systemctl restart cron

10. 修改节点订阅下发端口问题

面板会将用户端口下发为ss节点端口

  1. SSPanel-Uim/src/Services/Subscribe 目录下,除了 base.phpTrojan.phpV2ray.php 之外的文件都需要修改。
  2. 在每个文件的 foreach ($nodes_raw as $node_raw) { 后添加以下代码:
1
2
3
4
5
6
# 在 foreach ($nodes_raw as $node_raw) { 这一行的下一行添加下面这一行代码:
$node_custom_config = json_decode($node_raw->custom_config, true);

# 在if ((int) $node_raw->sort === 0) { 这一行的下一行添加下面这一行代码:
$ss_port = $node_custom_config['offset_port_user'] ?? ($node_custom_config['offset_port_node'] ?? $user->port);
# 这里是指按照 offset_port_user、offset_port_node、用户端口的顺序加载端口
  1. 将后面 $links 开头的代码中的 $user->port 改为 $ss_port
  2. 重启服务器

参考