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 20dc83d..cf9a780 100644 --- a/bin/version +++ b/bin/version @@ -4,5 +4,4 @@ clash_v=v1.7.1 meta_v=v1.18.0 singboxp_v=1.8.5-73d97226 singbox_v=1.8.5 -versionsh=1.9.0pre11 -GeoIP_v=20240224 +versionsh=1.9.0pre12 \ No newline at end of file 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/rules/922proxy.ini b/rules/922proxy.ini index 333182d..ab50236 100644 --- a/rules/922proxy.ini +++ b/rules/922proxy.ini @@ -9,11 +9,12 @@ ruleset=国内直连流量,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/mas ruleset=国内直连流量,[]GEOIP,CN ruleset=普通外网流量,[]FINAL -custom_proxy_group=922南北美`select`[]🇺🇲 美国自动`[]🇺🇲 美国手动`[]🇸🇬 新加坡自动`[]🇸🇬 新加坡手动`[]🇭🇰 香港自动`[]🇭🇰 香港手动`[]所有节点手选 -custom_proxy_group=922东南亚`select`[]🇸🇬 新加坡自动`[]🇸🇬 新加坡手动`[]🇨🇳 台湾自动`[]🇨🇳 台湾手动`[]🇭🇰 香港自动`[]🇭🇰 香港手动`[]所有节点手选 +custom_proxy_group=922南北美`select`[]🇺🇲 美国自动`[]🇺🇲 美国均衡`[]🇺🇲 美国手动`[]🇸🇬 新加坡自动`[]🇸🇬 新加坡均衡`[]🇸🇬 新加坡手动`[]🇭🇰 香港自动`[]🇭🇰 香港均衡`[]🇭🇰 香港手动`[]所有节点手选 +custom_proxy_group=922东南亚`select`[]🇸🇬 新加坡自动`[]🇸🇬 新加坡均衡`[]🇸🇬 新加坡手动`[]🇨🇳 台湾自动`[]🇨🇳 台湾均衡`[]🇨🇳 台湾手动`[]🇭🇰 香港自动`[]🇭🇰 香港均衡`[]🇭🇰 香港手动`[]所有节点手选 custom_proxy_group=IP验证专用`select`.* -custom_proxy_group=922未知地址`select`[]🇨🇳 台湾自动`[]🇨🇳 台湾手动`[]🇭🇰 香港自动`[]🇭🇰 香港手动`[]🇸🇬 新加坡自动`[]🇸🇬 新加坡手动`[]🇺🇲 美国自动`[]🇺🇲 美国手动`[]所有节点手选 -custom_proxy_group=abc全球节点`select`[]🇨🇳 台湾自动`[]🇨🇳 台湾手动`[]🇭🇰 香港自动`[]🇭🇰 香港手动`[]🇸🇬 新加坡自动`[]🇸🇬 新加坡手动`[]🇺🇲 美国自动`[]🇺🇲 美国手动`[]所有节点手选 +custom_proxy_group=922未知地址`select`[]🇨🇳 台湾自动`[]🇨🇳 台湾均衡`[]🇨🇳 台湾手动`[]🇭🇰 香港自动`[]🇭🇰 香港均衡`[]🇭🇰 香港手动`[]🇸🇬 新加坡自动`[]🇸🇬 新加坡均衡`[]🇸🇬 新加坡手动`[]🇺🇲 美国自动`[]🇺🇲 美国均衡`[]🇺🇲 美国手动`[]所有节点手选 +custom_proxy_group=abc全球节点`select`[]🇨🇳 台湾自动`[]🇨🇳 台湾均衡`[]🇨🇳 台湾手动`[]🇭🇰 香港自动`[]🇭🇰 香港均衡`[]🇭🇰 香港手动`[]🇸🇬 新加坡自动`[]🇸🇬 新加坡均衡`[]🇸🇬 新加坡手动`[]🇺🇲 美国自动`[]🇺🇲 美国均衡`[]🇺🇲 美国手动`[]所有节点手选 +custom_proxy_group=PIA全球节点`select`[]🇨🇳 台湾自动`[]🇨🇳 台湾均衡`[]🇨🇳 台湾手动`[]🇭🇰 香港自动`[]🇭🇰 香港均衡`[]🇭🇰 香港手动`[]🇸🇬 新加坡自动`[]🇸🇬 新加坡均衡`[]🇸🇬 新加坡手动`[]🇺🇲 美国自动`[]🇺🇲 美国均衡`[]🇺🇲 美国手动`[]所有节点手选 custom_proxy_group=🇭🇰 香港手动`select`(港|HK|🇭🇰|Hong Kong) custom_proxy_group=🇺🇲 美国手动`select`(美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|US|United States|🇺🇲) @@ -21,15 +22,21 @@ custom_proxy_group=🇨🇳 台湾手动`select`(台|新北|彰化|TW|Taiwan) custom_proxy_group=🇸🇬 新加坡手动`select`(新加坡|坡|狮城|广新|SG|Singapore|🇸🇬) custom_proxy_group=所有节点手选`select`.* -custom_proxy_group=普通外网流量`select`[]🇭🇰 香港自动`[]🇨🇳 台湾自动`[]🇸🇬 新加坡自动`[]🇺🇲 美国自动`[]所有节点自动`[]所有节点手选`[]DIRECT +custom_proxy_group=普通外网流量`select`[]🇭🇰 香港自动`[]🇨🇳 台湾自动`[]🇸🇬 新加坡自动`[]🇺🇲 美国自动`[]dler-AC`[]所有节点自动`[]所有节点手选`[]DIRECT custom_proxy_group=国内直连流量`select`[]DIRECT`[]所有节点自动`[]所有节点手选 custom_proxy_group=🇭🇰 香港自动`url-test`(港|HK|Hong Kong)`https://www.gstatic.com/generate_204`300,,50 custom_proxy_group=🇺🇲 美国自动`url-test`(美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|US|United States)`http://www.gstatic.com/generate_204`300,,150 custom_proxy_group=🇨🇳 台湾自动`url-test`(台|新北|彰化|TW|Taiwan)`https://www.gstatic.com/generate_204`300,,50 custom_proxy_group=🇸🇬 新加坡自动`url-test`(新加坡|坡|狮城|SG|Singapore)`https://www.gstatic.com/generate_204`300,,50 +custom_proxy_group=dler-AC`url-test`(AC)`https://www.gstatic.com/generate_204`300,,50 custom_proxy_group=所有节点自动`url-test`.*`https://www.gstatic.com/generate_204`300,,50 +custom_proxy_group=🇭🇰 香港均衡`load-balance`(香港 0)`https://www.gstatic.com/generate_204`300,,50 +custom_proxy_group=🇺🇲 美国均衡`load-balance`(美国 0)`http://www.gstatic.com/generate_204`300,,150 +custom_proxy_group=🇨🇳 台湾均衡`load-balance`(台湾 0)`https://www.gstatic.com/generate_204`300,,50 +custom_proxy_group=🇸🇬 新加坡均衡`load-balance`(新加坡 0)`https://www.gstatic.com/generate_204`300,,50 + enable_rule_generator=true overwrite_original_rules=true 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