~增加debug模式菜单(8-1-1)
~优化tun模式识别机制
~继续修复覆盖安装或升级时卡死的bug
~修复卸载脚本时的若干报错
This commit is contained in:
juewuy
2024-01-14 12:53:23 +08:00
parent 0e402881a1
commit 82a8c1cf6a
8 changed files with 144 additions and 84 deletions

View File

@@ -787,7 +787,7 @@ gettar(){
getsh(){
echo -----------------------------------------------
echo -e "当前脚本版本为:\033[33m $versionsh_l \033[0m"
echo -e "最新脚本版本为:\033[32m $release_new \033[0m"
echo -e "最新脚本版本为:\033[32m $version_new \033[0m"
echo -e "注意更新时会停止服务!"
echo -----------------------------------------------
read -p "是否更新脚本?[1/0] > " res
@@ -1665,7 +1665,7 @@ update(){
update
elif [ "$num" = 9 ]; then
crash -u
uninstall
exit
elif [ "$num" = 99 ]; then
@@ -1758,12 +1758,6 @@ userguide(){
read -p "是否开启?(1/0) > " res
[ "$res" = 1 ] && setconfig BINDIR /tmp/ShellCrash ${CRASHDIR}/configs/command.env
fi
#下载本地面板
# echo -----------------------------------------------
# echo -e "\033[33m安装本地Dashboard面板可以更快捷的管理clash内置规则\033[0m"
# echo -----------------------------------------------
# read -p "需要安装本地Dashboard面板吗(1/0) > " res
# [ "$res" = 1 ] && checkupdate && setdb
#检测及下载根证书
if [ -d /etc/ssl/certs -a ! -f '/etc/ssl/certs/ca-certificates.crt' ];then
echo -----------------------------------------------
@@ -1823,12 +1817,14 @@ userguide(){
[ "$res" = 1 ] && autoSSH
fi
#提示导入订阅或者配置文件
echo -----------------------------------------------
echo -e "\033[32m是否导入配置文件\033[0m(这是运行前的最后一步)"
echo -e "\033[0m你必须拥有一份yaml格式的配置文件才能运行服务\033[0m"
echo -----------------------------------------------
read -p "现在开始导入?(1/0) > " res
[ "$res" = 1 ] && inuserguide=1 && set_core_config && inuserguide=""
[ ! -s $CRASHDIR/yamls/config.yaml -a ! -s $CRASHDIR/jsons/config.json ] && {
echo -----------------------------------------------
echo -e "\033[32m是否导入配置文件\033[0m(这是运行前的最后一步)"
echo -e "\033[0m你必须拥有一份yaml格式的配置文件才能运行服务\033[0m"
echo -----------------------------------------------
read -p "现在开始导入?(1/0) > " res
[ "$res" = 1 ] && inuserguide=1 && set_core_config && inuserguide=""
}
#回到主界面
echo -----------------------------------------------
echo -e "\033[36m很好现在只需要执行启动就可以愉快的使用了\033[0m"
@@ -1838,13 +1834,66 @@ userguide(){
main_menu
}
#测试菜单
debug(){
[ "$crashcore" = singbox ] && config_tmp=$TMPDIR/config.json || config_tmp=$TMPDIR/config.yaml
echo -----------------------------------------------
echo -e "\033[36m注意Debug运行均会停止原本的内核服务\033[0m"
echo -e "后台运行日志地址:\033[32m$TMPDIR/debug.log\033[0m"
echo -e "如长时间运行后台监测日志等级推荐error防止文件过大"
echo -e "你也可以通过:\033[33mcrash -s debug 'warning'\033[0m 命令使用其他日志等级"
echo -----------------------------------------------
echo -e " 1 仅测试\033[32m$config_tmp\033[0m配置文件可用性"
echo -e " 2 前台运行\033[32m$config_tmp\033[0m配置文件,不配置防火墙劫持(\033[33m使用Ctrl+C手动停止\033[0m)"
echo -e " 3 后台运行完整启动流程,并配置防火墙劫持,日志等级:\033[31merror\033[0m"
echo -e " 4 后台运行完整启动流程,并配置防火墙劫持,日志等级:\033[32minfo\033[0m"
echo -e " 5 后台运行完整启动流程,并配置防火墙劫持,日志等级:\033[33mdebug\033[0m"
echo -----------------------------------------------
echo " 0 返回上级目录!"
read -p "请输入对应数字 > " num
case "$num" in
0) ;;
1)
$CRASHDIR/start.sh stop
if [ "$crashcore" = singbox ] ;then
$BINDIR/CrashCore run -D $BINDIR -c $TMPDIR/config.json &
{ sleep 4 ; kill $! &>/dev/null & }
wait
else
$BINDIR/CrashCore -t -d $BINDIR -f $TMPDIR/config.yaml
fi
echo -----------------------------------------------
exit
;;
2)
$CRASHDIR/start.sh stop
$COMMAND
echo -----------------------------------------------
exit
;;
3)
$CRASHDIR/start.sh debug error
main_menu
;;
4)
$CRASHDIR/start.sh debug info
main_menu
;;
5)
$CRASHDIR/start.sh debug debug
main_menu
;;
*)
errornum
;;
esac
}
testcommand(){
[ "$crashcore" = singbox ] && config_path=${JSONSDIR}/config.json || config_path=${YAMLSDIR}/config.yaml
echo -----------------------------------------------
echo -e "\033[30;47m这里是测试命令菜单\033[0m"
echo -e "\033[33m如遇问题尽量运行相应命令后截图提交issue或TG讨论组\033[0m"
echo -----------------------------------------------
echo " 1 查看内核运行报错信息(会停止内核进程)"
echo " 1 Debug模式运行内核"
echo " 2 查看系统DNS端口(:53)占用 "
echo " 3 测试ssl加密(aes-128-gcm)跑分"
echo " 4 查看ShellCrash相关路由规则"
@@ -1859,17 +1908,8 @@ testcommand(){
elif [ "$num" = 0 ]; then
main_menu
elif [ "$num" = 1 ]; then
echo -----------------------------------------------
$CRASHDIR/start.sh stop
if [ "$crashcore" = singbox ] ;then
$BINDIR/CrashCore run -D $BINDIR -c $TMPDIR/config.json &
{ sleep 4 ; kill $! &>/dev/null & }
wait
else
$BINDIR/CrashCore -t -d $BINDIR -f $TMPDIR/config.yaml
fi
echo -----------------------------------------------
exit;
debug
testcommand
elif [ "$num" = 2 ]; then
echo -----------------------------------------------
netstat -ntulp |grep 53