diff --git a/bin/ShellCrash.tar.gz b/bin/ShellCrash.tar.gz index 3789db3..4d8fa37 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 ae12d4a..e160aa8 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 dcaabbd..37d0c21 100644 Binary files a/bin/public.tar.gz and b/bin/public.tar.gz differ diff --git a/bin/version b/bin/version index 8955ade..3e6a7da 100644 --- a/bin/version +++ b/bin/version @@ -3,4 +3,4 @@ clashpre_v=2022.11.25 clash_v=v1.7.1 meta_v=v1.17.0 GeoIP_v=20231230 -versionsh=1.8.3d +versionsh=1.8.3e diff --git a/public/task.list b/public/task.list index 14d00a4..7f59d70 100644 --- a/public/task.list +++ b/public/task.list @@ -13,4 +13,6 @@ 113#$CRASHDIR/task/task.sh update_mmdb#自动更新数据库文件 121#$CRASHDIR/task/task.sh reset_firewall#重设透明路由防火墙 +122#reboot#重启路由设备(慎用) + diff --git a/scripts/clash.sh b/scripts/clash.sh index 05d5a68..a8b415c 100644 --- a/scripts/clash.sh +++ b/scripts/clash.sh @@ -22,12 +22,12 @@ ckstatus(){ #检查重复行并去除 [ -n "$(awk 'a[$0]++' $CFG_PATH)" ] && awk '!a[$0]++' $CFG_PATH > $CFG_PATH #检查时间戳 - touch $TMPDIR/clash_start_time + touch $TMPDIR/crash_start_time #使用source加载配置文件 source $CFG_PATH > /dev/null else mkdir -p $CRASHDIR/configs - echo '#标识clash运行状态的文件,不明勿动!' > $CFG_PATH + echo '#标识ShellCrash运行状态的文件,不明勿动!' > $CFG_PATH fi versionsh=$(cat $CRASHDIR/init.sh | grep -E ^version= | head -n 1 | sed 's/version=//') [ -n "$versionsh" ] && versionsh_l=$versionsh @@ -62,10 +62,10 @@ ckstatus(){ #开机自启描述 if [ "$autostart" = "enable" ]; then auto="\033[32m已设置开机启动!\033[0m" - auto1="\033[36m禁用\033[0mclash开机启动" + auto1="\033[36m禁用\033[0mShellCrash开机启动" else auto="\033[31m未设置开机启动!\033[0m" - auto1="\033[36m允许\033[0mclash开机启动" + auto1="\033[36m允许\033[0mShellCrash开机启动" fi #获取运行状态 PID=$(pidof clash | awk '{print $NF}') @@ -73,8 +73,8 @@ ckstatus(){ run="\033[32m正在运行($redir_mod)\033[0m" VmRSS=`cat /proc/$PID/status|grep -w VmRSS|awk '{print $2,$3}'` #获取运行时长 - touch $TMPDIR/clash_start_time #用于延迟启动的校验 - start_time=$(cat $TMPDIR/clash_start_time) + touch $TMPDIR/crash_start_time #用于延迟启动的校验 + start_time=$(cat $TMPDIR/crash_start_time) if [ -n "$start_time" ]; then time=$((`date +%s`-start_time)) day=$((time/86400)) @@ -589,7 +589,7 @@ setdns(){ elif [ "$num" = 6 ]; then echo ----------------------------------------------- if [ "$dns_redir" = "未开启" ]; then - echo -e "\033[31m将使用OpenWrt中Dnsmasq插件自带的DNS转发功能转发DNS请求至clash内核!\033[0m" + echo -e "\033[31m将使用OpenWrt中Dnsmasq插件自带的DNS转发功能转发DNS请求至内核!\033[0m" echo -e "\033[33m启用后将禁用本插件自带的iptables转发功能\033[0m" dns_redir=已开启 echo -e "\033[32m已启用Dnsmasq转发DNS功能!!!\033[0m" @@ -761,7 +761,7 @@ checkport(){ for portx in $dns_port $mix_port $redir_port $db_port ;do if [ -n "$(netstat -ntul 2>&1 |grep '\:$portx ')" ];then echo ----------------------------------------------- - echo -e "检测到端口【$portx】被以下进程占用!clash可能无法正常启动!\033[33m" + echo -e "检测到端口【$portx】被以下进程占用!内核可能无法正常启动!\033[33m" echo $(netstat -ntul | grep :$portx | head -n 1) echo -e "\033[0m-----------------------------------------------" echo -e "\033[36m请修改默认端口配置!\033[0m" @@ -926,7 +926,7 @@ localproxy(){ 3) if [ -z "$authentication" -o "$authentication" = "未设置" ];then local_type="环境变量" - echo -e "\033[33m注意,请重启clash后手动输入以下命令使配置生效\033[0m" + echo -e "\033[33m注意,请重启ShellCrash服务后手动输入以下命令使配置生效\033[0m" echo -e "【\033[32m source /etc/profile > /dev/null \033[0m】" local_proxy=已开启 else @@ -951,7 +951,7 @@ setboot(){ echo ----------------------------------------------- echo -e "\033[30;47m欢迎使用启动设置菜单:\033[0m" echo ----------------------------------------------- - echo -e " 1 ${auto_set}\033[0mclash开机启动" + echo -e " 1 ${auto_set}\033[0mShellCrash开机启动" echo -e " 2 使用保守模式: \033[36m$start_old\033[0m ————基于定时任务(每分钟检测)" echo -e " 3 设置自启延时: \033[36m$delay\033[0m ————用于解决自启后服务受限" echo -e " 4 启用小闪存模式: \033[36m$mini_clash\033[0m ————用于闪存空间不足的设备" @@ -1283,7 +1283,7 @@ clashcfg(){ } echo -e " 4 只代理常用端口: \033[36m$common_ports\033[0m ————用于过滤P2P流量" echo -e " 5 过滤局域网设备: \033[36m$mac_return\033[0m ————使用黑/白名单进行过滤" - echo -e " 6 设置本机代理服务: \033[36m$local_proxy\033[0m ————使本机流量经过clash内核" + echo -e " 6 设置本机代理服务: \033[36m$local_proxy\033[0m ————使本机流量经过ShellCrash内核" echo -e " 7 屏蔽QUIC流量: \033[36m$quic_rj\033[0m ————优化视频性能" [ "$disoverride" != "1" ] && { [ "$dns_mod" = "fake-ip" ] && \ @@ -1372,7 +1372,7 @@ clashcfg(){ echo ----------------------------------------------- if [ -n "$(echo "$redir_mod" | grep -oE '混合|Tproxy|Tun')" ];then if [ "$quic_rj" = "未开启" ]; then - echo -e "\033[33m已禁止QUIC流量通过clash内核!!\033[0m" + echo -e "\033[33m已禁止QUIC流量通过ShellCrash内核!!\033[0m" quic_rj=已启用 else echo -e "\033[33m已取消禁止QUIC协议流量!!\033[0m" @@ -1426,7 +1426,7 @@ clashadv(){ # echo ----------------------------------------------- echo -e "\033[30;47m欢迎使用进阶模式菜单:\033[0m" - echo -e "\033[33m如您并不了解clash的运行机制,请勿更改本页面功能!\033[0m" + echo -e "\033[33m如您并不了解ShellCrash的运行机制,请勿更改本页面功能!\033[0m" echo ----------------------------------------------- [ "$disoverride" != "1" ] && echo -e " 1 ipv6相关" #echo -e " 2 配置Meta特性" @@ -1461,7 +1461,7 @@ clashadv(){ rm -rf $bindir/clash clashcore=meta setconfig clashcore $clashcore - echo "已将clash内核切换为Meta内核!域名嗅探依赖Meta或者高版本clashpre内核!" + echo "已将ShellCrash内核切换为Meta内核!域名嗅探依赖Meta或者高版本clashpre内核!" fi sniffer=已启用 elif [ "$clashcore" = "clashpre" -a "$dns_mod" = "redir_host" ];then @@ -1823,8 +1823,8 @@ case "$1" in echo " -u 卸载脚本" echo " -i 初始化脚本" echo ----------------------------------------- - echo " clash -s start 启动服务" - echo " clash -s stop 停止服务" + echo " crash -s start 启动服务" + echo " crash -s stop 停止服务" echo " 安装目录/start.sh init 开机初始化" echo ----------------------------------------- echo "在线求助:t.me/ShellClash" @@ -1850,9 +1850,9 @@ case "$1" in read -p "确认卸载ShellCrash?(警告:该操作不可逆!)[1/0] > " res if [ "$res" = '1' ]; then $CRASHDIR/start.sh stop - $CRASHDIR/start.sh cronset "clash服务" - $CRASHDIR/start.sh cronset "订阅链接" - $CRASHDIR/start.sh cronset "ShellCrash初始化" + $CRASHDIR/start.sh cronset "clash服务" 2>/dev/null + $CRASHDIR/start.sh cronset "订阅链接" 2>/dev/null + $CRASHDIR/start.sh cronset "ShellCrash初始化" 2>/dev/null read -p "是否保留脚本配置及订阅文件?[1/0] > " res if [ "$res" = '1' ]; then mv -f $CRASHDIR/configs /tmp/clash_$USER @@ -1884,9 +1884,9 @@ case "$1" in userdel -r shellclash 2>/dev/null nvram set script_usbmount="" 2>/dev/null nvram commit 2>/dev/null - uci delete firewall.ShellClash - uci delete firewall.ShellCrash - uci commit firewall + uci delete firewall.ShellClash 2>/dev/null + uci delete firewall.ShellCrash 2>/dev/null + uci commit firewall 2>/dev/null echo ----------------------------------------------- echo -e "\033[36m已卸载ShellCrash相关文件!有缘再会!\033[0m" echo -e "\033[33m请手动关闭当前窗口以重置环境变量!\033[0m" diff --git a/scripts/getdate.sh b/scripts/getdate.sh index 792cbbc..ba51d88 100644 --- a/scripts/getdate.sh +++ b/scripts/getdate.sh @@ -746,7 +746,6 @@ gettar(){ mkdir -p $CRASHDIR > /dev/null tar -zxvf "$TMPDIR/clashfm.tar.gz" -C $CRASHDIR/ || tar -zxvf "$TMPDIR/clashfm.tar.gz" --no-same-owner -C $CRASHDIR/ if [ $? -ne 0 ];then - rm -rf $TMPDIR/clashfm.tar.gz echo -e "\033[33m文件解压失败!\033[0m" error_down else @@ -754,6 +753,7 @@ gettar(){ echo -e "\033[32m脚本更新成功!\033[0m" fi fi + rm -rf $TMPDIR/clashfm.tar.gz exit } getsh(){ @@ -955,6 +955,7 @@ getgeo(){ sleep 1 } setgeo(){ + source $CFG_PATH > /dev/null [ -n "$cn_mini.mmdb_v" ] && geo_type_des=精简版 || geo_type_des=全球版 echo ----------------------------------------------- echo -e "\033[36m请选择需要更新的GeoIP/CN_IP数据库:\033[0m" @@ -969,17 +970,22 @@ setgeo(){ echo " 0 返回上级菜单" echo ----------------------------------------------- read -p "请输入对应数字 > " num - if [ "$num" = '1' ]; then + case "$num" in + 0) + ;; + 1) geotype=Country.mmdb geoname=Country.mmdb getgeo setgeo - elif [ "$num" = '2' ]; then + ;; + 2) geotype=cn_mini.mmdb geoname=Country.mmdb getgeo setgeo - elif [ "$num" = '3' ]; then + ;; + 3) if [ "$cn_ip_route" = "已开启" ]; then geotype=china_ip_list.txt geoname=cn_ip.txt @@ -990,7 +996,8 @@ setgeo(){ sleep 1 fi setgeo - elif [ "$num" = '4' ]; then + ;; + 4) if [ "$cn_ipv6_route" = "已开启" -a "$ipv6_redir" = "已开启" ]; then geotype=china_ipv6_list.txt geoname=cn_ipv6.txt @@ -1001,7 +1008,8 @@ setgeo(){ sleep 1 fi setgeo - elif [ "$num" = '5' ]; then + ;; + 5) if [ "$clashcore" = "meta" ]; then geotype=geosite.dat geoname=GeoSite.dat @@ -1012,9 +1020,11 @@ setgeo(){ sleep 1 fi setgeo - else - update - fi + ;; + *) + errornum + ;; +esac } getdb(){ @@ -1115,23 +1125,18 @@ setdb(){ if [ "$num" = '1' ]; then db_type=clashdb dbdir - getdb elif [ "$num" = '2' ]; then db_type=meta_db dbdir - getdb elif [ "$num" = '3' ]; then db_type=yacd dbdir - getdb elif [ "$num" = '4' ]; then db_type=meta_yacd dbdir - getdb elif [ "$num" = '5' ]; then db_type=meta_xd dbdir - getdb elif [ "$num" = '6' ]; then read -p "确认卸载本地面板?(1/0) > " res if [ "$res" = 1 ];then diff --git a/scripts/init.sh b/scripts/init.sh index d585027..ac3c354 100644 --- a/scripts/init.sh +++ b/scripts/init.sh @@ -1,7 +1,7 @@ #!/bin/sh # Copyright (C) Juewuy -version=1.8.3d +version=1.8.3e setdir(){ dir_avail(){ @@ -231,7 +231,7 @@ fi nvram commit } #删除临时文件 -rm -rf /tmp/*lash*gz +rm -rf /tmp/*rash*gz rm -rf /tmp/SC_tmp #转换&清理旧版本文件 mkdir -p $CRASHDIR/yamls diff --git a/scripts/task.sh b/scripts/task.sh index 650dd1a..5b674a4 100644 --- a/scripts/task.sh +++ b/scripts/task.sh @@ -294,7 +294,7 @@ task_type(){ #任务条件选择菜单 echo -e " 输入 6-18 代表\033[36m早6点至晚18点间每小时\033[0m运行" read -p "想在每日的具体哪个小时执行?(0-23) > " hour echo ----------------------------------------------- - read -p "想在具体哪分钟执行?(1-59的整数) > " min + read -p "想在具体哪分钟执行?(0-59的整数) > " min cron_time="在每日的$hour点$min分" set_cron ;;