~重写8-1-1测试命令,现在可以更可靠的显示问题
~修复部分用户singbox启动后无法进入Dashboard面板的bug
~修复部分mips设备无法正常启动的bug
~修复部分用户安装或者卸载时脚本卡死的bug
~小闪存模式提示优化
This commit is contained in:
juewuy
2024-01-13 14:23:34 +08:00
parent 47a42b7a64
commit ea1b44669d
7 changed files with 32 additions and 28 deletions

View File

@@ -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

View File

@@ -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"

View File

@@ -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 <<EOF
"dns": {
@@ -584,20 +584,17 @@ EOF
}],
"rules": [{
"outbound": ["any"],
"query_type": [
"A",
"AAAA"
],
"server": "dns_resolver"
}, {
"geosite": ["geolocation-cn"],
"query_type": [ "A", "AAAA" ],
"server": "$direct_dns"
}, {
"geosite": ["geolocation-!cn"],
"query_type": [
"A",
"AAAA"
],
"query_type": [ "A", "AAAA" ],
"server": "$proxy_dns"
}],
"final": "$direct_dns",
"final": "dns_direct",
"independent_cache": true,
"reverse_mapping": true,
"fakeip": { "enabled": true, "inet4_range": "198.18.0.0/15", "inet6_range": "fc00::/18" }
@@ -608,7 +605,7 @@ EOF
cat > ${TMPDIR}/ntp.json <<EOF
"ntp": {
"enabled": true,
"server": "time.apple.com",
"server": "203.107.6.88",
"server_port": 123,
"interval": "30m0s",
"detour": "DIRECT"
@@ -685,12 +682,19 @@ EOF
}
EOF
#分割配置文件获得outbounds.json及route.json
[ "$(wc -l < $core_config)" -le 5 ] && {
${BINDIR}/CrashCore format -c $core_config > ${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
#测试自定义配置文件