面板架构
概述
SSPanel-UIM 是一个典型的 PHP 网页应用程序,它需要以下服务器程序才能正常工作
- HTTP 服务器。通常是 Apache 或者是 Nginx,出于性能考虑我们推荐用户使用 Nginx 部署。
- PHP 脚本运行程序。目前版本的 SSPanel-UIM 是基于 PHP 8.0 版本进行开发和测试的。
- 类 MySQL 数据库。这里包括 Oracle MySQL 和 MariaDB,我们推荐使用最新版本的 MariaDB。
在代码层面,SSPanel-UIM 使用 Slim Framework 3 作为后端的基础框架,使用 Smarty 模板引擎提供前端渲染,Composer 管理第三方组件。
更新日志
2022.10
What’s Changed
- TBD
Full Changelog: https://github.com/Anankke/SSPanel-Uim/compare/2022.9…2022.10
2022.9
What’s Changed
- 新的一键安装&更新脚本
- 修复了面板内置的 Telegram Bot @RoromoriYuzu
- 移除了旧的 Telegram Bot
- 更新了 xcat ClientDownload 中的客户端列表
- 优化了用户面板主页的客户端下载功能
- 修正了 Trojan gRPC 协议的下发 @iamsaltedfish
- 移除了已经失效的支付网关
- 使用 Country Flags API 实现国旗显示
- 用户注册设置数据库化
- 重做了面板的随机字符生成逻辑,现在使用 openssl_random_pseudo_bytes 生成任意长度的随机字符串
- 重写了所有字符串验证的方法,避免出现
999.999.999.999
被判断为有效 IPv4 地址的情况 - 重做部分用户编辑页面的后端地址,使用了更明确的变量命名
- 修复了一个潜在的 XSS 问题
- 节点自定义配置所使用的 jsoneditor 现在默认为 code 编辑模式,可以一键复制整个 json 进行配置
- 管理员面板主页的图标使用 Chart.js 实现,替换原有的 CanvasJS 以避免潜在的版权问题
- 新增 gRPC API 的支持,节点新增通讯密钥重置功能
- xcat Tool 中新增重置所有节点通讯密钥的功能
- 调整了节点页面的样式以提高可视性,新增了节点类型显示
- 用户面板默认调用 Material Design Icons,使用更符合逻辑的图标
- 现在在导入通用设置时将会检测过时设置并删除
- 更新 Smarty 模板引擎至 4.x 以支持 PHP 8+ 环境部署
- 更新了 js 依赖库的版本
Full Changelog: https://github.com/Anankke/SSPanel-Uim/compare/2022.8…2022.9
2022.8
What’s Changed
- Fix CanvasJS loads 4 times in a single page by @M1Screw in https://github.com/Anankke/SSPanel-Uim/pull/1506
- fix 500 by @iamsaltedfish in https://github.com/Anankke/SSPanel-Uim/pull/1510
- Fix Docker CI & Update Readme by @M1Screw in https://github.com/Anankke/SSPanel-Uim/pull/1514
- Add back parseArgs to fix bug by @zhyi828 in https://github.com/Anankke/SSPanel-Uim/pull/1521
- feat: merge gconfig with database setting by @M1Screw in https://github.com/Anankke/SSPanel-Uim/pull/1522
- fix: default bool value by @M1Screw in https://github.com/Anankke/SSPanel-Uim/pull/1523
- Hotfix for Lint CI issue by @M1Screw in https://github.com/Anankke/SSPanel-Uim/pull/1527
- fix: phinx migrate error by @M1Screw in https://github.com/Anankke/SSPanel-Uim/pull/1528
- feat: new lint ci with bugfix by @M1Screw in https://github.com/Anankke/SSPanel-Uim/pull/1529
- 修复无法购买流量包 by @RoromoriYuzu in https://github.com/Anankke/SSPanel-Uim/pull/1530
- 修复无法添加邀请链接数量 by @RoromoriYuzu in https://github.com/Anankke/SSPanel-Uim/pull/1531
- Dev 20220822 by @M1Screw in https://github.com/Anankke/SSPanel-Uim/pull/1532
New Contributors
- @zhyi828 made their first contribution in https://github.com/Anankke/SSPanel-Uim/pull/1521
Full Changelog: https://github.com/Anankke/SSPanel-Uim/compare/2022.6…2022.8
使用 OneinStack 部署 SSPanel UIM
教程使用的环境:CentOS Stream 9/x86_64 架构
安装 OneinStack
OneinStack 官方网站:https://oneinstack.com/ 。使用 https://oneinstack.com/auto/ 指定一个客制化的安装方案,以下为推荐使用的软件及其版本:
- Nginx
- PHP 8.0 with OPcache
- MariaDB 10.6
- phpMyAdmin
部署 SSPanel UIM
安装完毕之后,在安装指令执行的目录下应存在一个 oneinstack
目录,前往该目录创建新站点:
cd oneinstack
./vhost.sh
在加密选择的部分,如果是裸站使用 Let's Encrypt
证书,如网站需要加设 CDN 例如 Cloudfalre 则使用自签证书即可。
编辑 php.ini,删除 disable_functions 中的 proc_open, proc_get_status
vi /usr/local/php/etc/php.ini
重启php服务:
service php-fpm restart
虚拟主机设置完成后,前往你所设置的网站根目录文件夹,执行以下命令:
git clone -b dev https://github.com/Anankke/SSPanel-Uim.git .
wget https://getcomposer.org/installer -O composer.phar
php composer.phar
php composer.phar install
修改 Nginx vhost 配置文件
vi /usr/local/nginx/conf/vhost/你设置的网站域名.conf
service nginx restart
在对应的 vhost 的配置文件中添加如下伪静态规则,并将网站目录(即 root
配置项)后添加 /public
location / {
try_files $uri /index.php$is_args$args;
}
然后设置网站目录的整体权限
chmod -R 755 /path/to/your/site
chown -R www:www /path/to/your/site
完成后我们就可以创建数据库和对应的用户了,这步强烈建议使用非root用户并且限制该用户仅可访问对应的网站数据库。
通过 http://IP/phpMyAdmin 可以登录数据库,进行可视化的数据库操作。请务必在完成所有必要的数据库操作后删除或者改名位于 /data/wwwroot/dafault
下的 phpMyAdmin
目录以避免潜在的安全威胁。
接下来编辑网站配置文件,将刚才设置的数据库连接信息填入其中,然后阅读其他配置的说明进行站点客制化。
cp config/.config.example.php config/.config.php
cp config/appprofile.example.php config/appprofile.php
vi config/.config.php
按 i 键进入编辑模式,使用 😡 保存并退出 vi,使用 :q! 放弃任何改动并退出 vi。
接下来执行如下站点初始化设置
mv db/migrations/20000101000000_init_database.php.new db/migrations/20000101000000_init_database.php
php vendor/bin/phinx migrate
php xcat Tool importAllSettings
php xcat User createAdmin
php xcat Tool initQQWry
php xcat ClientDownload
使用 crontab -e
指令设置 SSPanel 的基本 cron 任务:
*/1 * * * * /usr/local/php/bin/php /path/to/your/site/xcat Job CheckJob
0 */1 * * * /usr/local/php/bin/php /path/to/your/site/xcat Job UserJob
0 0 * * * /usr/local/php/bin/php -n /path/to/your/site/xcat Job DailyJob
设置财务报表
5 0 * * * /usr/local/php/bin/php /path/to/your/site/xcat FinanceMail day
6 0 * * 0 /usr/local/php/bin/php /path/to/your/site/xcat FinanceMail week
7 0 1 * * /usr/local/php/bin/php /path/to/your/site/xcat FinanceMail month
设置节点 GFW 检测
*/1 * * * * /usr/local/php/bin/php /path/to/your/site/xcat DetectGFW
CloudPanel
CloudPanel 是一个免费的 PHP 服务器控制面板,专为云而构建,以实现最高性能和安全性
系统要求
- Debian 11
- Ubuntu 22
安装 CloudPanel
apt -y update
apt -y install curl wget sudo
curl -sSL https://installer.cloudpanel.io/ce/v2/install.sh | sudo bash
访问控制面板
访问 https://服务器ip:8443
,点击高级选项,点击继续前往
如果无法打开,请检查防火墙设置,包括服务商和服务器上的 iptables 和 ufw 防火墙
暂时关闭 iptables 防火墙(重启服务器后可能会失效)
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
添加域名解析
在你的域名注册商添加一个a解析,指向服务器ip地址
添加网站
点击 Create a PHP Site
Application
选Slim 4
PHP Version
这个dev
分支选8.1
,net-feat
分支选7.4
- 用户和密码会自动生成,记住生成的用户就行
拉取项目
dev 分支
cd /home/上一步自动生成的网站用户/htdocs/你的域名
rm -rf *
git clone https://github.com/Anankke/SSPanel-Uim.git .
mv db/migrations/20000101000000_init_database.php.new db/migrations/20000101000000_init_database.php
cp config/.config.example.php config/.config.php
cp config/appprofile.example.php config/appprofile.php
wget https://getcomposer.org/installer -O composer.phar
php composer.phar
php composer.phar install
new-feat 分支
cd /home/上一步自动生成的网站用户/htdocs/你的域名
rm -rf *
git clone -b new-feat https://github.com/Anankke/SSPanel-Uim.git .
cp config/.config.example.php config/.config.php
cp config/appprofile.example.php config/appprofile.php
wget https://getcomposer.org/installer -O composer.phar
/usr/bin/php7.4 composer.phar
/usr/bin/php7.4 composer.phar install
然后
chmod 755 -R *
chmod 777 storage -R
chown root -R *
git config --global --add safe.directory $(pwd)
git checkout .
获取数据库密码
clpctl db:show:master-credentials
创建数据库
mysql -h'127.0.0.1' -P'3306' -u'root' -p'刚才获取的数据库密码' -e "create database sspanel" -A
仅 new-feat
分支需要执行
mysql -h'127.0.0.1' -P'3306' -u'root' -p'刚才获取的数据库密码' -A
use sspanel;
source /home/上一步自动生成的网站用户/htdocs/你的域名/databases/glzjin_all.sql;
最后按下 Ctrl
+ D
登出
编辑配置文件
点击 Manage
点击 File Manage
依照图示编辑,完成后左上角保存
设置 sql mode
sed -i '7i sql_mode=""' /etc/mysql/mysql.conf.d/mysqld.cnf
systemctl restart mysql
导入设置
vendor/bin/phinx migrate
php xcat Tool importAllSettings
php xcat Tool initQQwry
仅 dev
分支需要执行
php xcat Tool detectConfigs
创建管理员账户
php xcat User createAdmin
此时应该可以打开网站并使用刚才创建的账户登录了
添加定时任务
dev 分支
cd /root
crontab -l > crontab.list
echo "
0 */1 * * * /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat Job UserJob
*/1 * * * * /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat Job SendMail
*/1 * * * * /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat Job CheckJob
30 23 * * * /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat SendDiaryMail
0 0 * * * /usr/bin/php -n /home/上一步自动生成的网站用户/htdocs/你的域名/xcat Job DailyJob
" >> crontab.list
crontab crontab.list
rm crontab.list
new-feat 分支
cd /root
crontab -l > crontab.list
echo "
0 */1 * * * /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat Job UserJob
*/1 * * * * /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat Job SendMail
*/1 * * * * /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat Job CheckJob
0 0 * * * /usr/bin/php -n /home/上一步自动生成的网站用户/htdocs/你的域名/xcat Job DailyJob
30 23 * * * /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat SendDiaryMail
0 0 * * * /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat Statistics Another
59 23 * * * /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat Statistics CheckIn
" >> crontab.list
crontab crontab.list
rm crontab.list
可选定时任务
财务报表
5 0 * * * /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat FinanceMail day
6 0 * * 0 /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat FinanceMail week
7 0 1 * * /usr/bin/php /home/上一步自动生成的网站用户/htdocs/你的域名/xcat FinanceMail month
建议
安全
如需在生产模式开启 debug
模式,可以执行 bash block-whoops-env.sh
,便能将敏感的环境参数隐藏
执行 bash block-whoops-env.sh recover
可以使用备份恢复修改的文件
备份
执行以下命令导出数据库文件,建议配合其他脚本或工具备份到云端
mysqldump -h127.0.0.1 -uroot -p刚才获取的数据库密码 --databases sspanel > sspanel.sql
ssl 证书
可以一键申请免费的 90 天 ssl 证书,应该会自动续期(吧)
同步更新
dev 分支
git pull
new-feat 分支
git pull origin new-feat:new-feat
有时候,光这么做可能不够,你可能还需要
composer update
vendor/bin/phinx migrate
php xcat Tool importAllSettings
同时需要注意有没有什么参数在 .config.example.php
文件中有,而在你的 .config.php
文件中没有的(你可以谷歌一些在线文本比对工具来方便排查)
通用订阅
通用订阅是为了解决目前各个协议,各个客户端均采用一套完全独立且不兼容的订阅下发规范,导致在前端适配上往往出现落后于客户端更新、前端每次更新功能均要修改部分/全部的订阅下发部分代码逻辑的情况。在增加开发难度的同时也可能导致部分老旧的协议在缺少文档的情况下无法进行很好的兼容。
下发范例
{
"version": "1",
"sub_name":"SSPanel",
"user_email":"user@sspanel.org",
"user_name":"ssp_user",
"user_class":"999",
"user_class_expire_date":"1989-06-04 04:00:00",
"user_total_traffic":"9785653487206",
"user_used_traffic":"7036874417766",
"nodes":[
{
"name":"SS_Node_1",
"id":"1",
"type":"ss",
"address":"node1.sspanel.org",
"port":"8388",
"password":"shadowsocks",
"encryption":"aes-128-gcm",
"plugin":"",
"plugin_option":"",
"remark":"This is a shadowsocks node."
},
{
"name":"SSR_Node_2",
"id":"2",
"type":"ssr",
"address":"node2.sspanel.org",
"port":"8388",
"password":"shadowsocksr",
"encryption":"none",
"protocol":"",
"protocol_param":"",
"obfs":"",
"obfs_param":"",
"remark":"This is a shadowsocksr node."
},
{
"name":"V2Ray_Node_3",
"id":"3",
"type":"v2ray",
"address":"node3.sspanel.org",
"port":"443",
"uuid":"",
"alterid":"",
"security":"auto",
"flow":"",
"encryption":"none",
"network":"",
"header_type":"",
"host":"",
"path":"",
"tls":"",
"enable_vless":"",
"remark":"This is a vmess/vless node."
},
{
"name":"Trojan_Node_4",
"id":"4",
"type":"trojan",
"address":"node4.sspanel.org",
"host":"node4.sspanel.org",
"port":"443",
"uuid":"",
"security":"tls",
"mux": "0",
"transport":"none",
"transport_plugin":"",
"transport_method":"",
"allow_insecure":"0",
"servicename":"",
"path":"",
"remark":"This is a trojan node."
}
]
自定义配置使用教程
可配置选项一览
{
//通用
"offset_port_user": "", //前端/订阅中下发的端口
"offset_port_node": "", //节点服务器下发的端口
"server_user": "", //前端/订阅中下发的服务器地址
"host": "", //SNI
//SS
"plugin": "", //SS插件
"plugin_option": "", //SS插件参数
//SSR单端口多用户
"mu_port": "443", //只可填写一个。如果不填则会按照 节点服务器下发的端口 -> 前端/订阅中下发的端口 的顺序取值
"mu_password": "xxxxxx",//單端口密碼
"mu_encryption": "none",
"mu_protocol": "auth_aes128_md5",
"mu_obfs": "plain",
"mu_suffix": "cloudfront.net",
//V2Ray
"v2_port": "",
"tls": "0",
"enable_vless": "0",
"alter_id": "",
"network": "",
"security": "",
"encryption":"",
"path": "",
"verify_cert": "true",
"obfs":"",
"header": {
"type": "http",
"request": {},
"response": {}
},
//Trojan
"trojan_port": "",
"allow_insecure": "0",
"grpc": "0",
"servicename": "",
"enable_xtls": "",
"flow": "",
//Trojan-Go
"mux": "0",
"transport": "none",
"transport_plugin": "",
"transport_method": ""
}
V2ray
tcp示例
{
"offset_port_node": "12345",
"server_sub": "hk.domain.com",
"alter_id": "2",
"network": "tcp",
"security": "none",
}
tcp+http示例
{
"offset_port_node": "12345",
"server_sub": "hk.domain.com",
"alter_id": "2",
"network": "tcp",
"security": "none",
"header": {
"type": "http",
"request": {
"path": ["/"],
"headers": {
"Host": ["www.baidu.com"]
}
},
"response": {}
}
}
tcp+tls示例
{
"offset_port_node": "443",
"server_sub": "hk.domain.com",
"host": "hk.domain.com",
"alter_id": "2",
"network": "tcp",
"security": "tls",
}
ws示例
{
"offset_port_node": "80",
"server_sub": "hk.domain.com",
"host": "hk.domain.com",
"alter_id": "2",
"network": "ws",
"security": "none",
"path": "/v2ray"
}
ws+tls示例
{
"offset_port_node": "443",
"server_sub": "hk.domain.com",
"host": "hk.domain.com",
"alter_id": "2",
"network": "ws",
"security": "tls",
"path": "/v2ray"
}
grpc+tls示例
{
"offset_port_node": "443",
"server_sub": "hk.domain.com",
"host": "hk.domain.com",
"alter_id": "2",
"network": "grpc",
"security": "tls",
"servicename": "some_name"
}
中转端口示例
在任一配置中设置 offset_port_user
为用户连接端口
{
"offset_port_user": "8888",
"offset_port_node": "12345",
"server_sub": "hk.domain.com",
"alter_id": "2",
"network": "tcp",
"security": "none",
}
此时用户连接端口为8888,节点监听端口为12345
启用vless
在任一配置中设置 enable_vless: 1
为用户连接端口
{
"offset_port_node": "443",
"server_sub": "hk.domain.com",
"host": "hk.domain.com",
"alter_id": "2",
"network": "tcp",
"security": "tls",
"enable_vless": "1"
}
请开启vless同时务必使用tls或者xtls。
启用xtls
在任一配置中设置 security: xtls
。
{
"offset_port_node": "443",
"server_sub": "hk.domain.com",
"host": "hk.domain.com",
"alter_id": "2",
"network": "tcp",
"security": "xtls",
"enable_vless": "1"
}
Trojan
tcp示例
{
"offset_port_node": "443",
"server_sub": "hk.domain.com",
"host": "hk.domain.com"
}
grpc示例
{
"offset_port_node": "443",
"server_sub": "hk.domain.com",
"host": "hk.domain.com",
"grpc": "1",
"servicename": "some_name"
}
中转示例
在任一配置中设置 offset_port_user
为用户连接端口
{
"offset_port_user": "443",
"offset_port_node": "12345",
"server_sub": "hk.domain.com",
"host": "hk.domain.com"
}
此时用户连接443,节点监听12345
启用xtls
在任一配置中设置 enable_xtls: 1
。
{
"offset_port_node": "443",
"server_sub": "hk.domain.com",
"host": "hk.domain.com",
"enable_xtls": "1"
}
结构
CREATE TABLE `config` (
`id` int(11) NOT NULL COMMENT '主键',
`item` text NOT NULL COMMENT '项',
`value` text NOT NULL COMMENT '值',
`class` varchar(16) NOT NULL DEFAULT 'default' COMMENT '配置分类',
`is_public` int(11) NOT NULL DEFAULT 0 COMMENT '是否为公共参数',
`type` text NOT NULL COMMENT '值类型',
`default` text NOT NULL COMMENT '默认值',
`mark` text NOT NULL COMMENT '备注'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
说明
id
主键
item
配置项目。使用下划线命名法
value
配置项目值。可将内容留空(非NULL)
class
配置项目所属的分类名,默认值是 default
is_public
是否是公共参数
type
值类型,可选:string
、int
、bool
、array
default
配置项目的默认值
mark
备注
特别说明
若将值类型设置为 array
,在存储时需要先 json_encode()
,需要读取时再 json_decode()
<?php
...
use App\Models\Setting;
...
$recharge_limit = array(
'max_recharge_limit' => '1000',
'min_recharge_limit' => '10'
);
// 存储
$config = Setting::where('item', 'recharge_limit')->first();
$config->value = json_encode($recharge_limit);
$config->save();
// 读取
$config = Setting::obtain('recharge_limit');
$recharge_limit = json_decode($config->value, true); // array
// 业务逻辑
...
?>
方法
使用 use
操作符导入
use App\Models\Setting;
obtain
获取单个项目的配置。例如:
Setting::obtain('f2f_pay_app_id');
getClass
获取某一分类下的所有值,返回关联数组
Setting::getClass('f2f');
调用这些值
$configs = Setting::getClass('f2f');
$f2f_pay_app_id = $configs['f2f_pay_app_id'];
$f2f_pay_pid = $configs['f2f_pay_pid'];
getPublicConfig
为 /src/Services/Config.php
提供的方法,将所有被标记为是公共参数的配置项目,以关联数组的形式返回
升级 SSPanel UIM
版本升级
在当前目录下,执行下述命令升级 config
bash update.sh
上述命令会在 迁移/更新 操作之前自动备份原 config 文件到 .config.php.bak
,迁移/更新操作完成之后会为你输出新旧配置之间的差异
如果你在使用 CDN 或者 Nginx Cache 等,请自行刷新缓存。
shadowsocks-mod 一键安装脚本
这里提供了 SSPanel-UIM 官方配套后端的一键安装脚本使用说明。
该脚本支持 RHEL 8-9,Fedora 34-36 使用 x86_64 或 aarch64 架构的系统。
项目地址
https://github.com/Anankke/shadowsocks-mod
脚本功能
- 配置 SSPanel-UIM RPM Repository
- 安装 shadowsocks-server
- 配置 shadowsocks-server
- 更新 SSPanel-UIM RPM Repository 和 shadowsocks-server
安装
dnf install wget -y
wget https://raw.githubusercontent.com/M1Screw/Airport-toolkit/master/ssr_node.sh
chmod +x ssr_node.sh
./ssr_node.sh install
配置
./ssr_node.sh config
更新
./ssr_node.sh update
卸载
./ssr_node.sh uninstall
服务启动
systemctl start shadowsocks-server
服务停止
systemctl stop shadowsocks-server
注意事项
- 所有跟节点安装本身无关的功能会通过单独的脚本提供(例如 BBR 加速一键配置功能在 Airport-toolkit 中通过 bbr_c7/bbr_c8.sh 脚本提供)
-
TrojanX 一键安装脚本
这里提供了 SSPanel-UIM 官方配套后端的一键安装脚本使用说明。
该脚本支持 RHEL 8-9,Fedora 34-36 使用 x86_64 或 aarch64 架构的系统。
项目地址
https://github.com/sspanel-uim/TrojanX
脚本功能
- 配置 SSPanel-UIM RPM Repository
- 安装 trojan-server 和 acme.sh
- 配置 trojan-server 和 acme.sh
- 更新 SSPanel-UIM RPM Repository,trojan-server 和 acme.sh
安装
dnf install wget -y wget https://raw.githubusercontent.com/M1Screw/Airport-toolkit/master/trojan_node.sh chmod +x trojan_node.sh ./trojan_node.sh install
配置
./trojan_node.sh config
更新
./trojan_node.sh update
卸载
./trojan_node.sh uninstall
服务启动
systemctl start trojan-server
服务停止
systemctl stop trojan-server
注意事项
- 所有跟节点安装本身无关的功能会通过单独的脚本提供(例如 BBR 加速一键配置功能在 Airport-toolkit 中通过 bbr_c7/bbr_c8.sh 脚本提供)
-
常用审计规则
规则描述 规则正则表达式 规则匹配类型 屏蔽BT防止版权争议 (torrent|\.torrent|peer_id=|info_hash|get_peers|find_node|BitTorrent|announce_peer|announce\.php\?passkey=)
数据包明文匹配 屏蔽百度高精度定位 防止IP与客户端地理位置被记录 (api|ps|sv|offnavi|newvector|ulog\.imap|newloc)(\.map|)\.(baidu|n\.shifen)\.com
数据包明文匹配 屏蔽360 (.+\.|^)(360|so)\.(cn|com)
数据包明文匹配 禁止邮件滥发 防止垃圾邮件滥用 (Subject|HELO|SMTP)
数据包明文匹配 屏蔽Spam邮箱 (^.*\@)(guerrillamail|guerrillamailblock|sharklasers|grr|pokemail|spam4|bccto|chacuo|027168)\.(info|biz|com|de|net|org|me|la)
数据包明文匹配 屏蔽迅雷 基本屏蔽掉迅雷的网站,并且在全局模式下会影响迅雷的下载能力 (.?)(xunlei|sandai|Thunder|XLLiveUD)(.)
数据包明文匹配 屏蔽金融诈骗 .*bank.*
数据包明文匹配 屏蔽金融诈骗 (.*\.||)(gash)\.(com|tw)
数据包明文匹配 屏蔽金融诈骗 (.*\.||)(mycard)\.(com|tw)
数据包明文匹配
如果需要自定义阻断页面的内容,请在每个后端目录下,复制
detect.html
为user-detect.html
,修改user-detect.html
并重启后端。 -
配置 Telegram OAuth
Telegram 官方推出了 OAuth 接口以后可以代替扫码和输入数字。
- 给 @BotFather 发送命令
/setdomain
- 选择你要设置的机器人
- 回复你的 网站域名,如
example.com
或者dashboard.example.com
如果要修改样式,可以参考 Telegram 官方给出的指南: https://core.telegram.org/widgets/login
- Telegram OAuth 组件使用
async
载入,不会阻塞页面其他内容加载,但是可能会影响部分浏览器上window.onload
事件的触发 - 如果你发现你的脚本无法载入,请先检查浏览器控制台提示,排除网络问题后最容易出的问题是忘记关闭同源
same-origin
设定,这个在 Cloudflare 设置里面需要设置为关闭。如果你的网站配置里面有类似配置(部分防跨站规则有)也需要将其关闭 - 如果访问者(不是网站主机)不能科学上网的的话将无法使用
别试图自己反代这个脚本或者什么重新适配,后面的故事远不止如此
- 如果登陆人的 Telegram 的名字太长,会影响网页排版,这是正常现象
- 给 @BotFather 发送命令
}
魔改常见问题解答
Telegram 设置机器人报错
- 自查 api 是否正确
- 检查网站是否启用 https
- 检查 BaseUrl 是否为 https
- 检查网站 ssl 证书是否有效
更新订阅链接失效解決方法:
源站关闭所有 WAF 如 Nginx WAF 插件或者 btwaf。
Cloudflare 上设置以下 Page Rules:
/link/*
/sub/*
Disable Security
Security Level - Essentially Off
Web Application Firewall(如果有)- Off
如果面板在 Cloudflare 上启用了 HTTPS,请在 Crypto
处修改 Minimum TLS Version
为 TLS 1.0
协议。
宝塔搭建的可以在站点修改配置文件中找到
ssl_protocols TLSv1.1 TLSv1.2;
改为
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
配置节点国旗
默认节点命名规则:
国家/地区的名字/UN 代码/ISO Alpha-2 代码/ISO Alpha-3 代码 + 一个空格
例:
United States Of America A节点 //自动显示美国国旗
CAN 多伦多vps //自动显示加拿大国旗
826 balabala //自动显示英国国旗
然后将 config 文的
$System_Config['enable_flag']='false';
$System_Config['enable_flag']='true';
错误 Undefined offset in
常见于使用宝塔、对接节点数量较多的情况。
在宝塔面板中找到 PHP,点击设置:
- 在 禁用函数 一栏找到
system
putenv
proc_open
proc_get_status
全部取出 - 在 性能调整 中,把 PHP 运行模式设置为 静态
- 在 配置文件 中 按 Ctrl + F 搜索
display_errors
将=
后的值改为Off
后保存
IIS 伪静态配置写法
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="slim" patternSyntax="Wildcard">
<match url="*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Git 报错 Peer reports incompatible or unsupported protocol version
Git 版本过低,请前往 Git 官网下载页 查看升级指导。
master 分支切换到 dev 分支出现报错
请仔细对比自己的数据库与dev版本数据表以及数据项目的不同并手动添加,并且要注意更改 cron 任务的指令格式,并在完成代码升级后运行。
git fetch --all
git reset --hard origin/dev
git pull
php composer.phar u
php vendor/bin/phinx migrate
php xcat Update
php xcat Tool importAllSettings
TG交流群(点击进入)----付费帮助搭建---修复---二开,以及发布求资源.QQ交流群 922260178
出处:https://wiki.sspanel.org/#/
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有佣金分成!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.77ym.top",如遇到无法解压的请联系管理员!
7. 本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
暂无评论内容