diff --git a/bin/ShellCrash.tar.gz b/bin/ShellCrash.tar.gz index 88a4c5d..434d92d 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 f9a2b73..fb05522 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 e03933b..426e0ac 100644 Binary files a/bin/public.tar.gz and b/bin/public.tar.gz differ diff --git a/bin/version b/bin/version index b32f572..b56fa5a 100644 --- a/bin/version +++ b/bin/version @@ -5,4 +5,4 @@ meta_v=v1.18.0 singboxp_v=1.8.5-73d97226 singbox_v=1.8.5 GeoIP_v=20240220 -versionsh=1.9.0pre11 +versionsh=1.9.0pre12 diff --git a/public/task.list b/public/task.list index 9ec771f..63b7317 100644 --- a/public/task.list +++ b/public/task.list @@ -4,7 +4,7 @@ 102#$CRASHDIR/start.sh stop#停止clash服务 103#$CRASHDIR/start.sh restart#重启clash服务 104#$CRASHDIR/start.sh update_config#更新订阅并重启服务 -105#$CRASHDIR/start.sh hotupdate#热更新订阅 +105#$CRASHDIR/start.sh hotupdate#热更新订阅(不推荐) 106#$CRASHDIR/start.sh web_save#自动保存面板配置 107#$CRASHDIR/task/task.sh ntp#自动同步ntp时间 diff --git a/scripts/getdate.sh b/scripts/getdate.sh index 913bac4..c9aaa90 100644 --- a/scripts/getdate.sh +++ b/scripts/getdate.sh @@ -1406,7 +1406,7 @@ setcore(){ #内核选择菜单 echo -e "2 \033[43;30m SingBox \033[0m: \033[32m支持全面占用低\033[0m" echo -e " >>\033[32m$singbox_v \033[33m不支持providers\033[0m" echo -e " 说明文档: \033[36;4mhttps://sing-box.sagernet.org\033[0m" - echo -e "3 \033[43;30m Mihomo \033[0m: \033[32m多功能,支持全面\033[0m" + echo -e "3 \033[43;30m Meta \033[0m: \033[32m多功能,支持全面\033[0m" echo -e " >>\033[32m$meta_v \033[33m内存占用较高\033[0m" echo -e " 说明文档: \033[36;4mhttps://wiki.metacubex.one\033[0m" echo -e "4 \033[43;30m SingBoxP \033[0m: \033[32m支持ssr、providers、dns并发……\033[0m" diff --git a/scripts/init.sh b/scripts/init.sh index a7d3f6d..ff53846 100644 --- a/scripts/init.sh +++ b/scripts/init.sh @@ -1,7 +1,7 @@ #!/bin/sh # Copyright (C) Juewuy -version=1.9.0pre11 +version=1.9.0pre12 setdir(){ dir_avail(){ @@ -279,6 +279,8 @@ done #配置文件改名 mv -f ${CRASHDIR}/mark ${CRASHDIR}/configs/ShellCrash.cfg 2>/dev/null mv -f ${CRASHDIR}/configs/ShellClash.cfg ${CRASHDIR}/configs/ShellCrash.cfg 2>/dev/null + #数据库改名 + mv -f ${CRASHDIR}/geosite.dat ${CRASHDIR}/GeoSite.dat 2>/dev/null #内核改名 mv -f ${CRASHDIR}/clash ${CRASHDIR}/CrashCore 2>/dev/null #内核压缩 diff --git a/scripts/menu.sh b/scripts/menu.sh index 8c4f479..9297288 100644 --- a/scripts/menu.sh +++ b/scripts/menu.sh @@ -1133,7 +1133,7 @@ normal_set(){ #基础设置 echo -e "\033[36m已设为 $redir_mod !!\033[0m" } [ -n "$(iptables -j TPROXY 2>&1 | grep 'on-port')" ] && sup_tp=1 - [ -n "$(ls /dev/net/tun)" ] || ip tuntap >/dev/null 2>&1 && sup_tun=1 + [ -n "$(ls /dev/net/tun 2>/dev/null)" ] || ip tuntap >/dev/null 2>&1 && sup_tun=1 nft add table inet shellcrash 2>/dev/null && sup_nft=1 && modprobe nft_tproxy >/dev/null 2>&1 && sup_nft=2 echo ----------------------------------------------- echo -e "当前代理模式为:\033[47;30m $redir_mod \033[0m;ShellCrash核心为:\033[47;30m $crashcore \033[0m" @@ -1227,10 +1227,13 @@ normal_set(){ #基础设置 echo ----------------------------------------------- echo -e " 1 fake-ip模式: \033[32m响应速度更快\033[0m" echo -e " 不支持绕过CN-IP功能" - echo -e " 2 redir_host模式:\033[32m兼容性更好\033[0m" - echo -e " 需搭配加密DNS使用" - echo -e " 3 mix混合模式: \033[32m内部realip外部fakeip\033[0m" - echo -e " 依赖geosite-cn.(db/srs)数据库" + if [ "$crashcore" = singbox -o "$crashcore" = singboxp ];then + echo -e " 3 mix混合模式: \033[32m内部realip外部fakeip\033[0m" + echo -e " 依赖geosite-cn.(db/srs)数据库" + else + echo -e " 2 redir_host模式:\033[32m兼容性更好\033[0m" + echo -e " 需搭配加密DNS使用" + fi echo " 0 返回上级菜单" read -p "请输入对应数字 > " num if [ -z "$num" ]; then @@ -1474,11 +1477,7 @@ advanced_set(){ #进阶设置 1) setipv6 advanced_set - ;; - 2) - setmeta - advanced_set - ;; + ;; 3) setfirewall advanced_set diff --git a/scripts/start.sh b/scripts/start.sh index 00dd945..9a9243a 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -181,7 +181,7 @@ mark_time(){ #时间戳 getlanip(){ #获取局域网host地址 i=1 while [ "$i" -le "20" ];do - host_ipv4=$(ip a 2>&1 | grep -w 'inet' | grep 'global' | grep 'br' | grep -Ev 'iot|peer' | grep -E ' 1(92|0|72)\.' | sed 's/.*inet.//g' | sed 's/br.*$//g' | sed 's/metric.*$//g' ) #ipv4局域网网段 + host_ipv4=$(ip a 2>&1 | grep -w 'inet' | grep 'global' | grep 'brd' | grep -Ev 'iot|peer' | grep -E ' 1(92|0|72)\.' | sed 's/.*inet.//g' | sed 's/br.*$//g' | sed 's/metric.*$//g' ) #ipv4局域网网段 [ "$ipv6_redir" = "已开启" ] && host_ipv6=$(ip a 2>&1 | grep -w 'inet6' | grep -E 'global' | sed 's/.*inet6.//g' | sed 's/scope.*$//g' ) #ipv6公网地址段 [ -f ${TMPDIR}/ShellCrash.log ] && break [ -n "$host_ipv4" -a "$ipv6_redir" != "已开启" ] && break @@ -355,7 +355,7 @@ modify_yaml(){ #修饰clash配置文件 cat > ${TMPDIR}/dns.yaml </dev/null | grep '\.' | awk '{printf "\"%s\", ",$1}' | sed "s/, $//" | sed 's/+/.+/g' | sed 's/*/.*/g') - [ -n "$fake_ip_filter" ] && fake_ip_filter="{ \"domain_regex\": [$fake_ip_filter], \"server\": \"local\" }," + [ -n "$fake_ip_filter" ] && fake_ip_filter="{ \"domain_regex\": [$fake_ip_filter], \"server\": \"dns_direct\" }," } [ "$dns_mod" = "mix" ] && { - final_dns=dns_direct && global_dns=dns_fakeip + global_dns=dns_fakeip fake_ip_filter=$(cat ${CRASHDIR}/configs/fake_ip_filter 2>/dev/null | grep '\.' | awk '{printf "\"%s\", ",$1}' | sed "s/, $//" | sed 's/+/.+/g' | sed 's/*/.*/g') - [ -n "$fake_ip_filter" ] && fake_ip_filter="{ \"domain_regex\": [$fake_ip_filter], \"server\": \"local\" }," + [ -n "$fake_ip_filter" ] && fake_ip_filter="{ \"domain_regex\": [$fake_ip_filter], \"server\": \"dns_direct\" }," if [ -z "$(echo "$core_v" | grep -E '^1\.7.*')" ];then - mix_dns="{ \"rule_set\": [\"geosite-cn\"], \"invert\": true, \"server\": \"dns_fakeip\", \"rewrite_ttl\": 1 }," + direct_dns="{ \"rule_set\": [\"geosite-cn\"], \"server\": \"dns_direct\" }," #生成add_rule_set.json [ -z "$(cat ${CRASHDIR}/jsons/*.json | grep -Ei '\"tag\" *: *\"geosite-cn\"')" ] && cat > ${TMPDIR}/jsons/add_rule_set.json < ${TMPDIR}/jsons/dns.json </dev/null)" ] && { cat ${CRASHDIR}/yamls/rules.yaml \ | sed '/#.*/d' \ | grep -oE '\-.*,.*,.*' \ @@ -773,6 +775,7 @@ EOF | sed 's/$/" },/g' \ | sed '1i\{ "route": { "rules": [ ' \ | sed '$s/,$/ ] } }/' > ${TMPDIR}/jsons/cust_add_rules.json + [ ! -s ${TMPDIR}/jsons/cust_add_rules.json ] && rm -rf ${TMPDIR}/jsons/cust_add_rules.json } #提取配置文件以获得outbounds.json,outbound_providers.json及route.json ${TMPDIR}/CrashCore format -c $core_config > ${TMPDIR}/format.json @@ -1415,7 +1418,7 @@ web_save(){ #最小化保存面板节点选择 done < ${TMPDIR}/web_proxies rm -rf ${TMPDIR}/web_proxies #获取面板设置 - [ "$crashcore" != singbox ] && get_save http://127.0.0.1:${db_port}/configs > ${TMPDIR}/web_configs + #[ "$crashcore" != singbox ] && get_save http://127.0.0.1:${db_port}/configs > ${TMPDIR}/web_configs #对比文件,如果有变动且不为空则写入磁盘,否则清除缓存 for file in web_save web_configs ;do if [ -s ${TMPDIR}/${file} ];then @@ -1448,10 +1451,10 @@ web_restore(){ #还原面板选择 done } #还原面板设置 - [ "$crashcore" != singbox ] && [ -s ${CRASHDIR}/configs/web_configs ] && { - sleep 5 - put_save http://127.0.0.1:${db_port}/configs "$(cat ${CRASHDIR}/configs/web_configs)" PATCH - } + #[ "$crashcore" != singbox ] && [ -s ${CRASHDIR}/configs/web_configs ] && { + #sleep 5 + #put_save http://127.0.0.1:${db_port}/configs "$(cat ${CRASHDIR}/configs/web_configs)" PATCH + #} } } makehtml(){ #生成面板跳转文件 @@ -1577,7 +1580,7 @@ clash_check(){ #clash启动前检查 #预下载GeoIP数据库 [ -n "$(cat ${CRASHDIR}/yamls/*.yaml | grep -oEi 'geoip')" ] && ckgeo Country.mmdb cn_mini.mmdb #预下载GeoSite数据库 - [ -n "$(cat ${CRASHDIR}/yamls/*.yaml | grep -oEi 'geosite')" ] && ckgeo GeoSite.dat GeoSite.dat + [ -n "$(cat ${CRASHDIR}/yamls/*.yaml | grep -oEi 'geosite')" ] && ckgeo GeoSite.dat geosite.dat return 0 } singbox_check(){ #singbox启动前检查 @@ -1747,7 +1750,7 @@ start_error(){ #启动报错 ${COMMAND} >${TMPDIR}/core_test.log 2>&1 & sleep 2 ; kill $! >/dev/null 2>&1 fi - error=$(cat $TMPDIR/core_test.log | grep -Eo 'error.*=.*|.*ERROR.*|.*FATAL.*') + error=$(cat $TMPDIR/core_test.log | grep -iEo 'error.*=.*|.*ERROR.*|.*FATAL.*') logger "服务启动失败!请查看报错信息!详细信息请查看$TMPDIR/core_test.log" 33 logger "$error" 31 exit 1