diff --git a/bin/Country.mmdb b/bin/Country.mmdb index 49b103c..a3092cc 100644 Binary files a/bin/Country.mmdb and b/bin/Country.mmdb differ diff --git a/bin/clashdb.tar.gz b/bin/clashdb.tar.gz index 9acbcc3..5101804 100644 Binary files a/bin/clashdb.tar.gz and b/bin/clashdb.tar.gz differ diff --git a/bin/clashfm.tar.gz b/bin/clashfm.tar.gz index c35e27a..3d534af 100644 Binary files a/bin/clashfm.tar.gz and b/bin/clashfm.tar.gz differ diff --git a/bin/version b/bin/version index 94d0e1a..e640fc7 100644 --- a/bin/version +++ b/bin/version @@ -1,4 +1,4 @@ clash_v=1.2.0 clashpre_v=2020.10.09 -GeoIP_v=20201010 -versionsh=1.0.0beta15 +GeoIP_v=20201021 +versionsh=1.0.0beta15.1 diff --git a/scripts/clash.sh b/scripts/clash.sh index b138f98..dda12c2 100644 --- a/scripts/clash.sh +++ b/scripts/clash.sh @@ -156,7 +156,7 @@ setport(){ if [ "$res" = "1" ];then $clashdir/start.sh stop else - clashsh + clashadv fi fi echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -217,6 +217,14 @@ setport(){ } setdns(){ source $ccfg + if [ "$dns_no" = "true" ];then + read -p "检测到内置DNS已被禁用,是否启用内置DNS?(1/0) > " res + if [ "$res" = "1" ];then + sed -i "/dns_no*/"d $ccfg + else + clashadv + fi + fi [ -z "$dns_nameserver" ] && dns_nameserver='114.114.114.114, 223.5.5.5' [ -z "$dns_fallback" ] && dns_fallback='1.0.0.1, 8.8.4.4' echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -228,6 +236,7 @@ setdns(){ echo -e " 1 修改基础DNS" echo -e " 2 修改fallback_DNS" echo -e " 3 重置DNS配置" + echo -e " 4 禁用内置DNS(慎用)" echo -e " 0 返回上级菜单" echo ----------------------------------------------- read -p "请输入对应数字 > " num @@ -257,6 +266,13 @@ setdns(){ sed -i "/dns_nameserver*/"d $ccfg sed -i "/dns_fallback*/"d $ccfg echo -e "\033[33mDNS配置已重置!!!\033[0m" + elif [[ $num == 4 ]]; then + echo ----------------------------------------------- + echo -e "\033[31m仅限搭配其他DNS服务(比如dnsmasq、smartDNS)时使用!\033[0m" + sed -i "/dns_no*/"d $ccfg + sed -i "1i\dns_no=true" $ccfg + echo -e "\033[33m已禁用内置DNS!!!\033[0m" + clashadv else clashadv fi @@ -744,7 +760,7 @@ echo -e " 2 启用ipv6支持: \033[36m$ipv6_support\033[0m ————实验性 echo -e " 3 使用保守方式启动: \033[36m$start_old\033[0m ————切换时会停止clash服务" echo -e " 4 代理本机流量: \033[36m$local_proxy\033[0m ————配置本机代理环境变量" echo -e " 5 手动指定clash运行端口及秘钥" -echo -e " 6 手动配置内置DNS设置" +echo -e " 6 手动配置内置DNS服务" echo ----------------------------------------------- echo -e " 8 \033[31m重置\033[0m配置文件" echo -e " 9 \033[32m重启\033[0mclash服务" diff --git a/scripts/getdate.sh b/scripts/getdate.sh index 7a90f28..982a46e 100644 --- a/scripts/getdate.sh +++ b/scripts/getdate.sh @@ -458,12 +458,41 @@ 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}';) echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo -e "\033[36m安装本地版dashboard管理面板\033[0m" +echo -e "\033[32m打开管理面板的速度更快且更稳定\033[0m" echo ----------------------------------------------- -echo -e "\033[32m打开管理面板的速度更快且更稳定" -echo -e "\033[33m需要占用约500kb的本地空间\033[0m" +echo -e "请选择面板\033[33m安装类型:\033[0m" echo ----------------------------------------------- -echo -e " 1 在$clashdir/ui目录安装(推荐!)\033[33m安装后需重启clash服务!!!\033[0m" -echo " 2 在/www/clash目录安装(依赖路由器自带的Nginx服务,可能安装失败!)" +echo -e " 1 安装\033[32m官方面板\033[0m(约500kb)" +echo -e " 2 安装\033[32mYacd面板\033[0m(约1.1mb)" +echo -e " 3 卸载\033[33m本地面板\033[0m" +echo " 0 返回上级菜单" +read -p "请输入对应数字 > " num + +if [ -z "$num" ];then + update +elif [ "$num" = '1' ]; then + db_type=clashdb +elif [ "$num" = '2' ]; then + db_type=yacd +elif [ "$num" = '3' ]; then + read -p "确认卸载本地面板?(1/0) > " res + if [ "$res" = 1 ];then + rm -rf /www/clash + rm -rf $clashdir/ui + echo ----------------------------------------------- + echo -e "\033[31m面板已经卸载!\033[0m" + sleep 1 + fi + update +else + echo -e "\033[31m请输入正确的数字!\033[0m" + update +fi +echo ----------------------------------------------- +echo -e "请选择面板\033[33m安装目录:\033[0m" +echo ----------------------------------------------- +echo -e " 1 在$clashdir/ui目录安装(推荐!安装后会自动重启clash服务!)" +echo -e " 2 在/www/clash目录安装(依赖Openwrt的Nginx服务,可能失败!)" echo ----------------------------------------------- echo " 0 返回上级菜单" read -p "请输入对应数字 > " num @@ -472,7 +501,7 @@ if [ -z "$num" ];then update elif [ "$num" = '1' ]; then dbdir=$clashdir/ui - hostdir=":$db_port/ui\033[0;36m访问面板(需重启clash服务!)" + hostdir=":$db_port/ui\033[0;36m访问面板" elif [ "$num" = '2' ]; then dbdir=/www/clash hostdir='/clash\033[0;36m访问面板' @@ -481,9 +510,9 @@ else fi #下载及安装 if [ -d /www/clash -o -d $clashdir/ui ];then - echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + echo ----------------------------------------------- echo -e "\033[31m检测到您已经安装过本地面板了!\033[0m" - echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + echo ----------------------------------------------- read -p "是否覆盖安装?[1/0] > " res if [ -z "$res" ]; then update @@ -494,28 +523,34 @@ fi update fi fi - dblink="$update_url/bin/clashdb.tar.gz" - echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + dblink="${update_url}/bin/${db_type}.tar.gz" + echo ----------------------------------------------- echo 正在连接服务器获取安装文件………… result=$(curl -w %{http_code} -kLo /tmp/clashdb.tar.gz $dblink) if [ "$result" != "200" ];then - echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + echo ----------------------------------------------- echo -e "\033[31m文件下载失败!\033[0m" - echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + echo ----------------------------------------------- getdb else echo -e "\033[33m下载成功,正在解压文件!\033[0m" mkdir -p $dbdir > /dev/null - tar -zxvf '/tmp/clashdb.tar.gz' -C $dbdir > /dev/null + tar -zxvf "/tmp/clashdb.tar.gz" -C $dbdir > /dev/null [ $? -ne 0 ] && echo "文件解压失败!" && exit 1 #修改默认host和端口 - sed -i "s/127.0.0.1/${host}/g" $dbdir/js/*.js - sed -i "s/9090/${db_port}/g" $dbdir/js/*.js - # + if [ "$db_type" = "clashdb" ];then + sed -i "s/127.0.0.1/${host}/g" $dbdir/js/*.js + sed -i "s/9090/${db_port}/g" $dbdir/js/*.js + else + sed -i "s/127.0.0.1/${host}/g" $dbdir/app*.js + sed -i "s/7892/${db_port}/g" $dbdir/app*.js + fi + [ "$dbdir" != "/www/clash" ] && $clashdir/start.sh restart + echo ----------------------------------------------- echo -e "\033[32m面板安装成功!\033[0m" - echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo -e "\033[36m请使用\033[32;4mhttp://$host$hostdir\033[0m" rm -rf /tmp/clashdb.tar.gz + sleep 1 update fi @@ -583,7 +618,7 @@ elif [[ $num == 4 ]]; then update fi elif [[ $num == 9 ]]; then - update_url='http://127.0.0.1:8080/clash-for-Miwifi' + update_url='http://192.168.31.30:8080/clash-for-Miwifi' else echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ echo -e "\033[31m请输入正确的数字!\033[0m" diff --git a/scripts/start.sh b/scripts/start.sh index 5d1784a..03dc8b1 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -279,8 +279,8 @@ start_dns(){ ip6tables -t nat -A clashv6_dns -p udp --dport 53 -j REDIRECT --to $dns_port > /dev/null 2>&1 ip6tables -t nat -A PREROUTING -p udp -j clashv6_dns > /dev/null 2>&1 else - ip6tables -I INPUT -p tcp --dport 53 -j REJECT - ip6tables -I INPUT -p udp --dport 53 -j REJECT + ip6tables -I INPUT -p tcp --dport 53 -j REJECT + ip6tables -I INPUT -p udp --dport 53 -j REJECT fi } daemon(){ @@ -336,7 +336,7 @@ afstart(){ getconfig #修改iptables规则使流量进入clash stop_iptables - [ "$redir_mod" != "纯净模式" ] && start_dns + [ "$redir_mod" != "纯净模式" ] && [ "$dns_no" != "true" ] && start_dns [ "$redir_mod" != "纯净模式" ] && [ "$redir_mod" != "Tun模式" ] && start_redir #标记启动时间 mark_time