20 Commits
0.9.0 ... 0.9.4

Author SHA1 Message Date
juewuy
235886c79c v0.9.4
~调整安装初始化流程
~优化下载更新流程
~修复下载更新相关bug
2020-08-15 11:17:24 +08:00
juewuy
454f885f38 移除 2020-08-15 10:55:23 +08:00
juewuy
5cabf6559e v0.9.4
~调整安装初始化流程
~优化下载更新流程
~修复下载更新相关bug
2020-08-15 10:51:12 +08:00
juewuy
be13387179 v0.9.3
~修复文件格式bug
2020-08-14 23:04:34 +08:00
juewuy
2aaeb8c12f Merge branch 'master' of https://github.com/juewuy/clash-for-Miwifi 2020-08-14 22:26:38 +08:00
juewuy
c7e6f4a079 v0.9.2
~添加局域网设备过滤功能
~修复本地版本号不正常的bug
~修复规则偶尔显示为0的bug
2020-08-14 22:26:24 +08:00
juewuy
161e1c7602 Update README.md 2020-08-14 21:43:40 +08:00
juewuy
233dd75a67 Update README.md 2020-08-14 21:43:23 +08:00
juewuy
ab272e3a7c v0.9.2
~添加局域网设备过滤功能
~修复本地版本号不正常的bug
~修复规则偶尔显示为0的bug
2020-08-14 21:39:41 +08:00
juewuy
6d0162f65f v0.9.2
~添加局域网设备过滤功能
~修复本地版本号不正常的bug
~修复规则偶尔显示为0的bug
2020-08-14 21:38:51 +08:00
juewuy
a8f128106a v0.9.2
~添加局域网设备过滤功能
~修复本地版本号不正常的bug
~修复规则偶尔显示为0的bug
2020-08-14 21:36:44 +08:00
juewuy
85de9d0bbd v0.9.2
~添加局域网设备过滤功能
~修复本地版本号不正常的bug
2020-08-14 21:31:06 +08:00
juewuy
d2d19e01ae v0.9.2
~添加局域网设备过滤功能
2020-08-14 21:26:16 +08:00
juewuy
ad34cda6e9 v0.9.2
~添加局域网设备过滤功能
2020-08-14 20:55:15 +08:00
juewuy
691964fe3b v0.9.1
~新增更多设备支持,理论上支持小米全系路由器设备(待测试)
~增加了对设备核心架构的自动检测,适配armv5,armv7,armv8(aarch64),mipsle及x86平台
~增加了一部分acl规则模版
~修复了几处偶尔报错的小bug
2020-08-14 17:26:19 +08:00
juewuy
93f7ceb3c8 Update README.md 2020-08-14 16:46:45 +08:00
juewuy
e4aa9d702d v0.9.1
~新增更多设备支持,理论上支持小米全系路由器设备(待测试)
~增加了对设备核心架构的自动检测,适配armv5,armv7,armv8(aarch64),mipsle及x86平台
~增加了一部分acl规则模版
~修复了几处偶尔报错的小bug
2020-08-14 16:42:52 +08:00
juewuy
724968474f 增加其他核心版本支持 2020-08-14 15:26:30 +08:00
juewuy
b5561d5e20 修复安装时出现奇怪报错的bug 2020-08-14 15:22:24 +08:00
juewuy
f09a7a7599 v0.9.0
~新增定时任务功能(实验性,欢迎测试)
~修复测试命令时一个报错的小bug
~安装本地面板增加自动挂载/www目录
2020-08-14 15:00:47 +08:00
18 changed files with 216 additions and 180 deletions

View File

@@ -4,7 +4,7 @@
功能简介: 功能简介:
-- --
~支持小米AX系列路由器设备使用clash做透明代理更多的设备支持可以前往TG群报名参与测试<br> ~支持小米系列路由器设备使用clash做透明代理更多的设备支持可以前往TG群报名参与测试<br>
~支持SS、SSR、v2ray、trojan、sock5等协议<br> ~支持SS、SSR、v2ray、trojan、sock5等协议<br>
~支持批量导入节点链接及订阅链接<br> ~支持批量导入节点链接及订阅链接<br>
~支持使用网页面板管理规则组<br> ~支持使用网页面板管理规则组<br>
@@ -14,10 +14,18 @@
更新日志: 更新日志:
-- --
* v0.9.2<br>
~添加局域网设备过滤功能<br>
~修复本地版本号不正常的bug<br>
~修复规则偶尔显示为0的bug<br>
* v0.9.1<br>
~新增更多设备支持,理论上支持小米全系路由器设备(待测试)<br>
~增加了对设备核心架构的自动检测适配armv5armv7armv8aarch64mipsle及x86平台<br>
~增加了一部分acl规则模版<br>
~修复了几处偶尔报错的小bug<br>
* v0.9.0<br> * v0.9.0<br>
~新增定时任务功能(实验性,欢迎测试)<br> ~新增定时任务功能(实验性,欢迎测试)<br>
~修复测试命令时一个报错的小bug<br> ~修复测试命令时一个报错的小bug<br>
* v0.8.7<br> * v0.8.7<br>
~修复了脚本更新路径不正确的bug<br> ~修复了脚本更新路径不正确的bug<br>
~调整了geoip数据库下载源地址<br> ~调整了geoip数据库下载源地址<br>
@@ -66,8 +74,8 @@ ToDo
~~增加更新功能~~<br> ~~增加更新功能~~<br>
~~修复redir-host DNS以及IPV6支持~~<br> ~~修复redir-host DNS以及IPV6支持~~<br>
~~增加定时功能~~<br> ~~增加定时功能~~<br>
~增加屏蔽局域网设备<br> ~~增加屏蔽局域网设备~~<br>
~增加更多设备支持<br> ~~增加更多设备支持~~<br>
感谢: 感谢:
-- --

BIN
bin/clash/clash-linux-386 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
version=1.0.0 version=20200813

BIN
bin/clashr/clash-linux-386 Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -1 +1 @@
versionsh=0.9.0 versionsh=0.9.4

View File

@@ -63,10 +63,9 @@ tar -zxvf '/tmp/clashfm.tar.gz' -C $dir/clash/
[ $? -ne 0 ] && echo "文件解压失败!" && exit 1 [ $? -ne 0 ] && echo "文件解压失败!" && exit 1
#初始化文件目录 #初始化文件目录
mv $dir/clash/clashservice /etc/init.d/clash #将clash服务文件移动到系统目录 mv $dir/clash/clashservice /etc/init.d/clash #将clash服务文件移动到系统目录
chmod 777 $dir/clash/clash #授予权限
chmod 777 /etc/init.d/clash #授予权限 chmod 777 /etc/init.d/clash #授予权限
if [ ! -f "$dir/clash/mark" ]; then if [ ! -f "$dir/clash/mark" ]; then
cat >$ccfg<<EOF cat >$dir/clash/mark<<EOF
#标识clash运行状态的文件不明勿动 #标识clash运行状态的文件不明勿动
EOF EOF
fi fi

View File

@@ -1,87 +0,0 @@
#!/bin/sh
# Copyright (C) Juewuy
echo "***********************************************"
echo "** 欢迎使用 **"
echo "** Clash for Miwifi **"
echo "** by Juewuy **"
echo "***********************************************"
url="https://cdn.jsdelivr.net/gh/juewuy/clash-for-Miwifi/"
result=$(curl -w %{http_code} -skLo /tmp/clashversion $url/bin/version)
[ "$result" != "200" ] && echo "无法连接到服务器!" && exit 1
source /tmp/clashversion
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "~~~~版本:\033[32m$versionsh\033[0m"
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[44m使用中如遇问题请加TG群反馈\033[42;30m t.me/clashfm \033[0m"
echo -e "\033[37m目前仅支持小米AX系列3款路由器"
echo -e "\033[44m其余型号可到TG群报名参与测试\033[0m"
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[32m 1 在默认目录(/etc)安装Clash for Miwifi"
echo -e "\033[33m 2 手动设置安装目录(不明勿用!)"
echo -e "\033[0m 0 退出安装"
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
read -p "请输入相应数字 > " num
if [ -z $num ];then
echo 安装已取消
exit;
elif [[ $num == 1 ]];then
dir=/etc
elif [[ $num == 2 ]];then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo '可用路径 剩余空间:'
df -h | awk '{print $6,$2}'| sed 1d
echo '路径是必须带 / 的格式,写入虚拟内存(/tmp,/sys,..)的文件会在重启后消失!!!'
read -p "请输入自定义路径 > " dir
if [ -z $dir ];then
echo 路径错误!已取消安装!
exit;
fi
else
echo 安装已取消
exit;
fi
#下载文件包
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo 开始从服务器获取安装文件!
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tarurl=$url/bin/clashfm.tar.gz
if command -v curl &> /dev/null; then
result=$(curl -w %{http_code} -kLo /tmp/clashfm.tar.gz $tarurl)
else $result
wget-ssl -q --no-check-certificate --tries=1 --timeout=10 -O /tmp/clashfm.tar.gz $tarurl
[ $? -eq 0 ] && result="200"
fi
[ "$result" != "200" ] && echo "文件下载失败!" && exit 1
#解压
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo 开始解压文件!
mkdir -p $dir/clash > /dev/null
tar -zxvf '/tmp/clashfm.tar.gz' -C $dir/clash/
[ $? -ne 0 ] && echo "文件解压失败!" && exit 1
#初始化文件目录
mv $dir/clash/clashservice /etc/init.d/clash #将clash服务文件移动到系统目录
chmod 777 $dir/clash/clash #授予权限
chmod 777 /etc/init.d/clash #授予权限
if [ ! -f "$dir/clash/mark" ]; then
cat >$ccfg<<EOF
#标识clash运行状态的文件不明勿动
EOF
fi
sed -i '/versionsh_l=*/'d $dir/clash/mark
sed -i "1i\versionsh_l=$versionsh" $dir/clash/mark
#设置环境变量
sed -i '/alias clash=*/'d /etc/profile
echo "alias clash=\"sh $dir/clash/clash.sh\"" >> /etc/profile #设置快捷命令环境变量
sed -i '/export clashdir=*/'d /etc/profile
echo "export clashdir=\"$dir/clash\"" >> /etc/profile #设置clash路径环境变量
#删除临时文件
rm -rf /tmp/clashfm.tar.gz
#提示
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo clash for Miwifi 已经安装成功!
echo -e "\033[33m直接输入\033[30;47m clash \033[0;33m命令即可管理\033[0m"
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -2,14 +2,12 @@
# Copyright (C) Juewuy # Copyright (C) Juewuy
getconfig(){ getconfig(){
#版本号
versionsh_l=0.9.0
#服务器地址 #服务器地址
if [ -z $update_url ]; then if [ -z "$update_url" ]; then
update_url=https://cdn.jsdelivr.net/gh/juewuy/clash-for-Miwifi/ update_url=https://cdn.jsdelivr.net/gh/juewuy/clash-for-Miwifi@latest
fi fi
#文件路径 #文件路径
if [ -z $clashdir ];then if [ -z "$clashdir" ];then
clashdir=$(dirname $(readlink -f "$0")) clashdir=$(dirname $(readlink -f "$0"))
echo "export clashdir=\"$clashdir\"" >> /etc/profile echo "export clashdir=\"$clashdir\"" >> /etc/profile
fi fi
@@ -23,6 +21,8 @@ if [ ! -f "$ccfg" ]; then
EOF EOF
fi fi
source $ccfg source $ccfg
#检查mac地址记录
[ ! -f "$clashdir/mac" ] && touch $clashdir/mac
#获取自启状态 #获取自启状态
if [ -f /etc/rc.d/*clash ]; then if [ -f /etc/rc.d/*clash ]; then
auto="\033[32m已设置开机启动\033[0m" auto="\033[32m已设置开机启动\033[0m"
@@ -32,7 +32,7 @@ else
auto1="\033[36m允许\033[0mclash开机启动" auto1="\033[36m允许\033[0mclash开机启动"
fi fi
#获取运行模式 #获取运行模式
if [ ! -n "$redir_mod" ]; then if [ -z "$redir_mod" ]; then
sed -i "2i\redir_mod=Redir模式" $ccfg sed -i "2i\redir_mod=Redir模式" $ccfg
redir_mod=Redir模式 redir_mod=Redir模式
fi fi
@@ -79,34 +79,46 @@ if [ ! -f $clashdir/Country.mmdb ];then
echo -e "\033[31m没有找到GeoIP数据库文件请先下载数据库\033[0m" echo -e "\033[31m没有找到GeoIP数据库文件请先下载数据库\033[0m"
source $clashdir/getdate.sh source $clashdir/getdate.sh
getgeo getgeo
clashstart
fi fi
} }
clashstart(){ clashstart(){
if [ ! -f "$yaml" ];then
/etc/init.d/clash start echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sleep 1 echo -e "\033[31m没有找到配置文件请先导入节点/订阅链接!\033[0m"
status=`ps |grep -w 'clash -d'|grep -v grep|wc -l` clashlink
fi
if [ $status -gt 0 ];then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/etc/init.d/clash stop > /dev/null 2>&1
echo -e "\033[31mClash服务已停止\033[0m"
fi
/etc/init.d/clash start
sleep 1
status=`ps |grep -w 'clash -d'|grep -v grep|wc -l`
if [[ $status -gt 0 ]];then if [[ $status -gt 0 ]];then
host=$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';) host=$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';)
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[32mclash服务已启动\033[0m" echo -e "\033[32mclash服务已启动\033[0m"
echo -e "可以使用\033[30;47m http://clash.razord.top \033[0m管理内置规则" echo -e "可以使用\033[30;47m http://clash.razord.top \033[0m管理内置规则"
echo -e "也可以前往更新菜单安装本地Dashboard面板连接更稳定"
echo -e "Host地址:\033[36m $host \033[0m 端口:\033[36m 9999 \033[0m" echo -e "Host地址:\033[36m $host \033[0m 端口:\033[36m 9999 \033[0m"
echo -e "也可前往更新菜单安装本地Dashboard面板连接更稳定\033[0m"
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
else else
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31mclash服务启动失败请检查配置文件\033[0m" echo -e "\033[31mclash服务启动失败请检查配置文件\033[0m"
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fi fi
} }
clashlink(){ clashlink(){
#获取订阅规则 #获取订阅规则
if [ ! -n "$rule_link" ]; then if [ -z "$rule_link" ]; then
sed -i '/rule_link=*/'d $ccfg sed -i '/rule_link=*/'d $ccfg
sed -i "4i\rule_link=1" $ccfg sed -i "4i\rule_link=1" $ccfg
rule_link=1 rule_link=1
fi fi
#获取后端服务器地址 #获取后端服务器地址
if [ ! -n "$server_link" ]; then if [ -z "$server_link" ]; then
sed -i '/server_link=*/'d $ccfg sed -i '/server_link=*/'d $ccfg
sed -i "5i\server_link=1" $ccfg sed -i "5i\server_link=1" $ccfg
server_link=1 server_link=1
@@ -122,7 +134,7 @@ echo -e " 5 \033[36m还原\033[0m配置文件"
echo -e " 6 \033[32m手动更新\033[0m订阅" echo -e " 6 \033[32m手动更新\033[0m订阅"
echo -e " 0 返回上级菜单" echo -e " 0 返回上级菜单"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z $num ];then if [ -z "$num" ];then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
clashsh clashsh
@@ -166,21 +178,26 @@ elif [[ $num == 3 ]];then
echo 3 ACL4SSR通用版去广告加强 echo 3 ACL4SSR通用版去广告加强
echo 4 ACL4SSR精简版去广告加强 echo 4 ACL4SSR精简版去广告加强
echo 5 ACL4SSR通用版无去广告 echo 5 ACL4SSR通用版无去广告
echo 6 ACL4SSR通用版无自动测速
echo 7 ACL4SSR精简版无自动测速
echo 8 ACL4SSR超重度奈飞全量
echo 0 返回上级菜单 echo 0 返回上级菜单
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z $num ];then if [ -z "$num" ];then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
clashlink clashlink
else elif [[ "$num" == 0 ]];then
#将对应标记值写入mark clashlink
sed -i '/rule_link*/'d $ccfg else
sed -i "4i\rule_link="$num"" $ccfg #将对应标记值写入mark
rule_link=$num sed -i '/rule_link*/'d $ccfg
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sed -i "4i\rule_link="$num"" $ccfg
echo -e "\033[32m设置成功返回上级菜单\033[0m" rule_link=$num
clashlink echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fi echo -e "\033[32m设置成功返回上级菜单\033[0m"
clashlink
fi
elif [[ $num == 4 ]];then elif [[ $num == 4 ]];then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[44m 实验性功能遇问题请加TG群反馈\033[42;30m t.me/clashfm \033[0m" echo -e "\033[44m 实验性功能遇问题请加TG群反馈\033[42;30m t.me/clashfm \033[0m"
@@ -194,14 +211,13 @@ elif [[ $num == 4 ]];then
echo 7 subconvert.dreamcloud.pw echo 7 subconvert.dreamcloud.pw
echo 0 返回上级菜单 echo 0 返回上级菜单
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z $num ];then if [ -z "$num" ];then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
clashlink clashlink
else elif [[ "$num" == 0 ]];then
if [[ $num == 0 ]];then
clashlink clashlink
fi else
#将对应标记值写入mark #将对应标记值写入mark
sed -i '/server_link*/'d $ccfg sed -i '/server_link*/'d $ccfg
sed -i "4i\server_link="$num"" $ccfg sed -i "4i\server_link="$num"" $ccfg
@@ -230,7 +246,7 @@ elif [[ $num == 5 ]];then
fi fi
clashsh clashsh
elif [[ $num == 6 ]];then elif [[ $num == 6 ]];then
if [ ! -n "$Url" ];then if [ -z "$Url" ];then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo 没有找到你的订阅链接!请先输入链接! echo 没有找到你的订阅链接!请先输入链接!
clashlink clashlink
@@ -257,21 +273,26 @@ fi
} }
clashadv(){ clashadv(){
#获取设置默认显示 #获取设置默认显示
if [ ! -n "$skip_cert" ]; then if [ -z "$skip_cert" ]; then
skip_cert=已开启 skip_cert=已开启
fi fi
if [ ! -n "$common_ports" ]; then if [ -z "$common_ports" ]; then
common_ports=未开启 common_ports=未开启
fi fi
if [ ! -n "$dns_mod" ]; then if [ -z "$dns_mod" ]; then
dns_mod=redir_host dns_mod=redir_host
fi fi
if [ ! -n "$modify_yaml" ]; then if [ -z "$modify_yaml" ]; then
modify_yaml=未开启 modify_yaml=未开启
fi fi
if [ ! -n "$ipv6_support" ]; then if [ -z "$ipv6_support" ]; then
ipv6_support=未开启 ipv6_support=未开启
fi fi
if [ -z "$(cat $clashdir/mac)" ]; then
mac_return=未开启
else
mac_return=已启用
fi
# #
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[30;47m欢迎使用高级模式菜单\033[0m" echo -e "\033[30;47m欢迎使用高级模式菜单\033[0m"
@@ -283,6 +304,7 @@ echo -e " 3 跳过本地证书验证: \033[36m$skip_cert\033[0m ————
echo -e " 4 只代理常用端口: \033[36m$common_ports\033[0m ————用于屏蔽P2P流量" echo -e " 4 只代理常用端口: \033[36m$common_ports\033[0m ————用于屏蔽P2P流量"
echo -e " 5 不修饰config.yaml: \033[36m$modify_yaml\033[0m ————用于使用自定义配置" echo -e " 5 不修饰config.yaml: \033[36m$modify_yaml\033[0m ————用于使用自定义配置"
echo -e " 6 启用ipv6支持: \033[36m$ipv6_support\033[0m ————实验性且不兼容Fake_ip" echo -e " 6 启用ipv6支持: \033[36m$ipv6_support\033[0m ————实验性且不兼容Fake_ip"
echo -e " 7 过滤局域网mac地址 \033[36m$mac_return\033[0m ————列表内设备不走代理"
echo -e " 9 \033[32m重启\033[0mclash服务" echo -e " 9 \033[32m重启\033[0mclash服务"
echo -e " 0 返回上级菜单 \033[0m" echo -e " 0 返回上级菜单 \033[0m"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
@@ -306,7 +328,7 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
echo " 不推荐使用redir-host" echo " 不推荐使用redir-host"
echo " 0 返回上级菜单" echo " 0 返回上级菜单"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z $num ]; then if [ -z "$num" ]; then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
clashadv clashadv
@@ -353,7 +375,7 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
echo " 不支持Tun模式" echo " 不支持Tun模式"
echo " 0 返回上级菜单" echo " 0 返回上级菜单"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z $num ]; then if [ -z "$num" ]; then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
clashadv clashadv
@@ -439,7 +461,74 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
ipv6_support=未开启 ipv6_support=未开启
fi fi
clashadv clashadv
elif [[ $num == 7 ]]; then
add_mac(){
echo -----------------------------------------------
echo -e "\033[33m序号 设备IP 设备mac地址 设备名称\033[32m"
cat /tmp/dhcp.leases | awk '{print " "NR" "$3,$2,$4}'
echo -e "\033[0m 0 或回车 结束添加"
read -p "请输入对应序号 > " num
if [ -z "$num" ]; then
clashadv
elif [ $num -le 0 ]; then
clashadv
elif [ $num -le $(cat /tmp/dhcp.leases | awk 'END{print NR}') ]; then
macadd=$(cat /tmp/dhcp.leases | awk '{print $2}' | sed -n "$num"p)
if [ -z $(cat $clashdir/mac | grep -E "$macadd") ];then
echo $macadd >> $clashdir/mac
echo -----------------------------------------------
echo 已添加的mac地址
cat $clashdir/mac
else
echo -----------------------------------------------
echo -e "\033[31m已添加的设备请勿重复添加\033[0m"
fi
else
echo -----------------------------------------------
echo -e "\033[31m输入有误请重新输入\033[0m"
fi
add_mac
}
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[33m请在此添加或移除设备\033[0m"
if [ -n "$(cat $clashdir/mac)" ]; then
echo -e "当前已过滤设备为:\033[36m"
for mac in $(cat $clashdir/mac); do
cat /tmp/dhcp.leases | awk '{print $3,$2,$4}' | grep $mac
done
echo -e "\033[0m-----------------------------------------------"
fi
echo -e " 1 \033[31m清空列表\033[0m"
echo -e " 2 \033[32m添加设备\033[0m"
echo -e " 0 返回上级菜单"
read -p "请输入对应数字 > " num
if [ -z "$num" ]; then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m"
clashadv
elif [[ $num == 0 ]]; then
clashadv
elif [[ $num == 1 ]]; then
:>$clashdir/mac
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m设备列表已清空\033[0m"
sleep 1
clashadv
elif [[ $num == 2 ]]; then
add_mac
else
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m"
clashadv
fi
clashadv
elif [[ $num == 9 ]]; then elif [[ $num == 9 ]]; then
if [ $status -gt 0 ];then if [ $status -gt 0 ];then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -489,6 +578,7 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
elif [[ $num == 3 ]]; then elif [[ $num == 3 ]]; then
source $clashdir/getdate.sh source $clashdir/getdate.sh
getgeo getgeo
update
elif [[ $num == 4 ]]; then elif [[ $num == 4 ]]; then
source $clashdir/getdate.sh source $clashdir/getdate.sh
@@ -535,7 +625,7 @@ clashcron(){
echo -e " 输入 9 \033[31m删除定时任务\033[0m" echo -e " 输入 9 \033[31m删除定时任务\033[0m"
echo -e " 输入 0 返回上级菜单" echo -e " 输入 0 返回上级菜单"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z $num ]; then if [ -z "$num" ]; then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
clashcron clashcron
@@ -558,7 +648,7 @@ clashcron(){
#设置具体时间 #设置具体时间
echo ----------------------------------------------- echo -----------------------------------------------
read -p "请输入小时0-23 > " num read -p "请输入小时0-23 > " num
if [ -z $num ]; then if [ -z "$num" ]; then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
setcron setcron
@@ -571,7 +661,7 @@ clashcron(){
fi fi
echo ----------------------------------------------- echo -----------------------------------------------
read -p "请输入分钟0-60 > " num read -p "请输入分钟0-60 > " num
if [ -z $num ]; then if [ -z "$num" ]; then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
setcron setcron
@@ -622,7 +712,7 @@ echo -e " 3 设置\033[32m定时开启\033[0mclash服务"
echo -e " 4 设置\033[33m定时更新\033[0m订阅链接(实验性,可能不稳定)" echo -e " 4 设置\033[33m定时更新\033[0m订阅链接(实验性,可能不稳定)"
echo -e " 0 返回上级菜单" echo -e " 0 返回上级菜单"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z $num ]; then if [ -z "$num" ]; then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
clashsh clashsh
@@ -653,7 +743,6 @@ else
clashsh clashsh
fi fi
} }
clashsh(){ clashsh(){
############################# #############################
getconfig getconfig
@@ -673,18 +762,9 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
exit; exit;
elif [[ $num == 1 ]]; then elif [[ $num == 1 ]]; then
if [ ! -f "$yaml" ];then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m没有找到配置文件请先导入节点/订阅链接!\033[0m"
clashlink
fi
if [ $status -gt 0 ];then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/etc/init.d/clash stop > /dev/null 2>&1
echo -e "\033[31mClash服务已停止\033[0m"
fi
clashstart clashstart
clashsh exit;
elif [[ $num == 2 ]]; then elif [[ $num == 2 ]]; then
clashadv clashadv
@@ -726,7 +806,7 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
echo " 6 测试代理服务器连通性google.tw)" echo " 6 测试代理服务器连通性google.tw)"
echo " 0 返回上级目录!" echo " 0 返回上级目录!"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z $num ]; then if [ -z "$num" ]; then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
clashsh clashsh
@@ -752,6 +832,9 @@ if [[ $num -le 9 ]] > /dev/null 2>&1; then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
iptables -t nat -L PREROUTING --line-numbers iptables -t nat -L PREROUTING --line-numbers
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
iptables -t nat -L clash --line-numbers
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
iptables -t nat -L clash_dns --line-numbers
exit; exit;
elif [[ $num == 5 ]]; then elif [[ $num == 5 ]]; then
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -94,31 +94,55 @@ start_redir(){
iptables -t nat -A clash -d 192.168.0.0/16 -j RETURN iptables -t nat -A clash -d 192.168.0.0/16 -j RETURN
iptables -t nat -A clash -d 224.0.0.0/4 -j RETURN iptables -t nat -A clash -d 224.0.0.0/4 -j RETURN
iptables -t nat -A clash -d 240.0.0.0/4 -j RETURN iptables -t nat -A clash -d 240.0.0.0/4 -j RETURN
for mac in $(cat $clashdir/mac); do
iptables -t nat -A clash -m mac --mac-source $mac -j RETURN
done
iptables -t nat -A clash -p tcp $ports-j REDIRECT --to-ports 7892 iptables -t nat -A clash -p tcp $ports-j REDIRECT --to-ports 7892
iptables -t nat -A PREROUTING -p tcp -j clash iptables -t nat -A PREROUTING -p tcp -j clash
if [ "$ipv6_support" = "已开启" ];then if [ "$ipv6_support" = "已开启" ];then
ip6tables -t nat -N clashv6 ip6tables -t nat -N clash
ip6tables -t nat -A clashv6 -p tcp $ports-j REDIRECT --to-ports 7892 for mac in $(cat $clashdir/mac); do
ip6tables -t nat -A PREROUTING -p tcp -j clashv6 ip6tables -t nat -A clash -m mac --mac-source $mac -j RETURN
done
ip6tables -t nat -A clash -p tcp $ports-j REDIRECT --to-ports 7892
ip6tables -t nat -A PREROUTING -p tcp -j clash
fi fi
} }
stop_iptables(){ stop_iptables(){
#重置iptables规则 #重置iptables规则
iptables -t nat -D PREROUTING -p tcp -j clash > /dev/null 2>&1 iptables -t nat -D PREROUTING -p tcp -j clash > /dev/null 2>&1
iptables -t nat -D PREROUTING -p udp -j clash_dns > /dev/null 2>&1
iptables -t nat -F clash > /dev/null 2>&1 iptables -t nat -F clash > /dev/null 2>&1
iptables -t nat -X clash > /dev/null 2>&1 iptables -t nat -X clash > /dev/null 2>&1
iptables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to 1053 > /dev/null 2>&1 iptables -t nat -F clash_dns > /dev/null 2>&1
ip6tables -t nat -D PREROUTING -p udp --dport 53 -j REDIRECT --to 1053 > /dev/null 2>&1 iptables -t nat -X clash_dns > /dev/null 2>&1
ip6tables -t nat -D PREROUTING -p tcp -j clashv6 > /dev/null 2>&1 #重置ipv6规则
ip6tables -t nat -F clashv6 > /dev/null 2>&1 ip6tables -t nat -D PREROUTING -p tcp -j clash > /dev/null 2>&1
ip6tables -t nat -X clashv6 > /dev/null 2>&1 ip6tables -t nat -D PREROUTING -p udp -j clash_dns > /dev/null 2>&1
ip6tables -t nat -F clash > /dev/null 2>&1
ip6tables -t nat -X clash > /dev/null 2>&1
ip6tables -t nat -F clash_dns > /dev/null 2>&1
ip6tables -t nat -X clash_dns > /dev/null 2>&1
} }
start_dns(){ start_dns(){
#允许tun网卡接受流量 #允许tun网卡接受流量
iptables -I FORWARD -o utun -j ACCEPT iptables -I FORWARD -o utun -j ACCEPT
ip6tables -I FORWARD -o utun -j ACCEPT
#设置dns转发 #设置dns转发
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to 1053 iptables -t nat -N clash_dns
ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to 1053 for mac in $(cat $clashdir/mac); do
iptables -t nat -A clash_dns -m mac --mac-source $mac -j RETURN
done
iptables -t nat -A clash_dns -p udp --dport 53 -j REDIRECT --to 1053
iptables -t nat -A PREROUTING -p udp -j clash_dns
#ipv6DNS
ip6tables -t nat -N clash_dns
for mac in $(cat $clashdir/mac); do
ip6tables -t nat -A clash_dns -m mac --mac-source $mac -j RETURN
done
ip6tables -t nat -A clash_dns -p udp --dport 53 -j REDIRECT --to 1053
ip6tables -t nat -A PREROUTING -p udp -j clash_dns
} }
start_service() { start_service() {
getconfig getconfig

View File

@@ -20,9 +20,13 @@ https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_On
https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_AdblockPlus.ini https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_AdblockPlus.ini
https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_AdblockPlus.ini https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_AdblockPlus.ini
https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoReject.ini https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoReject.ini
https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoAuto.ini
https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_NoAuto.ini
https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_Netflix.ini
EOF` EOF`
#如果传来的是Url链接则合成Https链接否则直接使用Https链接 #如果传来的是Url链接则合成Https链接否则直接使用Https链接
if [ -z $Https ];then if [ -z $Https ];then
echo $Url
Https="https://$Server/sub?target=clashr&new_name=true&url=$Url&insert=false&config=$Config" Https="https://$Server/sub?target=clashr&new_name=true&url=$Url&insert=false&config=$Config"
markhttp=1 markhttp=1
fi fi
@@ -52,12 +56,13 @@ if [ "$result" != "200" ];then
read -p "是否更换后端地址后重试?[1/0] > " res read -p "是否更换后端地址后重试?[1/0] > " res
if [ "$res" = '1' ]; then if [ "$res" = '1' ]; then
sed -i '/server_link=*/'d $ccfg sed -i '/server_link=*/'d $ccfg
if [ "$server_link" = '7' ]; then if [[ $server_link == 7 ]]; then
server_link=0 server_link=0
fi fi
server_link=$(($server_link + 1)) server_link=$(($server_link + 1))
#echo $server_link echo $server_link
sed -i "1i\server_link=$server_link" $ccfg sed -i "1i\server_link=$server_link" $ccfg
Https=""
getyaml getyaml
fi fi
#exit; #exit;
@@ -69,20 +74,20 @@ else
mv $yaml $yaml.bak mv $yaml $yaml.bak
fi fi
mv $yamlnew $yaml mv $yamlnew $yaml
echo 配置文件已生成!正在启clash使其生效 echo 配置文件已生成!正在启clash使其生效
#重启clash服务 #重启clash服务
/etc/init.d/clash restart /etc/init.d/clash stop > /dev/null 2>&1
/etc/init.d/clash start
sleep 1 sleep 1
status=`ps |grep -w 'clash -d'|grep -v grep|wc -l` status=`ps |grep -w 'clash -d'|grep -v grep|wc -l`
if [[ $status -gt 0 ]];then if [[ $status -gt 0 ]];then
host=$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';)
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[32mclash服务已启动\033[0m" echo -e "\033[32mclash服务已启动\033[0m"
echo -e "可以使用\033[30;47m http://clash.razord.top \033[0m管理clash内置规则" echo -e "可以使用\033[30;47m http://clash.razord.top \033[0m管理内置规则"
host=$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';) echo -e "Host地址:\033[36m $host \033[0m 端口:\033[36m 9999 \033[0m"
echo -e "Host地址:\033[30;46m $host \033[0m;端口:\033[30;46m 9999 \033[0m" echo -e "也可前往更新菜单安装本地Dashboard面板连接更稳定\033[0m"
#将用户链接写入mark sleep 1
sed -i '/Https=*/'d $ccfg
sed -i "7i\Https=\'$Https\'" $ccfg
clashsh clashsh
else else
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -90,9 +95,11 @@ else
echo -e "\033[31mclash服务启动失败已还原配置文件并重启clash\033[0m" echo -e "\033[31mclash服务启动失败已还原配置文件并重启clash\033[0m"
mv $yaml.bak $yaml mv $yaml.bak $yaml
/etc/init.d/clash start /etc/init.d/clash start
sleep 1
clashsh clashsh
else else
echo -e "\033[31mclash服务启动失败请利用测试菜单排查问题\033[0m" echo -e "\033[31mclash服务启动失败请利用测试菜单排查问题\033[0m"
sleep 1
clashsh clashsh
fi fi
fi fi
@@ -150,6 +157,7 @@ do
sed -i '/Url=*/'d $ccfg sed -i '/Url=*/'d $ccfg
sed -i '/Https=*/'d $ccfg sed -i '/Https=*/'d $ccfg
sed -i "6i\Url=\'$Url\'" $ccfg sed -i "6i\Url=\'$Url\'" $ccfg
Https=""
#获取在线yaml文件 #获取在线yaml文件
getyaml getyaml
fi fi
@@ -247,9 +255,10 @@ if [ "$res" = '1' ]; then
[ $? -ne 0 ] && echo "文件解压失败!" && exit 1 [ $? -ne 0 ] && echo "文件解压失败!" && exit 1
#初始化文件目录 #初始化文件目录
mv $clashdir/clashservice /etc/init.d/clash #将clash服务文件移动到系统目录 mv $clashdir/clashservice /etc/init.d/clash #将clash服务文件移动到系统目录
chmod 777 $clashdir/clash #授予权限
chmod 777 /etc/init.d/clash #授予权限 chmod 777 /etc/init.d/clash #授予权限
#写入版本号
sed -i '/versionsh_l=*/'d $ccfg
sed -i "1i\versionsh_l=$versionsh" $ccfg
#删除临时文件 #删除临时文件
rm -rf /tmp/clashfm.tar.gz rm -rf /tmp/clashfm.tar.gz
rm -rf /tmp/clashversion rm -rf /tmp/clashversion
@@ -269,9 +278,15 @@ if [ ! -f $clashdir/clash ]; then
clashcore=没有安装核心! clashcore=没有安装核心!
clashv='' clashv=''
fi fi
cpucore=armv7
clashcore_n=$clashcore clashcore_n=$clashcore
#获取设备处理器架构
cpucore=$(uname -ms | tr ' ' '_' | tr '[A-Z]' '[a-z]')
[ -n "$(echo $cpucore | grep -E "linux.*aarch64.*")" ] && cpucore="armv8"
[ -n "$(echo $cpucore | grep -E "linux.*armv7.*")" ] && cpucore="armv7"
[ -n "$(echo $cpucore | grep -E "linux.*armv.*")" ] && cpucore="armv5"
[ -n "$(echo $cpucore | grep -E "linux.*mips.*")" ] && cpucore="mipsle-softfloat"
[ -n "$(echo $cpucore | grep -E "linux.*x86.*")" ] && cpucore="386"
###
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "当前clash核心\033[47;30m $clashcore \033[46;30m$clashv\033[0m" echo -e "当前clash核心\033[47;30m $clashcore \033[46;30m$clashv\033[0m"
echo -e "\033[32m请选择需要下载的核心版本\033[0m" echo -e "\033[32m请选择需要下载的核心版本\033[0m"
@@ -388,9 +403,7 @@ read -p "请输入对应数字 > " num
else else
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[32mGeoIP数据库文件下载成功\033[0m" echo -e "\033[32mGeoIP数据库文件下载成功\033[0m"
update
fi fi
update
} }
getdb(){ getdb(){
host=$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';) host=$(ubus call network.interface.lan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}';)
@@ -427,10 +440,6 @@ if [ "$res" = '1' ]; then
getdb getdb
else else
echo -e "\033[33m下载成功正在解压文件\033[0m" echo -e "\033[33m下载成功正在解压文件\033[0m"
if cat /proc/mounts | grep -q www ;then
echo 检测到/www为只读正在重新挂载
mount -o remount -rw /www
fi
mkdir -p /www/clash > /dev/null mkdir -p /www/clash > /dev/null
tar -zxvf '/tmp/clashdb.tar.gz' -C /www/clash > /dev/null tar -zxvf '/tmp/clashdb.tar.gz' -C /www/clash > /dev/null
[ $? -ne 0 ] && echo "文件解压失败!" && exit 1 [ $? -ne 0 ] && echo "文件解压失败!" && exit 1
@@ -449,7 +458,7 @@ echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo -e "\033[30;47m您可以在此处切换在线更新时使用的资源地址\033[0m" echo -e "\033[30;47m您可以在此处切换在线更新时使用的资源地址\033[0m"
echo -e "当前源:\033[4;32m$update_url\033[0m" echo -e "当前源:\033[4;32m$update_url\033[0m"
echo ----------------------------------------------- echo -----------------------------------------------
echo -e " 1 CDN源(感谢\033[4;32mwww.jsdelivr.com\033[0m推荐)" echo -e " 1 CDN源(可能有一定的同步延迟)"
echo -e " 2 Github源(不稳定,不推荐)" echo -e " 2 Github源(不稳定,不推荐)"
echo -e " 3 Github源+clash代理(需开启clash服务推荐)" echo -e " 3 Github源+clash代理(需开启clash服务推荐)"
echo -e " 4 自定义输入(请务必确保路径正确)" echo -e " 4 自定义输入(请务必确保路径正确)"
@@ -460,7 +469,7 @@ if [ -z $num ]; then
echo -e "\033[31m请输入正确的数字\033[0m" echo -e "\033[31m请输入正确的数字\033[0m"
update update
elif [[ $num == 1 ]]; then elif [[ $num == 1 ]]; then
update_url="https://cdn.jsdelivr.net/gh/juewuy/clash-for-Miwifi" update_url="https://cdn.jsdelivr.net/gh/juewuy/clash-for-Miwifi@latest"
elif [[ $num == 9 ]]; then elif [[ $num == 9 ]]; then
update_url="https://juewuy.xyz/clash" update_url="https://juewuy.xyz/clash"
elif [[ $num == 2 ]]; then elif [[ $num == 2 ]]; then