diff --git a/bin/ShellCrash.tar.gz b/bin/ShellCrash.tar.gz index 5ce2a40..5bf673e 100644 Binary files a/bin/ShellCrash.tar.gz and b/bin/ShellCrash.tar.gz differ diff --git a/bin/clashfm.tar.gz b/bin/clashfm.tar.gz index d439d56..222ed74 100644 Binary files a/bin/clashfm.tar.gz and b/bin/clashfm.tar.gz differ diff --git a/bin/public.tar.gz b/bin/public.tar.gz index c1cca43..9b86845 100644 Binary files a/bin/public.tar.gz and b/bin/public.tar.gz differ diff --git a/bin/version b/bin/version index 9a7dc75..03321c5 100644 --- a/bin/version +++ b/bin/version @@ -4,4 +4,4 @@ clash_v=v1.7.1 meta_v=v1.18.0 singbox_v=1.8.0 GeoIP_v=20240107 -versionsh=1.8.6 +versionsh=1.8.6b diff --git a/scripts/getdate.sh b/scripts/getdate.sh index d4180a9..60a2339 100644 --- a/scripts/getdate.sh +++ b/scripts/getdate.sh @@ -1607,7 +1607,7 @@ update(){ echo -e "\033[30;47m欢迎使用更新功能:\033[0m" echo ----------------------------------------------- echo -e "当前目录(\033[32m${CRASHDIR}\033[0m)剩余空间:\033[36m$(dir_avail ${CRASHDIR} -h)\033[0m" - [ "$(dir_avail ${CRASHDIR})" -le 5120 ] && { + [ "$(dir_avail ${CRASHDIR})" -le 5120 ] && [ "$CRASHDIR" = "$BINDIR" ] && { echo -e "\033[33m当前目录剩余空间较低,建议开启小闪存模式!\033[0m" sleep 1 } @@ -1844,7 +1844,7 @@ testcommand(){ echo -e "\033[30;47m这里是测试命令菜单\033[0m" echo -e "\033[33m如遇问题尽量运行相应命令后截图提交issue或TG讨论组\033[0m" echo ----------------------------------------------- - echo " 1 查看内核运行时的报错信息" + echo " 1 查看内核运行报错信息(会停止内核进程)" echo " 2 查看系统DNS端口(:53)占用 " echo " 3 测试ssl加密(aes-128-gcm)跑分" echo " 4 查看ShellCrash相关路由规则" @@ -1860,15 +1860,16 @@ testcommand(){ main_menu elif [ "$num" = 1 ]; then echo ----------------------------------------------- - ckcmd journalctl && error=$(journalctl -u shellcrash | grep -Eo 'error.*=.*|.*ERROR.*|.*FATAL.*') - [ -z "$error" ] && error=$(cat $TMPDIR/core_test.log | grep -Eo 'error.*=.*|.*ERROR.*|.*FATAL.*') - if [ -n "$error" ];then - echo $error - exit; + $CRASHDIR/start.sh stop + if [ "$crashcore" = singbox ] ;then + $BINDIR/CrashCore run -D $BINDIR -c $TMPDIR/config.json & + { sleep 2 ; kill $! &>/dev/null & } + wait else - echo -e "\033[31m未找到因内核运行错误所产生的日志文件!\033[0m" - sleep 1 + $BINDIR/CrashCore -t -d $BINDIR -f $TMPDIR/config.yaml fi + echo ----------------------------------------------- + exit; elif [ "$num" = 2 ]; then echo ----------------------------------------------- netstat -ntulp |grep 53 diff --git a/scripts/init.sh b/scripts/init.sh index b651254..d6cbcfc 100644 --- a/scripts/init.sh +++ b/scripts/init.sh @@ -1,7 +1,7 @@ #!/bin/sh # Copyright (C) Juewuy -version=1.8.6 +version=1.8.6b setdir(){ dir_avail(){ @@ -127,8 +127,6 @@ setconfig(){ [ -z "$3" ] && configpath=${CRASHDIR}/configs/ShellCrash.cfg || configpath="${3}" [ -n "$(grep "${1}=" "$configpath")" ] && sed -i "s#${1}=.*#${1}=${2}#g" $configpath || echo "${1}=${2}" >> $configpath } - -${CRASHDIR}/start.sh stop 2>/dev/null #防止进程冲突 #特殊固件识别及标记 [ -f "/etc/storage/started_script.sh" ] && { systype=Padavan #老毛子固件 @@ -202,6 +200,8 @@ setconfig COMMAND "$COMMAND" ${CRASHDIR}/configs/command.env if [ -n "$profile" ];then sed -i '/alias crash=*/'d $profile echo "alias crash=\"$shtype $CRASHDIR/menu.sh\"" >> $profile #设置快捷命令环境变量 + sed -i '/alias clash=*/'d $profile + echo "alias clash=\"$shtype $CRASHDIR/menu.sh\"" >> $profile #设置快捷命令环境变量 sed -i '/export CRASHDIR=*/'d $profile echo "export CRASHDIR=\"$CRASHDIR\"" >> $profile #设置路径环境变量 source $profile &>/dev/null || echo 运行错误!请使用bash而不是dash运行安装命令!!! @@ -273,6 +273,8 @@ chmod 755 ${CRASHDIR}/task/task.sh #旧版文件清理 rm -rf /etc/init.d/clash +rm -rf $CRASHDIR/clashservice +rm -rf $CRASHDIR/shellcrash.rc rm -rf $CRASHDIR/clash.sh for file in log shellcrash.service mark? mark.bak;do rm -rf ${CRASHDIR}/$file @@ -282,9 +284,5 @@ sed -i "s/clashcore/crashcore/g" $configpath sed -i "s/clash_v/core_v/g" $configpath sed -i "s/clash.meta/meta/g" $configpath sed -i "s/ShellClash/ShellCrash/g" $configpath -#旧版任务清理 -${CRASHDIR}/start.sh cronset "clash服务" 2>/dev/null -${CRASHDIR}/start.sh cronset "订阅链接" 2>/dev/null -${CRASHDIR}/start.sh cronset "ShellCrash初始化" 2>/dev/null echo -e "\033[32m脚本初始化完成,请输入\033[30;47m crash \033[0;33m命令开始使用!\033[0m" diff --git a/scripts/start.sh b/scripts/start.sh index 6974f4c..25f4141 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -556,7 +556,7 @@ EOF [ -z "$dns_fallback" ] && dns_fallback='1.0.0.1' || dns_fallback=$(echo $dns_fallback | awk -F ',' '{print $1}') [ "$ipv6_dns" = "已开启" ] && strategy='prefer_ipv4' || strategy='ipv4_only' [ "$dns_mod" = "redir_host" ] && proxy_dns=dns_proxy && direct_dns=dns_direct - [ "$dns_mod" = "fake-ip" ] && proxy_dns=dns_fakeip && direct_dns=dns_fakeip + [ "$dns_mod" = "fake-ip" ] && proxy_dns=dns_fakeip && direct_dns=dns_direct [ "$dns_mod" = "mix" ] && proxy_dns=dns_fakeip && direct_dns=dns_direct cat > ${TMPDIR}/dns.json < ${TMPDIR}/ntp.json < ${TMPDIR}/format.json + mv -f ${TMPDIR}/format.json $core_config + } cat $core_config | sed -n '/"outbounds":/,/"route":/{/"route":/d; p}' > ${TMPDIR}/outbounds.json cat $core_config | sed -n '/"route":/,/"experimental":/{/"experimental":/d; p}' > ${TMPDIR}/route.json #清理route.json中的process_name规则以及"auto_detect_interface" sed -i '/"process_name": \[/,/],$/d' ${TMPDIR}/route.json sed -i '/"process_name": "[^"]*",/d' ${TMPDIR}/route.json sed -i 's/"auto_detect_interface": true/"auto_detect_interface": false/g' ${TMPDIR}/route.json + #修饰route.json结尾 + sed -i '/^ }$/s/ }/ },/' ${TMPDIR}/route.json + sed -i '/^}$/d' ${TMPDIR}/route.json #跳过本地tls证书验证 if [ -z "$skip_cert" -o "$skip_cert" = "已开启" ];then sed -i 's/"insecure": false/"insecure": true/' ${TMPDIR}/outbounds.json @@ -703,6 +707,7 @@ EOF [ -s ${TMPDIR}/$char.json ] && json_add=${TMPDIR}/$char.json [ -s ${CRASHDIR}/jsons/$char.json ] && json_add=${CRASHDIR}/jsons/$char.json #如果有自定义配置文件则使用 json_all="$json_all $json_add" + json_add='' done cut -c 1- $json_all > ${TMPDIR}/config.json #测试自定义配置文件