From 3a966bf541d917100b1e84d96608c2de9829819a Mon Sep 17 00:00:00 2001 From: juewuy Date: Sat, 13 May 2023 20:43:15 +0800 Subject: [PATCH] =?UTF-8?q?v1.7.8=20~=E8=87=AA=E5=AE=9A=E4=B9=89=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6=E5=8A=9F=E8=83=BD=E9=87=8D=E5=86=99?= =?UTF-8?q?=EF=BC=8C=E7=8E=B0=E5=9C=A8=E6=94=AF=E6=8C=81=E5=9C=A8=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E4=B8=AD=E5=BF=AB=E6=8D=B7=E7=AE=A1=E7=90=86=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E8=A7=84=E5=88=99=20~=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E5=85=A5=E5=8F=A3?= =?UTF-8?q?=E7=94=B17-7=E5=8F=98=E6=9B=B4=E4=B8=BA6-6=20~=E7=8E=B0?= =?UTF-8?q?=E5=9C=A8=E6=94=AF=E6=8C=81=E7=A6=81=E7=94=A8=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=A6=86=E5=86=99=E5=8A=9F=E8=83=BD=20~?= =?UTF-8?q?=E7=8E=B0=E5=9C=A8=E8=B7=AF=E7=94=B1=E8=AE=BE=E5=A4=87=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E6=8B=A8=E5=8F=B7=E4=B8=8D=E4=BC=9A=E4=BD=BFclash?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=87=8D=E5=90=AF=20~=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=BA=86=E5=BC=80=E6=9C=BA=E5=90=AF=E5=8A=A8=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE=E8=8E=B7=E5=8F=96=E6=9C=AC?= =?UTF-8?q?=E6=9C=BAIP=E5=AF=BC=E8=87=B4=E4=BB=A3=E7=90=86=E5=87=BA?= =?UTF-8?q?=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98=20~=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=BA=86=E5=9C=A8=E4=B8=8D=E6=94=AF=E6=8C=81su=E7=9A=84?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E4=B8=8A=E6=8F=90=E7=A4=BA=E7=BC=BA=E5=B0=91?= =?UTF-8?q?su=E5=91=BD=E4=BB=A4=E7=9A=84=E9=97=AE=E9=A2=98=20~=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=BA=86=E9=83=A8=E5=88=86=E5=9C=A8=E7=BA=BFsub?= =?UTF-8?q?=E8=A7=84=E5=88=99=E4=B8=8D=E5=8F=AF=E7=94=A8=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20~=E4=BF=AE=E5=A4=8D=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E5=91=BD=E4=BB=A4=E4=B8=8D?= =?UTF-8?q?=E5=8F=AF=E7=94=A8=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/clash.sh | 108 +++++------------- scripts/getdate.sh | 242 ++++++++++++++++++++++++++++++++++++----- scripts/misnap_init.sh | 3 - scripts/start.sh | 45 ++++---- 4 files changed, 266 insertions(+), 132 deletions(-) diff --git a/scripts/clash.sh b/scripts/clash.sh index a541583..4175b0d 100644 --- a/scripts/clash.sh +++ b/scripts/clash.sh @@ -146,6 +146,13 @@ ckstatus(){ echo ----------------------------------------------- } done + #检查禁用配置覆写 + [ "$disoverride" = "1" ] && { + echo -e "\033[33m你已经禁用了配置文件覆写功能,这会导致大量脚本功能无法使用!\033[0m " + read -p "是否取消禁用?(1/0) > " res + [ "$res" = 1 ] && unset disoverride && setconfig disoverride + echo ----------------------------------------------- + } } #启动相关 @@ -593,9 +600,9 @@ setipv6(){ [ -z "$ipv6_dns" ] && ipv6_dns=已开启 [ -z "$cn_ipv6_route" ] && cn_ipv6_route=未开启 echo ----------------------------------------------- - echo -e " 1 ipv6内核支持: \033[36m$ipv6_support\033[0m ——用于ipv6节点及规则支持" + [ "$disoverride" != "1" ] && echo -e " 1 ipv6内核支持: \033[36m$ipv6_support\033[0m ——用于ipv6节点及规则支持" echo -e " 2 ipv6透明代理: \033[36m$ipv6_redir\033[0m ——代理ipv6流量" - echo -e " 3 ipv6-DNS解析: \033[36m$ipv6_dns\033[0m ——决定内置DNS是否返回ipv6地址" + [ "$disoverride" != "1" ] && echo -e " 3 ipv6-DNS解析: \033[36m$ipv6_dns\033[0m ——决定内置DNS是否返回ipv6地址" echo -e " 4 CNIP绕过内核: \033[36m$cn_ipv6_route\033[0m ——优化性能,不兼容fake-ip" echo -e " 0 返回上级菜单" echo ----------------------------------------------- @@ -1230,15 +1237,19 @@ clashcfg(){ echo -e "\033[30;47m欢迎使用功能设置菜单:\033[0m" echo ----------------------------------------------- echo -e " 1 切换Clash运行模式: \033[36m$redir_mod\033[0m" - echo -e " 2 切换DNS运行模式: \033[36m$dns_mod\033[0m" - echo -e " 3 跳过本地证书验证: \033[36m$skip_cert\033[0m ————解决节点证书验证错误" + [ "$disoverride" != "1" ] && { + echo -e " 2 切换DNS运行模式: \033[36m$dns_mod\033[0m" + echo -e " 3 跳过本地证书验证: \033[36m$skip_cert\033[0m ————解决节点证书验证错误" + } 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 " 7 屏蔽QUIC流量: \033[36m$quic_rj\033[0m ————优化视频性能" - [ "$dns_mod" = "fake-ip" ] && \ - echo -e " 8 管理Fake-ip过滤列表" || \ - echo -e " 8 CN_IP绕过内核: \033[36m$cn_ip_route\033[0m ————优化性能,不兼容Fake-ip" + [ "$disoverride" != "1" ] && { + [ "$dns_mod" = "fake-ip" ] && \ + echo -e " 8 管理Fake-ip过滤列表" || \ + echo -e " 8 CN_IP绕过内核: \033[36m$cn_ip_route\033[0m ————优化性能,不兼容Fake-ip" + } echo ----------------------------------------------- echo -e " 0 返回上级菜单 \033[0m" echo ----------------------------------------------- @@ -1373,14 +1384,13 @@ clashadv(){ echo -e "\033[30;47m欢迎使用进阶模式菜单:\033[0m" echo -e "\033[33m如您并不了解clash的运行机制,请勿更改本页面功能!\033[0m" echo ----------------------------------------------- - echo -e " 1 ipv6相关" + [ "$disoverride" != "1" ] && echo -e " 1 ipv6相关" #echo -e " 2 配置Meta特性" echo -e " 3 配置公网及局域网防火墙" - echo -e " 4 启用域名嗅探: \033[36m$sniffer\033[0m ————用于流媒体及防DNS污染" - echo -e " 5 启用节点绕过: \033[36m$proxies_bypass\033[0m ————用于防止多设备多重流量" - echo -e " 6 配置内置DNS服务 \033[36m$dns_no\033[0m" - echo -e " 7 使用自定义配置" - echo -e " 8 手动指定相关端口、秘钥" + [ "$disoverride" != "1" ] && { + echo -e " 4 启用域名嗅探: \033[36m$sniffer\033[0m ————用于流媒体及防DNS污染" + echo -e " 5 启用节点绕过: \033[36m$proxies_bypass\033[0m ————用于防止多设备多重流量" + } echo ----------------------------------------------- echo -e " 9 \033[31m重置/备份/还原\033[0m脚本设置" echo -e " 0 返回上级菜单 \033[0m" @@ -1433,73 +1443,6 @@ clashadv(){ sleep 1 clashadv ;; - 6) - source $CFG_PATH - if [ "$dns_no" = "已禁用" ];then - read -p "检测到内置DNS已被禁用,是否启用内置DNS?(1/0) > " res - if [ "$res" = "1" ];then - setconfig dns_no - setdns - fi - else - setdns - fi - clashadv - ;; - 7) - [ ! -f $clashdir/user.yaml ] && cat > $clashdir/user.yaml < $clashdir/rules.yaml < $clashdir/proxies.yaml < $clashdir/proxy-groups.yaml < " res - if [ "$res" = "1" ];then - $clashdir/start.sh stop - setport - fi - else - setport - fi - clashadv - ;; 9) echo -e " 1 备份脚本设置" echo -e " 2 还原脚本设置" @@ -1757,7 +1700,7 @@ clashcron(){ echo 将在$week1的$hour点$min分$cronname(旧的任务会被覆盖) read -p "是否确认添加定时任务?(1/0) > " res if [ "$res" = '1' ]; then - cronwords="$min $hour * * $week $cronset >/dev/null 2>&1 #$week1的$hour点$min分$cronname" + cronwords="$min $hour * * $week $cronset #$week1的$hour点$min分$cronname" tmpcron=/tmp/cron_$USER croncmd -l > $tmpcron sed -i "/$cronname/d" $tmpcron @@ -1856,11 +1799,10 @@ clashcron(){ echo -e "\033[33m可包含空格,请确保命令可执行!\033[0m" read -p "请输入命令语句 > " script if [ -n "$script" ];then - cronset=\'$script\' + cronset=$script echo -e "请检查输入:\033[32m$cronset\033[0m" read -p "请输入任务备注 > " txt [ -n "$txt" ] && cronname=$txt || cronname=ShellClash自定义 - cronset="$clashdir/start.sh updateyaml" setcron else echo -e "\033[31m输入错误,请重新输入!\033[0m" diff --git a/scripts/getdate.sh b/scripts/getdate.sh index c884b33..a34acf9 100644 --- a/scripts/getdate.sh +++ b/scripts/getdate.sh @@ -10,25 +10,24 @@ error_down(){ linkconfig(){ echo ----------------------------------------------- echo 当前使用规则为:$rule_link - echo " 1 Acl4SSR全能优化版(推荐)" - echo " 2 Acl4SSR精简优化版(推荐)" + echo " 1 Acl4SSR全能优化版(推荐)" + echo " 2 Acl4SSR精简优化版(推荐)" echo " 3 Acl4SSR全能优化+去广告增强" - echo " 4 Acl4SSR极简版(适合自建节点)" + echo " 4 Acl4SSR极简版(适合自建)" echo " 5 Acl4SSR分流&游戏增强" - echo " 6 Acl4SSR分流&游戏&去广告增强(低性能设备慎用)" - echo " 7 洞主规则精简版(推荐)" + echo " 6 Acl4SSR分流&游戏&去广告增强" + echo " 7 洞主规则精简版" echo " 8 洞主规则重度完整版" - echo " 9 神机规则高级版" - echo " 10 神机规则-回国专用" - echo " 11 李哥规则-墙洞专用" + echo " 9 Acl4SSR多国精简" + echo " 10 Acl4SSR回国专用" echo ----------------------------------------------- echo 0 返回上级菜单 read -p "请输入对应数字 > " num - if [ -z "$num" ] || [ "$num" -gt 17 ];then + if [ -z "$num" ] || [ "$num" -gt 10 ];then errornum elif [ "$num" = 0 ];then echo - elif [ "$num" -le 17 ];then + elif [ "$num" -le 10 ];then #将对应标记值写入mark rule_link=$num setconfig rule_link $rule_link @@ -225,6 +224,197 @@ getlink2(){ getlink2 fi } +setrules(){ + set_rule_type(){ + echo ----------------------------------------------- + echo -e "\033[33m请选择规则类型\033[0m" + echo $rule_type | awk -F ' ' '{for(i=1;i<=NF;i++){print i" "$i}}' + echo -e " 0 返回上级菜单" + read -p "请输入对应数字 > " num + case $num in + 0) ;; + [0-9]*) + if [ $num -gt $(echo $rule_type | awk -F " " '{print NF}') ];then + errornum + else + rule_type_set=$(echo $rule_type|cut -d' ' -f$num) + echo ----------------------------------------------- + echo -e "\033[33m请输入规则语句,可以是域名、泛域名、IP网段或者其他匹配规则类型的内容\033[0m" + read -p "请输入对应规则 > " rule_state_set + [ -n "$rule_state_set" ] && set_group_type || errornum + fi + ;; + *) + errornum + ;; + esac + } + set_group_type(){ + echo ----------------------------------------------- + echo -e "\033[36m请选择具体规则\033[0m" + echo -e "\033[33m此处规则读取自现有配置文件,如果你后续更换配置文件时运行出错,请尝试重新添加\033[0m" + echo $rule_group | awk -F '#' '{for(i=1;i<=NF;i++){print i" "$i}}' + echo -e " 0 返回上级菜单" + read -p "请输入对应数字 > " num + case $num in + 0) ;; + [0-9]*) + if [ $num -gt $(echo $rule_group | awk -F "#" '{print NF}') ];then + errornum + else + rule_group_set=$(echo $rule_group|cut -d'#' -f$num) + rule_all="- ${rule_type_set},${rule_state_set},${rule_group_set}" + [ -n "$(echo IP-CIDR SRC-IP-CIDR IP-CIDR6|grep "$rule_type_set")" ] && rule_all="${rule_all},no-resolve" + echo $rule_all >> $clashdir/rules.yaml + echo ----------------------------------------------- + echo -e "\033[32m添加成功!\033[0m" + fi + ;; + *) + errornum + ;; + esac + } + echo ----------------------------------------------- + echo -e "当前已添加的自定义规则为:" + cat $clashdir/rules.yaml | grep -Ev '^#' | awk '{print " "NR" "$2" "$3}' + + echo ----------------------------------------------- + echo -e "\033[33m输入规则对应数字可以移除对应规则\033[0m" + echo -e " a 新建自定义规则" + echo -e " b 清空自定义规则" + echo -e " 0 返回上级菜单" + read -p "请输入对应字母或数字 > " char + case $char in + a) + rule_type="DOMAIN-SUFFIX DOMAIN-KEYWORD IP-CIDR SRC-IP-CIDR DST-PORT SRC-PORT GEOIP GEOSITE IP-CIDR6 DOMAIN MATCH" + rule_group="DIRECT#REJECT$(grep -o '\- name:.*' $clashdir/config.yaml | sed 's/- name: /#/g' | tr -d '\n')" + set_rule_type + setrules + ;; + b) + sed -i '/^\s*[^#]/d' $clashdir/rules.yaml + setrules + ;; + 0) + ;; + "") + errornum + ;; + *) + if [ $char -le $(cat $clashdir/rules.yaml | grep -Ev '^#' | wc -l) ];then + sed -i "$char{/^\s*[^#]/d}" $clashdir/rules.yaml + else + errornum + fi + sleep 1 + setrules + ;; + esac +} +override(){ + [ -z "$rule_link" ] && rule_link=1 + [ -z "$server_link" ] && server_link=1 + echo ----------------------------------------------- + echo -e "\033[30;47m 欢迎使用配置文件覆写功能!\033[0m" + echo ----------------------------------------------- + echo -e " 1 自定义\033[32m端口及秘钥\033[0m" + echo -e " 2 配置\033[33m内置DNS服务\033[0m" + echo -e " 3 \033[36m管理\033[0m自定义规则" + #echo -e " 4 \033[36m管理\033[0m自定义节点" + #echo -e " 5 \033[36m管理\033[0m自定义代理链" + echo -e " 6 \033[32m自定义\033[0m其他功能" + [ "$disoverride" != 1 ] && echo -e " 9 \033[33m禁用\033[0m配置文件覆写" + echo ----------------------------------------------- + [ "$inuserguide" = 1 ] || echo -e " 0 返回上级菜单" + read -p "请输入对应数字 > " num + case "$num" in + 1) + source $CFG_PATH + if [ -n "$(pidof clash)" ];then + echo ----------------------------------------------- + echo -e "\033[33m检测到clash服务正在运行,需要先停止clash服务!\033[0m" + read -p "是否停止clash服务?(1/0) > " res + if [ "$res" = "1" ];then + $clashdir/start.sh stop + setport + fi + else + setport + fi + override + ;; + 2) + source $CFG_PATH + if [ "$dns_no" = "已禁用" ];then + read -p "检测到内置DNS已被禁用,是否启用内置DNS?(1/0) > " res + if [ "$res" = "1" ];then + setconfig dns_no + setdns + fi + else + setdns + fi + override + ;; + 3) + setrules + override + ;; + 4) + setproxies + override + ;; + 5) + setgroups + override + ;; + 6) + [ ! -f $clashdir/user.yaml ] && cat > $clashdir/user.yaml < $clashdir/others.yaml < " res + [ "$res" = '1' ] && { + disoverride=1 + setconfig disoverride $disoverride + echo ----------------------------------------------- + echo -e "\033[32m设置成功!\033[0m" + } + override + ;; + *) + errornum + ;; + esac +} clashlink(){ [ -z "$rule_link" ] && rule_link=1 [ -z "$server_link" ] && server_link=1 @@ -236,14 +426,12 @@ clashlink(){ echo -e " 3 \033[36m还原\033[0m配置文件" echo -e " 4 \033[33m更新\033[0m配置文件" echo -e " 5 设置\033[36m自动更新\033[0m" + echo -e " 6 配置文件\033[32m覆写\033[0m" echo ----------------------------------------------- [ "$inuserguide" = 1 ] || echo -e " 0 返回上级菜单" read -p "请输入对应数字 > " num - if [ -z "$num" ];then - errornum - elif [ "$num" = 0 ];then - i= - elif [ "$num" = 1 ];then + case "$num" in + 1) if [ -n "$Url" ];then echo ----------------------------------------------- echo -e "\033[33m检测到已记录的链接内容:\033[0m" @@ -259,8 +447,8 @@ clashlink(){ fi fi getlink - - elif [ "$num" = 2 ];then + ;; + 2) echo ----------------------------------------------- echo -e "\033[33m此功能可能会导致严重bug!!!\033[0m" echo -e "强烈建议你使用\033[32m在线生成配置文件功能!\033[0m" @@ -276,8 +464,8 @@ clashlink(){ sleep 1 getlink fi - - elif [ "$num" = 3 ];then + ;; + 3) yamlbak=$yaml.bak if [ ! -f "$yaml".bak ];then echo ----------------------------------------------- @@ -298,8 +486,8 @@ clashlink(){ clashlink fi fi - - elif [ "$num" = 4 ];then + ;; + 4) if [ -z "$Url" -a -z "$Https" ];then echo ----------------------------------------------- echo -e "\033[31m没有找到你的配置文件/订阅链接!请先输入链接!\033[0m" @@ -317,12 +505,16 @@ clashlink(){ clashlink fi fi - - elif [ "$num" = 5 ];then + ;; + 5) clashcron - else + ;; + 6) + override + ;; + *) errornum - fi + esac } #下载更新相关 gettar(){ diff --git a/scripts/misnap_init.sh b/scripts/misnap_init.sh index af4cf15..b6726b4 100644 --- a/scripts/misnap_init.sh +++ b/scripts/misnap_init.sh @@ -67,9 +67,6 @@ case "$1" in *) if [ -z $(pidof clash) ];then init & - else - sleep 10 - $clashdir/start.sh restart fi ;; esac diff --git a/scripts/start.sh b/scripts/start.sh index c96f7ca..02b3dad 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -117,6 +117,13 @@ cronset(){ croncmd $tmpcron rm -f $tmpcron } +get_save(){ + if curl --version > /dev/null 2>&1;then + curl -s -H "Authorization: Bearer ${secret}" -H "Content-Type:application/json" "$1" + elif [ -n "$(wget --help 2>&1|grep '\-\-method')" ];then + wget -q --header="Authorization: Bearer ${secret}" --header="Content-Type:application/json" -O - "$1" + fi +} put_save(){ if curl --version > /dev/null 2>&1;then curl -sS -X PUT -H "Authorization: Bearer ${secret}" -H "Content-Type:application/json" "$1" -d "$2" >/dev/null @@ -128,15 +135,21 @@ mark_time(){ echo `date +%s` > /tmp/clash_start_time } getlanip(){ - host_ipv4=$(ip a 2>&1 | grep -w 'inet' | grep 'global' | grep 'br' | grep -v 'iot' | grep -E ' 1(92|0|72)\.' | sed 's/.*inet.//g' | sed 's/br.*$//g' ) #ipv4局域网网段 - host_ipv6=$(ip a 2>&1 | grep -w 'inet6' | grep -E 'global' | sed 's/.*inet6.//g' | sed 's/scope.*$//g' ) #ipv6公网地址段 + i=1 + while [ "$i" -le "10" ];do + host_ipv4=$(ip a 2>&1 | grep -w 'inet' | grep 'global' | grep 'br' | grep -v 'iot' | grep -E ' 1(92|0|72)\.' | sed 's/.*inet.//g' | sed 's/br.*$//g' ) #ipv4局域网网段 + host_ipv6=$(ip a 2>&1 | grep -w 'inet6' | grep -E 'global' | sed 's/.*inet6.//g' | sed 's/scope.*$//g' ) #ipv6公网地址段 + [ -n "$host_ipv4" -a -n "$host_ipv6" ] && break + [ -f /tmp/ShellClash_log ] && break + sleep 2 && i=$((i+1)) + done #添加自定义ipv4局域网网段 host_ipv4="$host_ipv4$cust_host_ipv4" #缺省配置 [ -z "$host_ipv4" ] && host_ipv4='192.168.0.0/16 10.0.0.0/12 172.16.0.0/12' [ -z "$host_ipv6" ] && host_ipv6='fe80::/10 fd00::/8' #获取本机出口IP地址 - local_ipv4=$(ip route 2>&1 | grep 'src' | grep -Ev 'utun|iot'| grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} $' | sed 's/.*src //g' ) + local_ipv4=$(ip route 2>&1 | grep 'src' | grep -Ev 'utun|iot|docker' | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} $' | sed 's/.*src //g' ) [ -z "$local_ipv4" ] && local_ipv4=$(ip route 2>&1 | grep -Eo 'src.*' | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | sort -u ) #保留地址 reserve_ipv4="0.0.0.0/8 10.0.0.0/8 127.0.0.0/8 100.64.0.0/10 169.254.0.0/16 172.16.0.0/12 192.168.0.0/16 224.0.0.0/4 240.0.0.0/4" @@ -164,15 +177,8 @@ https://github.com/juewuy/ShellClash/raw/master/rules/ShellClash_Full.ini https://github.com/juewuy/ShellClash/raw/master/rules/ShellClash_Full_Block.ini https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/lhie1_clash.ini https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/lhie1_dler.ini -https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/connershua_pro.ini -https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/connershua_backtocn.ini -https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/dlercloud_lige_platinum.ini -https://subconverter.oss-ap-southeast-1.aliyuncs.com/Rules/RemoteConfig/special/basic.ini -https://subconverter.oss-ap-southeast-1.aliyuncs.com/Rules/RemoteConfig/special/netease.ini -https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_Google.ini -https://github.com/juewuy/ShellClash/raw/master/rules/ACL4SSR_Online_Games.ini -https://github.com/juewuy/ShellClash/raw/master/rules/ACL4SSR_Online_Mini_Games.ini -https://github.com/juewuy/ShellClash/raw/master/rules/ACL4SSR_Online_Full_Games.ini +https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_MultiCountry.ini +https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_BackCN.ini EOF` #如果传来的是Url链接则合成Https链接,否则直接使用Https链接 if [ -z "$Https" ];then @@ -1014,13 +1020,6 @@ stop_firewall(){ } #面板配置保存相关 web_save(){ - get_save(){ - if curl --version > /dev/null 2>&1;then - curl -s -H "Authorization: Bearer ${secret}" -H "Content-Type:application/json" "$1" - elif [ -n "$(wget --help 2>&1|grep '\-\-method')" ];then - wget -q --header="Authorization: Bearer ${secret}" --header="Content-Type:application/json" -O - "$1" - fi - } #使用get_save获取面板节点设置 get_save http://127.0.0.1:${db_port}/proxies | awk -F "{" '{for(i=1;i<=NF;i++) print $i}' | grep -E '^"all".*"Selector"' > /tmp/clash_web_check_$USER while read line ;do @@ -1277,7 +1276,8 @@ afstart(){ start_old(){ #使用传统后台执行二进制文件的方式执行 if [ "$local_proxy" = "已开启" -a -n "$(echo $local_type | grep '增强模式')" ];then - su shellclash -c "$bindir/clash -d $bindir >/dev/null" & + ckcmd su && su=su + $su shellclash -c "$bindir/clash -d $bindir >/dev/null" & else ckcmd nohup && nohup=nohup $nohup $bindir/clash -d $bindir >/dev/null 2>&1 & @@ -1301,7 +1301,7 @@ start) bfstart stop_firewall #清理路由策略 #使用内置规则强行覆盖config配置文件 - [ "$modify_yaml" != "已开启" ] && modify_yaml + [ "$disoverride" != "1" ] && modify_yaml #使用不同方式启动clash服务 if [ "$start_old" = "已开启" ];then start_old @@ -1413,6 +1413,9 @@ webget) fi [ "$result" = "200" ] && exit 0 || exit 1 ;; +get_save) + get_save $2 + ;; web_save) getconfig web_save